package com.gebauz.pingk.gamestates;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.gebauz.Bauzoid.app.Game;
import com.gebauz.Bauzoid.gamestates.BaseGameState;
import com.gebauz.Bauzoid.graphics.sprite.Sprite;
import com.gebauz.Bauzoid.math.Matrix4;
import com.gebauz.pingk.PingkCustomServices;
import com.gebauz.pingk.game.GameConsts;
import com.gebauz.pingk.game.TextConsts;
import com.gebauz.pingk.ui.BaseButton;
import com.gebauz.pingk.ui.TextButton;
public class TitleState
extends BaseGameState
{
private TextButton mGameStartButton =
null;
private TextButton mOptionsButton =
null;
private TextButton mHelpButton =
null;
private TextButton mCreditsButton =
null;
private Sprite mTitle =
null;
private Sound mButtonPress =
null;
BaseButton.
TouchListener mGameStartListener =
new BaseButton.
TouchListener()
{
@
Override
public void onTouched
(BaseButton sender,
int tag
)
{
switchTo
(com.
gebauz.
pingk.
gamestates.
MainGameState.
class);
}
};
BaseButton.
TouchListener mOptionsListener =
new BaseButton.
TouchListener()
{
@
Override
public void onTouched
(BaseButton sender,
int tag
)
{
TextButton tb =
(TextButton
)sender
;
if (getGame
().
getAudio().
isMusicEnabled())
{
getGame
().
getAudio().
setMusicEnabled(false);
tb.
setText(TextConsts.
MUSIC_OFF);
}
else
{
getGame
().
getAudio().
setMusicEnabled(true);
tb.
setText(TextConsts.
MUSIC_ON);
}
}
};
BaseButton.
TouchListener mHelpListener =
new BaseButton.
TouchListener()
{
@
Override
public void onTouched
(BaseButton sender,
int tag
)
{
//mHelp.show();
}
};
BaseButton.
TouchListener mCreditsListener =
new BaseButton.
TouchListener()
{
@
Override
public void onTouched
(BaseButton sender,
int tag
)
{
//GameStateManager.getInstance().switchState("CreditsState");
}
};
public TitleState
(Game game
)
{
super(game
);
setFading
(true,
true);
}
@
Override
public void init
()
{
mButtonPress = getGame
().
getAudio().
newManagedSound("data/sounds/paddleimpact.wav");
mTitle =
new Sprite
(getGraphics
(),
new Texture
(Gdx.
files.
internal("data/textures/logo.png")));
mTitle.
x = GameConsts.
VIRTUAL_SCREEN_WIDTH/2.0f
;
mTitle.
y = GameConsts.
TITLE_POSITION_Y;
mTitle.
w = GameConsts.
TITLE_WIDTH;
mTitle.
h = GameConsts.
TITLE_HEIGHT;
mTitle.
pivotX = GameConsts.
TITLE_WIDTH / 2.0f
;
mTitle.
pivotY = 0.0f
;
mTitle.
color = GameConsts.
PINGK_COLOR.
copy();
mGameStartButton =
new TextButton
(getGame
(), TextConsts.
START_GAME);
mGameStartButton.
x = GameConsts.
VIRTUAL_SCREEN_WIDTH / 2.0f
;
mGameStartButton.
y = GameConsts.
TITLE_POSITION_Y + GameConsts.
TITLE_HEIGHT + 0.0f
;
mGameStartButton.
scale = GameConsts.
TITLE_MENU_TEXT_SCALE;
mGameStartButton.
setAlignment(TextButton.
HorizontalAlignment.
CENTER, TextButton.
VerticalAlignment.
MIDDLE);
mGameStartButton.
setTouchListener(mGameStartListener
);
String musicEnabled = TextConsts.
MUSIC_ON;
if (!getGame
().
getAudio().
isMusicEnabled())
musicEnabled = TextConsts.
MUSIC_OFF;
mOptionsButton =
new TextButton
(getGame
(), musicEnabled
);
mOptionsButton.
x = GameConsts.
VIRTUAL_SCREEN_WIDTH / 2.0f
;
mOptionsButton.
y = GameConsts.
TITLE_POSITION_Y + GameConsts.
TITLE_HEIGHT + 40.0f
;
mOptionsButton.
scale = GameConsts.
TITLE_MENU_TEXT_SCALE;
mOptionsButton.
setAlignment(TextButton.
HorizontalAlignment.
CENTER, TextButton.
VerticalAlignment.
MIDDLE);
mOptionsButton.
setTouchListener(mOptionsListener
);
mHelpButton =
new TextButton
(getGame
(), TextConsts.
HELP);
mHelpButton.
x = GameConsts.
VIRTUAL_SCREEN_WIDTH / 2.0f
;
mHelpButton.
y = GameConsts.
TITLE_POSITION_Y + GameConsts.
TITLE_HEIGHT + 80.0f
;
mHelpButton.
scale = GameConsts.
TITLE_MENU_TEXT_SCALE;
mHelpButton.
setAlignment(TextButton.
HorizontalAlignment.
CENTER, TextButton.
VerticalAlignment.
MIDDLE);
mHelpButton.
setTouchListener(mHelpListener
);
mCreditsButton =
new TextButton
(getGame
(), TextConsts.
CREDITS);
mCreditsButton.
x = GameConsts.
VIRTUAL_SCREEN_WIDTH / 2.0f
;
mCreditsButton.
y = GameConsts.
TITLE_POSITION_Y + GameConsts.
TITLE_HEIGHT + 120.0f
;
mCreditsButton.
scale = GameConsts.
TITLE_MENU_TEXT_SCALE;
mCreditsButton.
setAlignment(TextButton.
HorizontalAlignment.
CENTER, TextButton.
VerticalAlignment.
MIDDLE);
mCreditsButton.
setTouchListener(mCreditsListener
);
//mHelp = new HelpScreen(GameConsts.VIRTUAL_SCREEN_HEIGHT);
}
@
Override
public void exit
()
{
if (mTitle
!=
null)
{
mTitle.
dispose();
mTitle =
null;
}
if (mGameStartButton
!=
null)
{
mGameStartButton.
exit();
mGameStartButton =
null;
}
if (mOptionsButton
!=
null)
{
mOptionsButton.
exit();
mOptionsButton =
null;
}
if (mCreditsButton
!=
null)
{
mCreditsButton.
exit();
mCreditsButton =
null;
}
if (mHelpButton
!=
null)
{
mHelpButton.
exit();
mHelpButton =
null;
}
}
@
Override
public void update
(float deltaTime
)
{
mTitle.
update(deltaTime
);
// if (!mHelp.isActive())
{
mGameStartButton.
update(deltaTime
);
mOptionsButton.
update(deltaTime
);
mHelpButton.
update(deltaTime
);
mCreditsButton.
update(deltaTime
);
}
//mHelp.update(deltaTime);
}
@
Override
public void render
()
{
//Gdx.gl.glClearColor(0.05f, 0.05f, 0.05f, 0.0f);
//Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
getGraphics
().
clear(0.05f, 0.05f, 0.05f, 0.0f
);
getRenderStates
().
projection = Matrix4.
createOrtho(
0.0f,
GameConsts.
VIRTUAL_SCREEN_WIDTH-
1,
GameConsts.
VIRTUAL_SCREEN_HEIGHT-
1,
0.0f,
0.0f,
1.0f
);
//PingkCustomServices.getInstance().getFont().drawText("TEST", 20, 20, GameConsts.PINGK_COLOR);
float alpha = getGame
().
getRandomFloat(0.7f, 1.0f
);
mTitle.
color.
w = alpha
;
mTitle.
render();
/* if (Math.cos(mTimer * GameConsts.TITLE_FLASH_INTERVAL) > 0.0f)
{
Log.v(GameConsts.LOG_TAG, "t=" + mTimer);
renderText(R.string.title_touch_to_start, 300.0f, 3.0f);
}*/
mGameStartButton.
render();
mOptionsButton.
render();
mHelpButton.
render();
mCreditsButton.
render();
//mHelp.render();
}
}