ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Committer:
weiway
Date:
Fri May 04 13:25:18 2018 +0000
Revision:
12:d45bc5d878ad
Parent:
10:946a3835a7c7
add a boolean function. bool getfruit   . This is for making the position of snake == fruit position so that snake achieve to eat fruit successfully. Also add a function to print the point of the snake ate at the top-left corner on LCD screen.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
weiway 12:d45bc5d878ad 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 12:d45bc5d878ad 15 void snakengine::init()
weiway 12:d45bc5d878ad 16 {
weiway 12:d45bc5d878ad 17 s.init();
weiway 12:d45bc5d878ad 18
weiway 12:d45bc5d878ad 19 }
weiway 12:d45bc5d878ad 20
weiway 12:d45bc5d878ad 21 void snakengine::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 12:d45bc5d878ad 29 printscore(lcd);
weiway 12:d45bc5d878ad 30 }
weiway 12:d45bc5d878ad 31
weiway 12:d45bc5d878ad 32 void snakengine::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 12:d45bc5d878ad 37 f.update();
weiway 12:d45bc5d878ad 38 s.add_score();
weiway 12:d45bc5d878ad 39
weiway 12:d45bc5d878ad 40 }
weiway 12:d45bc5d878ad 41 }
weiway 12:d45bc5d878ad 42
weiway 12:d45bc5d878ad 43
weiway 12:d45bc5d878ad 44 bool snakengine::getftuit(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 12:d45bc5d878ad 59 void snakengine::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 12:d45bc5d878ad 63 sprintf(buffer,"%2d",snakepoint);
weiway 12:d45bc5d878ad 64 lcd.printString(buffer,WIDTH/2 - 40,0);
weiway 12:d45bc5d878ad 65 }
weiway 12:d45bc5d878ad 66
weiway 12:d45bc5d878ad 67
weiway 12:d45bc5d878ad 68
weiway 12:d45bc5d878ad 69