blob: d1c17b2741427e31f39cdd64fbb09ba7eda1fd5e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#include "includes.h"
GameState::GameState()
{
player_color = getColor(255, 255, 0);
newGame = true;
doneMaking = false;
level = Level();
}
void GameState::input(SDLKey key)
{
if (doneMaking)
{
switch (key)
{
case SDLK_LEFT:
move(playerx-1, playery);
break;
case SDLK_RIGHT:
move(playerx+1, playery);
break;
case SDLK_UP:
move(playerx, playery-1);
break;
case SDLK_DOWN:
move(playerx, playery+1);
break;
}
}
}
void GameState::tick()
{
if (newGame)
{
playerx = 1;
playery = 1;
board = Board(level);
newGame = false;
doneMaking = true;
}
}
void GameState::move(int x, int y)
{
wrap(&x, &y);
if (board.isObstructed(x,y)) return;
playerx = x;
playery = y;
}
void GameState::render(SDL_Surface* screen)
{
board.render(screen, level);
SDL_Rect block;
block.x = playerx*16;
block.y = playery*16;
block.w = 16;
block.h = 16;
SDL_FillRect(screen, &block, player_color);
}
|