|
12
|
1 |
#include <ClanLib/core.h>
|
|
|
2 |
#include <ClanLib/gl.h> //do I need this in linux?
|
|
|
3 |
#include <ClanLib/display.h>
|
|
|
4 |
#include <ClanLib/application.h>
|
|
|
5 |
#include "GameState.hh"
|
|
|
6 |
#include "Dimension.hh"
|
|
|
7 |
|
|
|
8 |
class CL_Game : public CL_ClanApplication {
|
|
|
9 |
private:
|
|
25
|
10 |
bool keep_going;
|
|
|
11 |
void check_input() {
|
|
|
12 |
if(CL_Keyboard::get_keycode(CL_KEY_ESCAPE))
|
|
|
13 |
keep_going = false;
|
|
|
14 |
|
|
12
|
15 |
LocalPlayer& lp = gs.getLocalPlayer();
|
|
|
16 |
|
|
25
|
17 |
if(CL_Keyboard::get_keycode(CL_KEY_UP)) {
|
|
|
18 |
lp.doMovement(PositionDelta(0,3));
|
|
|
19 |
}
|
|
|
20 |
if(CL_Keyboard::get_keycode(CL_KEY_DOWN)) {
|
|
|
21 |
lp.doMovement(PositionDelta(0,-3));
|
|
|
22 |
}
|
|
|
23 |
if(CL_Keyboard::get_keycode(CL_KEY_LEFT)) {
|
|
|
24 |
lp.doMovement(PositionDelta(-3,0));
|
|
|
25 |
}
|
|
|
26 |
if(CL_Keyboard::get_keycode(CL_KEY_RIGHT)) {
|
|
|
27 |
lp.doMovement(PositionDelta(3,0));
|
|
|
28 |
}
|
|
|
29 |
}
|
|
12
|
30 |
|
|
|
31 |
public:
|
|
25
|
32 |
GameState gs;
|
|
12
|
33 |
|
|
25
|
34 |
CL_Game() : keep_going(true) {}
|
|
|
35 |
virtual int main(int argc, char **argv) {
|
|
|
36 |
CL_SetupCore setup_init;
|
|
|
37 |
CL_SetupDisplay setup_disp;
|
|
|
38 |
CL_SetupGL setup_gl;
|
|
|
39 |
|
|
|
40 |
//gs.player_list.push(Player(Coordinate()));
|
|
12
|
41 |
|
|
25
|
42 |
CL_DisplayWindow win("ikkuna", 640, 480);
|
|
|
43 |
// CL_Surface bg(CL_PNGProvider("image.png");
|
|
12
|
44 |
|
|
25
|
45 |
unsigned int last_draw = CL_System::get_time();
|
|
|
46 |
int r = 100, g = 100, b = 100;
|
|
|
47 |
unsigned int frame_count = 0;
|
|
|
48 |
bool R = false, G = false, B = false;
|
|
|
49 |
|
|
|
50 |
while(keep_going) { //not good idea to put infinite loop
|
|
|
51 |
CL_Display::clear(CL_Color(r, g, b));
|
|
12
|
52 |
|
|
25
|
53 |
int colorIdx = 0;
|
|
|
54 |
for(std::list<Player>::iterator it = gs.player_list.begin(); it != gs.player_list.end(); ++it) {
|
|
12
|
55 |
|
|
25
|
56 |
CL_Display::fill_rect(CL_Rect(it->getPosition().scaledX()-10, it->getPosition().scaledY()-10,
|
|
|
57 |
it->getPosition().scaledX()+10, it->getPosition().scaledY()+10), CL_Color((colorIdx*30)%255, (colorIdx*30)%255, (colorIdx*30)%255));
|
|
12
|
58 |
|
|
25
|
59 |
colorIdx++;
|
|
|
60 |
}
|
|
|
61 |
|
|
|
62 |
CL_Display::flip(1);
|
|
|
63 |
frame_count++;
|
|
|
64 |
unsigned int cur_draw = CL_System::get_time();
|
|
|
65 |
|
|
|
66 |
check_input();
|
|
|
67 |
|
|
|
68 |
last_draw = cur_draw;
|
|
|
69 |
CL_System::keep_alive();
|
|
|
70 |
// sleep(10); //flip already wait a short amount of time
|
|
|
71 |
}
|
|
|
72 |
return 0;
|
|
|
73 |
}
|
|
12
|
74 |
};
|
|
|
75 |
|
|
|
76 |
CL_Game inst;
|