ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Committer:
weiway
Date:
Sun May 06 12:44:41 2018 +0000
Revision:
13:4026781772cb
Parent:
Snake_engine/Snake_engine.cpp@12:d45bc5d878ad
Child:
15:47ea86f1ed70
...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
weiway 13:4026781772cb 1 #include "snake_engine.h"
weiway 12:d45bc5d878ad 2
weiway 12:d45bc5d878ad 3 snake_engine::snake_engine()
weiway 12:d45bc5d878ad 4 {
weiway 12:d45bc5d878ad 5
weiway 12:d45bc5d878ad 6 }
weiway 12:d45bc5d878ad 7
weiway 12:d45bc5d878ad 8 snake_engine::~snake_engine()
weiway 12:d45bc5d878ad 9 {
weiway 12:d45bc5d878ad 10
weiway 12:d45bc5d878ad 11
weiway 12:d45bc5d878ad 12
weiway 12:d45bc5d878ad 13 }
weiway 12:d45bc5d878ad 14
weiway 13:4026781772cb 15 void snake_engine::init()
weiway 12:d45bc5d878ad 16 {
weiway 12:d45bc5d878ad 17 s.init();
weiway 12:d45bc5d878ad 18
weiway 12:d45bc5d878ad 19 }
weiway 12:d45bc5d878ad 20
weiway 13:4026781772cb 21 void snake_engine::draw(N5110 &lcd)
weiway 12:d45bc5d878ad 22 {
weiway 12:d45bc5d878ad 23 lcd.refresh();
weiway 12:d45bc5d878ad 24 lcd.clear();
weiway 12:d45bc5d878ad 25 lcd.drawRect(0,8,WIDTH ,HEIGHT -8,FILL_TRANSPARENT);
weiway 12:d45bc5d878ad 26
weiway 12:d45bc5d878ad 27 s.draw(lcd);
weiway 12:d45bc5d878ad 28 f.draw(lcd);
weiway 13:4026781772cb 29 print_point(lcd);
weiway 12:d45bc5d878ad 30 }
weiway 12:d45bc5d878ad 31
weiway 13:4026781772cb 32 void snake_engine::update(Gamepad &pad, N5110 &lcd)
weiway 12:d45bc5d878ad 33 {
weiway 12:d45bc5d878ad 34 s.update(_d,_mag);
weiway 12:d45bc5d878ad 35
weiway 12:d45bc5d878ad 36 if(getfruit(pad)) {
weiway 13:4026781772cb 37 f.reborn();
weiway 13:4026781772cb 38 s.point();
weiway 12:d45bc5d878ad 39
weiway 12:d45bc5d878ad 40 }
weiway 12:d45bc5d878ad 41 }
weiway 12:d45bc5d878ad 42
weiway 12:d45bc5d878ad 43
weiway 13:4026781772cb 44 bool snake_engine::getfruit(Gamepad &pad)
weiway 12:d45bc5d878ad 45 {
weiway 12:d45bc5d878ad 46 Vector2D _f_pos = f.get_pos();
weiway 12:d45bc5d878ad 47 Vector2D _s_pos = s.get_pos();
weiway 12:d45bc5d878ad 48 if ((_f_pos.y >= _s_pos.y || _f_pos.y == _s_pos.y-1) &&
weiway 12:d45bc5d878ad 49 (_f_pos.y <= _s_pos.y || _f_pos.y+1 == _s_pos.y-1) &&
weiway 12:d45bc5d878ad 50 (_f_pos.x >= _s_pos.x || _f_pos.x+1 >= _s_pos.x || _f_pos.x+1 >= _s_pos.x ) &&
weiway 12:d45bc5d878ad 51 (_f_pos.x <= _s_pos.x || _f_pos.x+1 <= _s_pos.x)) {
weiway 12:d45bc5d878ad 52 return true;
weiway 12:d45bc5d878ad 53 } else {
weiway 12:d45bc5d878ad 54 return false;
weiway 12:d45bc5d878ad 55 }
weiway 12:d45bc5d878ad 56 }
weiway 12:d45bc5d878ad 57
weiway 12:d45bc5d878ad 58
weiway 13:4026781772cb 59 void snake_engine::print_point(N5110 &lcd)
weiway 12:d45bc5d878ad 60 {
weiway 12:d45bc5d878ad 61 int print_point = s.get_point();
weiway 12:d45bc5d878ad 62 char buffer[14];
weiway 13:4026781772cb 63 sprintf(buffer,"%2d",print_point);
weiway 12:d45bc5d878ad 64 lcd.printString(buffer,WIDTH/2 - 40,0);
weiway 12:d45bc5d878ad 65 }
weiway 12:d45bc5d878ad 66
weiway 12:d45bc5d878ad 67
weiway 13:4026781772cb 68 void snake_engine::read_input(Gamepad &pad)
weiway 13:4026781772cb 69 {
weiway 13:4026781772cb 70 _d = pad.get_direction();
weiway 13:4026781772cb 71 _mag = pad.get_mag();
weiway 13:4026781772cb 72 }
weiway 12:d45bc5d878ad 73
weiway 12:d45bc5d878ad 74