Library containing the Game Engine

Committer:
ll14c4p
Date:
Tue May 02 16:25:26 2017 +0000
Revision:
7:cf6304ef44fd
Parent:
6:c710fbc0f48e
Child:
8:bd718162a87c
Added new function to check projectile and target collision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ll14c4p 0:5997fa876927 1 #include "GameEngine.h"
ll14c4p 0:5997fa876927 2
ll14c4p 0:5997fa876927 3 GameEngine::GameEngine()
ll14c4p 0:5997fa876927 4 {
ll14c4p 0:5997fa876927 5
ll14c4p 0:5997fa876927 6 }
ll14c4p 0:5997fa876927 7
ll14c4p 0:5997fa876927 8 GameEngine::~GameEngine()
ll14c4p 0:5997fa876927 9 {
ll14c4p 0:5997fa876927 10
ll14c4p 0:5997fa876927 11 }
ll14c4p 0:5997fa876927 12
ll14c4p 0:5997fa876927 13 void GameEngine::init()
ll14c4p 0:5997fa876927 14 {
ll14c4p 0:5997fa876927 15
ll14c4p 0:5997fa876927 16 }
ll14c4p 0:5997fa876927 17
ll14c4p 0:5997fa876927 18
ll14c4p 0:5997fa876927 19
ll14c4p 0:5997fa876927 20 void GameEngine::read_input(Gamepad &pad)
ll14c4p 0:5997fa876927 21 {
ll14c4p 0:5997fa876927 22 _d = pad.get_direction();
ll14c4p 0:5997fa876927 23 _mag = pad.get_mag();
ll14c4p 0:5997fa876927 24 }
ll14c4p 0:5997fa876927 25
ll14c4p 0:5997fa876927 26 void GameEngine::draw(N5110 &lcd)
ll14c4p 0:5997fa876927 27 {
ll14c4p 0:5997fa876927 28 // draw the elements in the LCD buffer
ll14c4p 0:5997fa876927 29 // player
ll14c4p 0:5997fa876927 30 _p.draw(lcd);
ll14c4p 3:2f8f003ce4fd 31 _proj.draw(lcd);
ll14c4p 6:c710fbc0f48e 32 _t.draw(lcd);
ll14c4p 0:5997fa876927 33 }
ll14c4p 0:5997fa876927 34
ll14c4p 3:2f8f003ce4fd 35
ll14c4p 0:5997fa876927 36 void GameEngine::update(Gamepad &pad)
ll14c4p 0:5997fa876927 37 {
ll14c4p 0:5997fa876927 38 _p.update(_d,_mag);
ll14c4p 3:2f8f003ce4fd 39 _proj.update();
ll14c4p 6:c710fbc0f48e 40 _t.update();
ll14c4p 7:cf6304ef44fd 41 CheckProjTargetCollision(pad);
ll14c4p 0:5997fa876927 42 }
ll14c4p 1:13a97de95e46 43
ll14c4p 1:13a97de95e46 44 void GameEngine::get_pos()
ll14c4p 1:13a97de95e46 45 {
ll14c4p 1:13a97de95e46 46 Vector2D player_pos = _p.get_pos();
ll14c4p 5:6224122fc07c 47 //printf("player pos = %f %f \n", player_pos.x, player_pos.y); //top left of player sprite
ll14c4p 4:e78f5bcddb01 48 // 81.000000 0.000000 top right
ll14c4p 4:e78f5bcddb01 49 // 0.000000 0.000000 is top left
ll14c4p 4:e78f5bcddb01 50 // 81.000000 45.000000 bottom right
ll14c4p 4:e78f5bcddb01 51 Vector2D proj_pos = _proj.get_pos();
ll14c4p 5:6224122fc07c 52 //printf("proj pos = %f %f \n", proj_pos.x, proj_pos.y);
ll14c4p 5:6224122fc07c 53
ll14c4p 5:6224122fc07c 54 playerx = player_pos.x;
ll14c4p 5:6224122fc07c 55 playery = player_pos.y;
ll14c4p 7:cf6304ef44fd 56 //printf("playerxy in GAME = %d %d \n", playerx, playery);
ll14c4p 5:6224122fc07c 57 _proj.init(playerx,playery);
ll14c4p 1:13a97de95e46 58
ll14c4p 7:cf6304ef44fd 59 }
ll14c4p 7:cf6304ef44fd 60
ll14c4p 6:c710fbc0f48e 61
ll14c4p 6:c710fbc0f48e 62
ll14c4p 7:cf6304ef44fd 63 void GameEngine::CheckProjTargetCollision(Gamepad &pad)
ll14c4p 7:cf6304ef44fd 64 {
ll14c4p 7:cf6304ef44fd 65 Vector2D proj_pos = _proj.get_pos();
ll14c4p 7:cf6304ef44fd 66 Vector2D t_pos = _t.get_pos();
ll14c4p 7:cf6304ef44fd 67 Vector2D player_pos = _p.get_pos();
ll14c4p 7:cf6304ef44fd 68 // printf("proj %f %f \n", proj_pos.x, proj_pos.y);
ll14c4p 7:cf6304ef44fd 69 //printf("targ %f %f \n", t_pos.x, t_pos.y);
ll14c4p 7:cf6304ef44fd 70
ll14c4p 7:cf6304ef44fd 71 if (
ll14c4p 7:cf6304ef44fd 72 ((proj_pos.y == t_pos.y) ||
ll14c4p 7:cf6304ef44fd 73 (proj_pos.y == t_pos.y + 1) ||
ll14c4p 7:cf6304ef44fd 74 (proj_pos.y == t_pos.y + 2) ||
ll14c4p 7:cf6304ef44fd 75 (proj_pos.y == t_pos.y + 3) ||
ll14c4p 7:cf6304ef44fd 76 (proj_pos.y == t_pos.y + 4)) &&
ll14c4p 7:cf6304ef44fd 77 ((proj_pos.x == t_pos.x) ||
ll14c4p 7:cf6304ef44fd 78 (proj_pos.x == t_pos.x + 1) ||
ll14c4p 7:cf6304ef44fd 79 (proj_pos.x == t_pos.x + 2) ||
ll14c4p 7:cf6304ef44fd 80 (proj_pos.x == t_pos.x + 3) ||
ll14c4p 7:cf6304ef44fd 81 (proj_pos.x == t_pos.x + 4))
ll14c4p 7:cf6304ef44fd 82 ) {
ll14c4p 7:cf6304ef44fd 83
ll14c4p 7:cf6304ef44fd 84 printf("yeaaaaaaaaaaaaah boiiiiiiiiiiii \n");
ll14c4p 7:cf6304ef44fd 85 proj_pos.x = player_pos.x +1;
ll14c4p 7:cf6304ef44fd 86 proj_pos.y = player_pos.y +1;
ll14c4p 7:cf6304ef44fd 87 t_pos.x = rand() % 79;
ll14c4p 7:cf6304ef44fd 88 t_pos.y = 0;
ll14c4p 7:cf6304ef44fd 89 // audio feedback
ll14c4p 7:cf6304ef44fd 90 //pad.tone(1000.0,0.1);
ll14c4p 7:cf6304ef44fd 91 }
ll14c4p 7:cf6304ef44fd 92
ll14c4p 7:cf6304ef44fd 93 _proj.set_pos(proj_pos);
ll14c4p 7:cf6304ef44fd 94 _t.set_pos(t_pos);
ll14c4p 7:cf6304ef44fd 95
ll14c4p 7:cf6304ef44fd 96
ll14c4p 7:cf6304ef44fd 97 }
ll14c4p 7:cf6304ef44fd 98
ll14c4p 7:cf6304ef44fd 99
ll14c4p 7:cf6304ef44fd 100
ll14c4p 7:cf6304ef44fd 101
ll14c4p 7:cf6304ef44fd 102
ll14c4p 7:cf6304ef44fd 103
ll14c4p 7:cf6304ef44fd 104