Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Snake_engine/Snake_engine.cpp@12:d45bc5d878ad, 2018-05-04 (annotated)
- 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?
User | Revision | Line number | New 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 |