Library containing the Game Engine
Diff: GameEngine.cpp
- Revision:
- 8:bd718162a87c
- Parent:
- 7:cf6304ef44fd
- Child:
- 9:0f359bc0922f
diff -r cf6304ef44fd -r bd718162a87c GameEngine.cpp --- a/GameEngine.cpp Tue May 02 16:25:26 2017 +0000 +++ b/GameEngine.cpp Wed May 03 13:01:09 2017 +0000 @@ -23,13 +23,16 @@ _mag = pad.get_mag(); } -void GameEngine::draw(N5110 &lcd) +void GameEngine::draw(N5110 &lcd, Gamepad &pad) { - // draw the elements in the LCD buffer - // player _p.draw(lcd); + /*while ( pad.check_event(Gamepad::A_PRESSED) == true) { + _proj.draw(lcd); + }*/ _proj.draw(lcd); _t.draw(lcd); + _tt.draw(lcd); + _ttt.draw(lcd); } @@ -38,7 +41,10 @@ _p.update(_d,_mag); _proj.update(); _t.update(); + _tt.update(); + _ttt.update(); CheckProjTargetCollision(pad); + CheckPlayerTargetCollision(pad); } void GameEngine::get_pos() @@ -64,7 +70,11 @@ { Vector2D proj_pos = _proj.get_pos(); Vector2D t_pos = _t.get_pos(); + Vector2D tt_pos = _tt.get_pos(); + Vector2D ttt_pos = _ttt.get_pos(); + Vector2D player_pos = _p.get_pos(); + // printf("proj %f %f \n", proj_pos.x, proj_pos.y); //printf("targ %f %f \n", t_pos.x, t_pos.y); @@ -73,26 +83,148 @@ (proj_pos.y == t_pos.y + 1) || (proj_pos.y == t_pos.y + 2) || (proj_pos.y == t_pos.y + 3) || - (proj_pos.y == t_pos.y + 4)) && + (proj_pos.y == t_pos.y + 4) || + (proj_pos.y == t_pos.y + 5) || + (proj_pos.y == t_pos.y + 6) || + (proj_pos.y == t_pos.y + 7) || + (proj_pos.y + 1 == t_pos.y) || + (proj_pos.y + 1 == t_pos.y + 1) || + (proj_pos.y + 1 == t_pos.y + 2) || + (proj_pos.y + 1 == t_pos.y + 3) || + (proj_pos.y + 1 == t_pos.y + 4) || + (proj_pos.y + 1 == t_pos.y + 5) || + (proj_pos.y + 1 == t_pos.y + 6) || + (proj_pos.y + 1 == t_pos.y + 7)) && ((proj_pos.x == t_pos.x) || (proj_pos.x == t_pos.x + 1) || (proj_pos.x == t_pos.x + 2) || (proj_pos.x == t_pos.x + 3) || - (proj_pos.x == t_pos.x + 4)) + (proj_pos.x == t_pos.x + 4) || + (proj_pos.x == t_pos.x + 5) || + (proj_pos.x == t_pos.x + 6) || + (proj_pos.x == t_pos.x + 7) || + (proj_pos.x + 1 == t_pos.x) || + (proj_pos.x + 1 == t_pos.x + 1) || + (proj_pos.x + 1 == t_pos.x + 2) || + (proj_pos.x + 1 == t_pos.x + 3) || + (proj_pos.x + 1 == t_pos.x + 4) || + (proj_pos.x + 1 == t_pos.x + 5) || + (proj_pos.x + 1 == t_pos.x + 6) || + (proj_pos.x + 1 == t_pos.x + 7) || + (proj_pos.x + 1 == t_pos.x + 8) || + (proj_pos.x + 1 == t_pos.x + 9) || + (proj_pos.x + 1 == t_pos.x + 10)) ) { - printf("yeaaaaaaaaaaaaah boiiiiiiiiiiii \n"); - proj_pos.x = player_pos.x +1; - proj_pos.y = player_pos.y +1; + //printf("projtarget working \n"); + proj_pos.x = player_pos.x +2; + proj_pos.y = player_pos.y; t_pos.x = rand() % 79; t_pos.y = 0; // audio feedback //pad.tone(1000.0,0.1); } + + if ( + ((proj_pos.y == tt_pos.y) || + (proj_pos.y == tt_pos.y + 1) || + (proj_pos.y == tt_pos.y + 2) || + (proj_pos.y == tt_pos.y + 3) || + (proj_pos.y == tt_pos.y + 4) || + (proj_pos.y == tt_pos.y + 5) || + (proj_pos.y == tt_pos.y + 6) || + (proj_pos.y == tt_pos.y + 7) || + (proj_pos.y + 1 == tt_pos.y) || + (proj_pos.y + 1 == tt_pos.y + 1) || + (proj_pos.y + 1 == tt_pos.y + 2) || + (proj_pos.y + 1 == tt_pos.y + 3) || + (proj_pos.y + 1 == tt_pos.y + 4) || + (proj_pos.y + 1 == tt_pos.y + 5) || + (proj_pos.y + 1 == tt_pos.y + 6) || + (proj_pos.y + 1 == tt_pos.y + 7)) && + ((proj_pos.x == tt_pos.x) || + (proj_pos.x == tt_pos.x + 1) || + (proj_pos.x == tt_pos.x + 2) || + (proj_pos.x == tt_pos.x + 3) || + (proj_pos.x == tt_pos.x + 4) || + (proj_pos.x == tt_pos.x + 5) || + (proj_pos.x == tt_pos.x + 6) || + (proj_pos.x == tt_pos.x + 7) || + (proj_pos.x + 1 == tt_pos.x) || + (proj_pos.x + 1 == tt_pos.x + 1) || + (proj_pos.x + 1 == tt_pos.x + 2) || + (proj_pos.x + 1 == tt_pos.x + 3) || + (proj_pos.x + 1 == tt_pos.x + 4) || + (proj_pos.x + 1 == tt_pos.x + 5) || + (proj_pos.x + 1 == tt_pos.x + 6) || + (proj_pos.x + 1 == tt_pos.x + 7) || + (proj_pos.x + 1 == tt_pos.x + 8) || + (proj_pos.x + 1 == tt_pos.x + 9) || + (proj_pos.x + 1 == tt_pos.x + 10)) + ) { + + //printf("projtarget working \n"); + proj_pos.x = player_pos.x +2; + proj_pos.y = player_pos.y; + tt_pos.x = rand() % 79; + tt_pos.y = 0; + // audio feedback + //pad.tone(1000.0,0.1); + } + + if ( + ((proj_pos.y == ttt_pos.y) || + (proj_pos.y == ttt_pos.y + 1) || + (proj_pos.y == ttt_pos.y + 2) || + (proj_pos.y == ttt_pos.y + 3) || + (proj_pos.y == ttt_pos.y + 4) || + (proj_pos.y == ttt_pos.y + 5) || + (proj_pos.y == ttt_pos.y + 6) || + (proj_pos.y == ttt_pos.y + 7) || + (proj_pos.y + 1 == ttt_pos.y) || + (proj_pos.y + 1 == ttt_pos.y + 1) || + (proj_pos.y + 1 == ttt_pos.y + 2) || + (proj_pos.y + 1 == ttt_pos.y + 3) || + (proj_pos.y + 1 == ttt_pos.y + 4) || + (proj_pos.y + 1 == ttt_pos.y + 5) || + (proj_pos.y + 1 == ttt_pos.y + 6) || + (proj_pos.y + 1 == ttt_pos.y + 7)) && + ((proj_pos.x == ttt_pos.x) || + (proj_pos.x == ttt_pos.x + 1) || + (proj_pos.x == ttt_pos.x + 2) || + (proj_pos.x == ttt_pos.x + 3) || + (proj_pos.x == ttt_pos.x + 4) || + (proj_pos.x == ttt_pos.x + 5) || + (proj_pos.x == ttt_pos.x + 6) || + (proj_pos.x == ttt_pos.x + 7) || + (proj_pos.x + 1 == ttt_pos.x) || + (proj_pos.x + 1 == ttt_pos.x + 1) || + (proj_pos.x + 1 == ttt_pos.x + 2) || + (proj_pos.x + 1 == ttt_pos.x + 3) || + (proj_pos.x + 1 == ttt_pos.x + 4) || + (proj_pos.x + 1 == ttt_pos.x + 5) || + (proj_pos.x + 1 == ttt_pos.x + 6) || + (proj_pos.x + 1 == ttt_pos.x + 7) || + (proj_pos.x + 1 == ttt_pos.x + 8) || + (proj_pos.x + 1 == ttt_pos.x + 9) || + (proj_pos.x + 1 == ttt_pos.x + 10)) + ) { + + //printf("projtarget working \n"); + proj_pos.x = player_pos.x +2; + proj_pos.y = player_pos.y; + ttt_pos.x = rand() % 79; + ttt_pos.y = 0; + // audio feedback + //pad.tone(1000.0,0.1); + } + _proj.set_pos(proj_pos); _t.set_pos(t_pos); - + _tt.set_pos(tt_pos); + _ttt.set_pos(ttt_pos); + } @@ -100,5 +232,54 @@ +void GameEngine::CheckPlayerTargetCollision(Gamepad &pad) + { + Vector2D t_pos = _t.get_pos(); + Vector2D player_pos = _p.get_pos(); + + + if ( + ((player_pos.y == t_pos.y) || + (player_pos.y == t_pos.y + 1) || + (player_pos.y == t_pos.y + 2) || + (player_pos.y == t_pos.y + 3) || + (player_pos.y == t_pos.y + 4) || + + (player_pos.y +2 == t_pos.y) || + (player_pos.y +2 == t_pos.y + 1) || + (player_pos.y +2 == t_pos.y + 2) || + (player_pos.y +2 == t_pos.y + 3) || + (player_pos.y +2 == t_pos.y + 4)) && + ((player_pos.x == t_pos.x) || + (player_pos.x == t_pos.x + 1) || + (player_pos.x == t_pos.x + 2) || + (player_pos.x == t_pos.x + 3) || + (player_pos.x == t_pos.x + 4) || + + (player_pos.x +2 == t_pos.x) || + (player_pos.x +2 == t_pos.x + 1) || + (player_pos.x +2 == t_pos.x + 2) || + (player_pos.x +2 == t_pos.x + 3) || + (player_pos.x +2 == t_pos.x + 4)) + ) { + + //printf("collision working \n"); + // audio feedback + //pad.tone(1000.0,0.1); + t_pos.x = rand() % 79; + t_pos.y = 20; + + } + + _t.set_pos(t_pos); + + + } + + + + + + \ No newline at end of file