Improved score updates
This commit is contained in:
parent
7f33c8376d
commit
c9237cc824
2 changed files with 30 additions and 9 deletions
|
@ -100,6 +100,7 @@ export default class GameLogic {
|
|||
for (let i = 0; i < lines.length; i++) {
|
||||
this.currentGrid.splice(lines[i], 1);
|
||||
this.currentGrid.unshift(this.getEmptyLine());
|
||||
this.score += 100;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -151,7 +152,9 @@ export default class GameLogic {
|
|||
this.currentObject.move(0, -y);
|
||||
this.freezeTetromino();
|
||||
this.createTetromino();
|
||||
}
|
||||
} else
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
tryRotateTetromino() {
|
||||
|
@ -162,7 +165,6 @@ export default class GameLogic {
|
|||
|
||||
onTick(callback: Function) {
|
||||
this.gameTime++;
|
||||
this.score++;
|
||||
this.tryMoveTetromino(0, 1);
|
||||
callback(this.gameTime, this.score, this.getFinalGrid());
|
||||
}
|
||||
|
@ -175,7 +177,7 @@ export default class GameLogic {
|
|||
if (!this.canUseInput())
|
||||
return;
|
||||
|
||||
this.tryMoveTetromino(1, 0);
|
||||
if (this.tryMoveTetromino(1, 0))
|
||||
callback(this.getFinalGrid());
|
||||
}
|
||||
|
||||
|
@ -183,15 +185,25 @@ export default class GameLogic {
|
|||
if (!this.canUseInput())
|
||||
return;
|
||||
|
||||
this.tryMoveTetromino(-1, 0);
|
||||
if (this.tryMoveTetromino(-1, 0))
|
||||
callback(this.getFinalGrid());
|
||||
}
|
||||
|
||||
downPressed(callback: Function) {
|
||||
if (!this.canUseInput())
|
||||
return;
|
||||
|
||||
if (this.tryMoveTetromino(0, 1)){
|
||||
this.score++;
|
||||
callback(this.getFinalGrid(), this.score);
|
||||
}
|
||||
}
|
||||
|
||||
rotatePressed(callback: Function) {
|
||||
if (!this.canUseInput())
|
||||
return;
|
||||
|
||||
this.tryRotateTetromino();
|
||||
if (this.tryRotateTetromino())
|
||||
callback(this.getFinalGrid());
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ class TetrisScreen extends React.Component<Props, State> {
|
|||
onTick: Function;
|
||||
onGameEnd: Function;
|
||||
updateGrid: Function;
|
||||
updateGridScore: Function;
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
@ -41,6 +42,7 @@ class TetrisScreen extends React.Component<Props, State> {
|
|||
this.onTick = this.onTick.bind(this);
|
||||
this.onGameEnd = this.onGameEnd.bind(this);
|
||||
this.updateGrid = this.updateGrid.bind(this);
|
||||
this.updateGridScore = this.updateGridScore.bind(this);
|
||||
this.props.navigation.addListener('blur', this.onScreenBlur.bind(this));
|
||||
this.props.navigation.addListener('focus', this.onScreenFocus.bind(this));
|
||||
}
|
||||
|
@ -93,6 +95,13 @@ class TetrisScreen extends React.Component<Props, State> {
|
|||
});
|
||||
}
|
||||
|
||||
updateGridScore(newGrid: Array<Array<Object>>, score: number) {
|
||||
this.setState({
|
||||
grid: newGrid,
|
||||
gameScore: score,
|
||||
});
|
||||
}
|
||||
|
||||
togglePause() {
|
||||
this.logic.togglePause();
|
||||
if (this.logic.isGamePaused())
|
||||
|
@ -215,7 +224,7 @@ class TetrisScreen extends React.Component<Props, State> {
|
|||
<IconButton
|
||||
icon="arrow-down"
|
||||
size={40}
|
||||
onPress={() => this.logic.rightPressed(this.updateGrid)}
|
||||
onPress={() => this.logic.downPressed(this.updateGridScore)}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
|
|
Loading…
Reference in a new issue