proto/t2t.cc
author terom
Sun, 09 Nov 2008 20:40:46 +0000
changeset 24 b81cb670e6b2
parent 1 085631252347
permissions -rw-r--r--
the great :retab
1
085631252347 added some small proto
nireco
parents:
diff changeset
     1
#include <ClanLib/core.h>
085631252347 added some small proto
nireco
parents:
diff changeset
     2
#include <ClanLib/gl.h> //do I need this in linux?
085631252347 added some small proto
nireco
parents:
diff changeset
     3
#include <ClanLib/display.h>
085631252347 added some small proto
nireco
parents:
diff changeset
     4
#include <ClanLib/application.h>
085631252347 added some small proto
nireco
parents:
diff changeset
     5
#include "coor.hh"
085631252347 added some small proto
nireco
parents:
diff changeset
     6
#include "game_state.hh"
085631252347 added some small proto
nireco
parents:
diff changeset
     7
#include "Player.hh"
085631252347 added some small proto
nireco
parents:
diff changeset
     8
085631252347 added some small proto
nireco
parents:
diff changeset
     9
class CL_Game : public CL_ClanApplication {
085631252347 added some small proto
nireco
parents:
diff changeset
    10
private:
085631252347 added some small proto
nireco
parents:
diff changeset
    11
	bool keep_going;
085631252347 added some small proto
nireco
parents:
diff changeset
    12
	void check_input() {
085631252347 added some small proto
nireco
parents:
diff changeset
    13
		if(CL_Keyboard::get_keycode(CL_KEY_ESCAPE))
085631252347 added some small proto
nireco
parents:
diff changeset
    14
			keep_going = false;
085631252347 added some small proto
nireco
parents:
diff changeset
    15
		if(CL_Keyboard::get_keycode(CL_KEY_UP)) {
085631252347 added some small proto
nireco
parents:
diff changeset
    16
			if(gs.cave[(int)(gs.players[0].xy.x+
085631252347 added some small proto
nireco
parents:
diff changeset
    17
						((int)gs.players[0].xy.y+1)*640)] == 0) {
085631252347 added some small proto
nireco
parents:
diff changeset
    18
				gs.players[0].xy2.y += 4;
085631252347 added some small proto
nireco
parents:
diff changeset
    19
			}
085631252347 added some small proto
nireco
parents:
diff changeset
    20
		}
085631252347 added some small proto
nireco
parents:
diff changeset
    21
		if(CL_Keyboard::get_keycode(CL_KEY_LEFT)) {
085631252347 added some small proto
nireco
parents:
diff changeset
    22
			gs.players[0].xy2.x += 0.2;
085631252347 added some small proto
nireco
parents:
diff changeset
    23
		}
085631252347 added some small proto
nireco
parents:
diff changeset
    24
		if(CL_Keyboard::get_keycode(CL_KEY_RIGHT)) {
085631252347 added some small proto
nireco
parents:
diff changeset
    25
			gs.players[0].xy2.x -= 0.2;
085631252347 added some small proto
nireco
parents:
diff changeset
    26
		}
085631252347 added some small proto
nireco
parents:
diff changeset
    27
	}
085631252347 added some small proto
nireco
parents:
diff changeset
    28
085631252347 added some small proto
nireco
parents:
diff changeset
    29
public:
085631252347 added some small proto
nireco
parents:
diff changeset
    30
	game_state gs;
085631252347 added some small proto
nireco
parents:
diff changeset
    31
085631252347 added some small proto
nireco
parents:
diff changeset
    32
	CL_Game() : keep_going(true) {}
085631252347 added some small proto
nireco
parents:
diff changeset
    33
	virtual int main(int argc, char **argv) {
085631252347 added some small proto
nireco
parents:
diff changeset
    34
		CL_SetupCore setup_init;
085631252347 added some small proto
nireco
parents:
diff changeset
    35
		CL_SetupDisplay setup_disp;
085631252347 added some small proto
nireco
parents:
diff changeset
    36
		CL_SetupGL setup_gl;
085631252347 added some small proto
nireco
parents:
diff changeset
    37
		gs.addPlayer(Player());
085631252347 added some small proto
nireco
parents:
diff changeset
    38
085631252347 added some small proto
nireco
parents:
diff changeset
    39
		CL_DisplayWindow win("ikkuna", 640, 480);
085631252347 added some small proto
nireco
parents:
diff changeset
    40
//		CL_Surface bg(CL_PNGProvider("image.png");
085631252347 added some small proto
nireco
parents:
diff changeset
    41
085631252347 added some small proto
nireco
parents:
diff changeset
    42
		unsigned int last_draw = CL_System::get_time();
085631252347 added some small proto
nireco
parents:
diff changeset
    43
		int r = 100, g = 100, b = 100;
085631252347 added some small proto
nireco
parents:
diff changeset
    44
		unsigned int frame_count = 0;
085631252347 added some small proto
nireco
parents:
diff changeset
    45
		bool R = false, G = false, B = false;
085631252347 added some small proto
nireco
parents:
diff changeset
    46
085631252347 added some small proto
nireco
parents:
diff changeset
    47
		while(keep_going) { //not good idea to put infinite loop
085631252347 added some small proto
nireco
parents:
diff changeset
    48
			CL_Display::clear(CL_Color(r, g, b));
085631252347 added some small proto
nireco
parents:
diff changeset
    49
//			bg.draw(0, 0);
085631252347 added some small proto
nireco
parents:
diff changeset
    50
//			CL_Display::fill_rect(CL_Rect((int)(x-10.0), (int)(y-10.0), 
085631252347 added some small proto
nireco
parents:
diff changeset
    51
//					(int)(x+10.0), 
085631252347 added some small proto
nireco
parents:
diff changeset
    52
//					(int)(y+10.0)), CL_Color(255-r, 255-g, 255-b));
085631252347 added some small proto
nireco
parents:
diff changeset
    53
			for(int i = 0; i < 640*480; i++) {
085631252347 added some small proto
nireco
parents:
diff changeset
    54
				int x = i%640;
085631252347 added some small proto
nireco
parents:
diff changeset
    55
				int y = i/640;
085631252347 added some small proto
nireco
parents:
diff changeset
    56
				CL_Color col = CL_Color(200, 100, 60);
085631252347 added some small proto
nireco
parents:
diff changeset
    57
				if(gs.cave[i] == 1) {
085631252347 added some small proto
nireco
parents:
diff changeset
    58
					col = CL_Color(50, 50, 200);
085631252347 added some small proto
nireco
parents:
diff changeset
    59
				}
085631252347 added some small proto
nireco
parents:
diff changeset
    60
				CL_Display::draw_pixel(x, y, col);
085631252347 added some small proto
nireco
parents:
diff changeset
    61
			}
085631252347 added some small proto
nireco
parents:
diff changeset
    62
			Player& pl1 = gs.players[0];
085631252347 added some small proto
nireco
parents:
diff changeset
    63
			int pl1xi = (int)(pl1.xy.x);
085631252347 added some small proto
nireco
parents:
diff changeset
    64
			int pl1yi = (int)(pl1.xy.y);
085631252347 added some small proto
nireco
parents:
diff changeset
    65
			CL_Display::fill_rect(CL_Rect(pl1xi-10, pl1yi-10, 
085631252347 added some small proto
nireco
parents:
diff changeset
    66
					pl1xi+10, pl1yi+10), CL_Color(255-r, 255-g, 255-b));
085631252347 added some small proto
nireco
parents:
diff changeset
    67
085631252347 added some small proto
nireco
parents:
diff changeset
    68
			for(int i = 0; i < gs.players.size(); i++) {
085631252347 added some small proto
nireco
parents:
diff changeset
    69
				Player& pl2 = gs.players[i];
085631252347 added some small proto
nireco
parents:
diff changeset
    70
				pl2.xy2.y -= 0.2;
085631252347 added some small proto
nireco
parents:
diff changeset
    71
				double tmpx = pl2.xy.x, tmpy = pl2.xy.y;
085631252347 added some small proto
nireco
parents:
diff changeset
    72
				pl2.xy.x = 2*pl2.xy.x-pl2.xy2.x;
085631252347 added some small proto
nireco
parents:
diff changeset
    73
				pl2.xy.y = 2*pl2.xy.y-pl2.xy2.y;
085631252347 added some small proto
nireco
parents:
diff changeset
    74
				pl2.xy2.x = tmpx;
085631252347 added some small proto
nireco
parents:
diff changeset
    75
				pl2.xy2.y = tmpy;
085631252347 added some small proto
nireco
parents:
diff changeset
    76
				if(gs.cave[((int)(pl2.xy.x + 
085631252347 added some small proto
nireco
parents:
diff changeset
    77
							((int)pl2.xy.y)*640))%(640*480)] == 0) {
085631252347 added some small proto
nireco
parents:
diff changeset
    78
					pl2.xy = pl2.xy2;
085631252347 added some small proto
nireco
parents:
diff changeset
    79
				}
085631252347 added some small proto
nireco
parents:
diff changeset
    80
			}
085631252347 added some small proto
nireco
parents:
diff changeset
    81
085631252347 added some small proto
nireco
parents:
diff changeset
    82
			CL_Display::flip(1);
085631252347 added some small proto
nireco
parents:
diff changeset
    83
			frame_count++;
085631252347 added some small proto
nireco
parents:
diff changeset
    84
			unsigned int cur_draw = CL_System::get_time();
085631252347 added some small proto
nireco
parents:
diff changeset
    85
085631252347 added some small proto
nireco
parents:
diff changeset
    86
			check_input();
085631252347 added some small proto
nireco
parents:
diff changeset
    87
085631252347 added some small proto
nireco
parents:
diff changeset
    88
			if(R) { r++;
085631252347 added some small proto
nireco
parents:
diff changeset
    89
			} else { r--; }
085631252347 added some small proto
nireco
parents:
diff changeset
    90
			if(G) { g++;
085631252347 added some small proto
nireco
parents:
diff changeset
    91
			} else { g--; }
085631252347 added some small proto
nireco
parents:
diff changeset
    92
			if(B) { b++;
085631252347 added some small proto
nireco
parents:
diff changeset
    93
			} else { b--; }
085631252347 added some small proto
nireco
parents:
diff changeset
    94
			if(r < 0) r = 0;
085631252347 added some small proto
nireco
parents:
diff changeset
    95
			if(g < 0) g = 0;
085631252347 added some small proto
nireco
parents:
diff changeset
    96
			if(b < 0) b = 0;
085631252347 added some small proto
nireco
parents:
diff changeset
    97
			if(r > 255) r = 255;
085631252347 added some small proto
nireco
parents:
diff changeset
    98
			if(g > 255) g = 255;
085631252347 added some small proto
nireco
parents:
diff changeset
    99
			if(b > 255) b = 255;
085631252347 added some small proto
nireco
parents:
diff changeset
   100
085631252347 added some small proto
nireco
parents:
diff changeset
   101
			if(frame_count % 100 == 0) {
085631252347 added some small proto
nireco
parents:
diff changeset
   102
				R = rand()%2;
085631252347 added some small proto
nireco
parents:
diff changeset
   103
				G = rand()%2;
085631252347 added some small proto
nireco
parents:
diff changeset
   104
				B = rand()%2;
085631252347 added some small proto
nireco
parents:
diff changeset
   105
			}
085631252347 added some small proto
nireco
parents:
diff changeset
   106
085631252347 added some small proto
nireco
parents:
diff changeset
   107
			last_draw = cur_draw;
085631252347 added some small proto
nireco
parents:
diff changeset
   108
			CL_System::keep_alive();
085631252347 added some small proto
nireco
parents:
diff changeset
   109
//			sleep(10); //flip already wait a short amount of time
085631252347 added some small proto
nireco
parents:
diff changeset
   110
		}
085631252347 added some small proto
nireco
parents:
diff changeset
   111
		return 0;
085631252347 added some small proto
nireco
parents:
diff changeset
   112
	}
085631252347 added some small proto
nireco
parents:
diff changeset
   113
};
085631252347 added some small proto
nireco
parents:
diff changeset
   114
085631252347 added some small proto
nireco
parents:
diff changeset
   115
CL_Game inst;