Library containing the Game Engine
GameEngine.cpp
- Committer:
- ll14c4p
- Date:
- 2017-05-03
- Revision:
- 8:bd718162a87c
- Parent:
- 7:cf6304ef44fd
- Child:
- 9:0f359bc0922f
File content as of revision 8:bd718162a87c:
#include "GameEngine.h" GameEngine::GameEngine() { } GameEngine::~GameEngine() { } void GameEngine::init() { } void GameEngine::read_input(Gamepad &pad) { _d = pad.get_direction(); _mag = pad.get_mag(); } void GameEngine::draw(N5110 &lcd, Gamepad &pad) { _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); } void GameEngine::update(Gamepad &pad) { _p.update(_d,_mag); _proj.update(); _t.update(); _tt.update(); _ttt.update(); CheckProjTargetCollision(pad); CheckPlayerTargetCollision(pad); } void GameEngine::get_pos() { Vector2D player_pos = _p.get_pos(); //printf("player pos = %f %f \n", player_pos.x, player_pos.y); //top left of player sprite // 81.000000 0.000000 top right // 0.000000 0.000000 is top left // 81.000000 45.000000 bottom right Vector2D proj_pos = _proj.get_pos(); //printf("proj pos = %f %f \n", proj_pos.x, proj_pos.y); playerx = player_pos.x; playery = player_pos.y; //printf("playerxy in GAME = %d %d \n", playerx, playery); _proj.init(playerx,playery); } void GameEngine::CheckProjTargetCollision(Gamepad &pad) { 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); if ( ((proj_pos.y == t_pos.y) || (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 + 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 + 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("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); } 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); }