Rev 727 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package com.gebauz.PonPonChun.game;
import com.gebauz.Bauzoid.gamestates.GameStateManager;
import com.gebauz.Bauzoid.parser.ScanException;
import com.gebauz.Bauzoid.parser.Tokenizer;
import com.gebauz.PonPonChun.game.entities.Block;
public class GameModeLogicTutorial
extends GameModeLogic
{
// Constants========================================================================================
public static final int MAX_SPEED =
10;
public static final int MAX_ROWS =
10;
public static final int MIN_SPEED =
1;
public static final int MIN_ROWS =
0;
public static final int DEFAULT_SPEED =
1;
public static final int DEFAULT_ROWS =
3;
public static final int SPEEDUP_THRESHOLD =
1000;
public static final float SPEEDUP_AMOUNT = 0.05f
;
// Embedded Types===================================================================================
// Fields===========================================================================================
private int mLastScore =
0;
private int mBaseSpeedLevel =
1;
private boolean mGameStopped =
false;
// Methods==========================================================================================
public GameModeLogicTutorial
(GameLogic gameLogic
)
{
super(gameLogic, GameLogic.
GameMode.
TUTORIAL);
}
@
Override
public void init
(String param
)
{
mBlockRandomizer.
addEntry(Block.
TYPE_BLACK,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_WHITE,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_RED,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_GREEN,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_BLUE,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_YELLOW,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_BOMB,
15);
mBlockRandomizer.
addEntry(Block.
TYPE_CRYSTAL,
10);
mBlockRandomizer.
addEntry(Block.
TYPE_JOKER,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_CLOCK,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_CHERRY,
20);
mBlockRandomizer.
addEntry(Block.
TYPE_BANANA,
15);
mBlockRandomizer.
addEntry(Block.
TYPE_APPLE,
10);
mBlockRandomizer.
addEntry(Block.
TYPE_GRAPES,
5);
// interpret param for level/stage/speed
int speed =
1;
int rows =
3;
randomizeInitialLevel
(rows
);
mBaseSpeedLevel = speed
;
getGameLogic
().
getPlayField().
loadPlayField(com.
badlogic.
gdx.
Gdx.
files.
internal("data/levels/testcase07.txt"));
getGameLogic
().
getPlayField().
setAdvanceSpeed(SPEEDUP_AMOUNT
* mBaseSpeedLevel
);
getGameLogic
().
getHeadsUpDisplay().
getLabelB().
getTextElement().
setCaption(String.
format("LV. %02d", mBaseSpeedLevel
));
mLastScore =
0;
mGameStopped =
true;
}
@
Override
public void exit
()
{
}
@
Override
public void update
(float deltaTime
)
{
// speed up at every SPEEDUP_THRESHOLD points
int scoreDelta = getGameLogic
().
getScore() - mLastScore
;
if (scoreDelta
> SPEEDUP_THRESHOLD
)
{
mLastScore += SPEEDUP_THRESHOLD
;
mBaseSpeedLevel++
;
getGameLogic
().
getPlayField().
setAdvanceSpeed(SPEEDUP_AMOUNT
* mBaseSpeedLevel
);
getGameLogic
().
getHeadsUpDisplay().
getLabelB().
getTextElement().
setCaption(String.
format("LV. %02d", mBaseSpeedLevel
));
}
}
@
Override
public void render
()
{
// TODO Auto-generated method stub
}
@
Override
public void restart
()
{
GameStateManager gs = getGameLogic
().
getGameStateManager();
gs.
switchTo(gs.
getCurrentState().
getClass(), gs.
getCurrentParam());
}
// Getters/Setters==================================================================================
@
Override
public int getDifficulty
() { return mBaseSpeedLevel
; }
@
Override
public boolean isGameStopped
() { return mGameStopped
; }
}