forked from vergnet/application-amicale
Improved colors
This commit is contained in:
parent
7b45841c30
commit
a32294e394
6 changed files with 44 additions and 17 deletions
|
@ -21,11 +21,14 @@ export default class GameLogic {
|
||||||
onTick: Function;
|
onTick: Function;
|
||||||
endCallback: Function;
|
endCallback: Function;
|
||||||
|
|
||||||
constructor(height: number, width: number) {
|
colors: Object;
|
||||||
|
|
||||||
|
constructor(height: number, width: number, colors: Object) {
|
||||||
this.height = height;
|
this.height = height;
|
||||||
this.width = width;
|
this.width = width;
|
||||||
this.gameRunning = false;
|
this.gameRunning = false;
|
||||||
this.gameTick = 1000;
|
this.gameTick = 1000;
|
||||||
|
this.colors = colors;
|
||||||
}
|
}
|
||||||
|
|
||||||
getHeight(): number {
|
getHeight(): number {
|
||||||
|
@ -46,7 +49,7 @@ export default class GameLogic {
|
||||||
grid.push([]);
|
grid.push([]);
|
||||||
for (let col = 0; col < this.getWidth(); col++) {
|
for (let col = 0; col < this.getWidth(); col++) {
|
||||||
grid[row].push({
|
grid[row].push({
|
||||||
color: '#fff',
|
color: this.colors.tetrisBackground,
|
||||||
isEmpty: true,
|
isEmpty: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -145,7 +148,7 @@ export default class GameLogic {
|
||||||
|
|
||||||
createTetromino() {
|
createTetromino() {
|
||||||
let shape = Math.floor(Math.random() * 7);
|
let shape = Math.floor(Math.random() * 7);
|
||||||
this.currentObject = new Tetromino(shape);
|
this.currentObject = new Tetromino(shape, this.colors);
|
||||||
if (!this.isTetrominoPositionValid())
|
if (!this.isTetrominoPositionValid())
|
||||||
this.endGame();
|
this.endGame();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ class TetrisScreen extends React.Component<Props, State> {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.colors = props.theme.colors;
|
this.colors = props.theme.colors;
|
||||||
this.logic = new GameLogic(20, 10);
|
this.logic = new GameLogic(20, 10, this.colors);
|
||||||
this.state = {
|
this.state = {
|
||||||
grid: this.logic.getEmptyGrid(),
|
grid: this.logic.getEmptyGrid(),
|
||||||
gameTime: 0,
|
gameTime: 0,
|
||||||
|
|
|
@ -45,27 +45,29 @@ export default class Tetromino {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
static colors = {
|
static colors: Object;
|
||||||
0: '#00f8ff',
|
|
||||||
1: '#ffe200',
|
|
||||||
2: '#b817ff',
|
|
||||||
3: '#0cff34',
|
|
||||||
4: '#ff000b',
|
|
||||||
5: '#1000ff',
|
|
||||||
6: '#ff9400',
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
currentType: Object;
|
currentType: Object;
|
||||||
currentShape: Object;
|
currentShape: Object;
|
||||||
currentRotation: number;
|
currentRotation: number;
|
||||||
position: Object;
|
position: Object;
|
||||||
|
colors: Object;
|
||||||
|
|
||||||
constructor(type: Tetromino.types) {
|
constructor(type: Tetromino.types, colors: Object) {
|
||||||
this.currentType = type;
|
this.currentType = type;
|
||||||
this.currentShape = Tetromino.shapes[type];
|
this.currentShape = Tetromino.shapes[type];
|
||||||
this.currentRotation = 0;
|
this.currentRotation = 0;
|
||||||
this.position = {x: 0, y: 0};
|
this.position = {x: 0, y: 0};
|
||||||
|
this.colors = colors;
|
||||||
|
Tetromino.colors = {
|
||||||
|
0: colors.tetrisI,
|
||||||
|
1: colors.tetrisO,
|
||||||
|
2: colors.tetrisT,
|
||||||
|
3: colors.tetrisS,
|
||||||
|
4: colors.tetrisZ,
|
||||||
|
5: colors.tetrisJ,
|
||||||
|
6: colors.tetrisL,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
getColor() {
|
getColor() {
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Cell extends React.PureComponent<Props> {
|
||||||
style={{
|
style={{
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: this.props.color,
|
backgroundColor: this.props.color,
|
||||||
borderColor: this.props.isEmpty ? this.props.color : "#393939",
|
borderColor: this.props.isEmpty ? this.props.color : this.colors.tetrisBorder,
|
||||||
borderStyle: 'solid',
|
borderStyle: 'solid',
|
||||||
borderWidth: 1,
|
borderWidth: 1,
|
||||||
aspectRatio: 1,
|
aspectRatio: 1,
|
||||||
|
|
|
@ -31,7 +31,7 @@ class Grid extends React.Component<Props>{
|
||||||
return(
|
return(
|
||||||
<View style={{
|
<View style={{
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
backgroundColor: '#fff'
|
backgroundColor: this.colors.tetrisBackground
|
||||||
}}>
|
}}>
|
||||||
{cells}
|
{cells}
|
||||||
</View>
|
</View>
|
||||||
|
|
|
@ -54,6 +54,17 @@ export default class ThemeManager {
|
||||||
proxiwashColor: '#1fa5ee',
|
proxiwashColor: '#1fa5ee',
|
||||||
menuColor: '#e91314',
|
menuColor: '#e91314',
|
||||||
tutorinsaColor: '#f93943',
|
tutorinsaColor: '#f93943',
|
||||||
|
|
||||||
|
// Tetris
|
||||||
|
tetrisBackground:'#d1d1d1',
|
||||||
|
tetrisBorder:'#afafaf',
|
||||||
|
tetrisI : '#42f1ff',
|
||||||
|
tetrisO : '#ffdd00',
|
||||||
|
tetrisT : '#ba19ff',
|
||||||
|
tetrisS : '#0bff34',
|
||||||
|
tetrisZ : '#ff0009',
|
||||||
|
tetrisJ : '#134cff',
|
||||||
|
tetrisL : '#ff8834',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -94,6 +105,17 @@ export default class ThemeManager {
|
||||||
proxiwashColor: '#1fa5ee',
|
proxiwashColor: '#1fa5ee',
|
||||||
menuColor: '#b81213',
|
menuColor: '#b81213',
|
||||||
tutorinsaColor: '#f93943',
|
tutorinsaColor: '#f93943',
|
||||||
|
|
||||||
|
// Tetris
|
||||||
|
tetrisBackground:'#2c2c2c',
|
||||||
|
tetrisBorder:'#1b1b1b',
|
||||||
|
tetrisI : '#30b3be',
|
||||||
|
tetrisO : '#c1a700',
|
||||||
|
tetrisT : '#9114c7',
|
||||||
|
tetrisS : '#08a121',
|
||||||
|
tetrisZ : '#b50008',
|
||||||
|
tetrisJ : '#0f37b9',
|
||||||
|
tetrisL : '#b96226',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue