![](/media/cache/profiles/LinkedIn_0NghoZJ.jpeg.50x50_q85.jpg)
Snake vs Block Game to be run upon K64F.
Snake/Snake.cpp@7:48ba87cd79b5, 2019-03-26 (annotated)
- Committer:
- AhmedPlaymaker
- Date:
- Tue Mar 26 14:45:15 2019 +0000
- Revision:
- 7:48ba87cd79b5
- Child:
- 8:890b986b16a4
Game screen created, snake class and snake vs block class also created.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AhmedPlaymaker | 7:48ba87cd79b5 | 1 | #include "Snake.h" |
AhmedPlaymaker | 7:48ba87cd79b5 | 2 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 3 | Snake::Snake() |
AhmedPlaymaker | 7:48ba87cd79b5 | 4 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 5 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 6 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 7 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 8 | Snake::~Snake() |
AhmedPlaymaker | 7:48ba87cd79b5 | 9 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 10 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 11 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 12 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 13 | //The Snake Sprite. |
AhmedPlaymaker | 7:48ba87cd79b5 | 14 | int snake_sprite[1][1] = { |
AhmedPlaymaker | 7:48ba87cd79b5 | 15 | {1}, |
AhmedPlaymaker | 7:48ba87cd79b5 | 16 | }; |
AhmedPlaymaker | 7:48ba87cd79b5 | 17 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 18 | int m = 0; //Variable used to allow a starting location for the player. |
AhmedPlaymaker | 7:48ba87cd79b5 | 19 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 20 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 21 | void Snake::init() |
AhmedPlaymaker | 7:48ba87cd79b5 | 22 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 23 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 24 | _speed = 0.15;// change this according to the options selected |
AhmedPlaymaker | 7:48ba87cd79b5 | 25 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 26 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 27 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 28 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 29 | void Snake::draw(N5110 &lcd) |
AhmedPlaymaker | 7:48ba87cd79b5 | 30 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 31 | if(m == 0){ |
AhmedPlaymaker | 7:48ba87cd79b5 | 32 | _x = WIDTH/2; //Spawns player sprite near the middle of the screen. |
AhmedPlaymaker | 7:48ba87cd79b5 | 33 | _y = HEIGHT - 3; |
AhmedPlaymaker | 7:48ba87cd79b5 | 34 | m = m+1; |
AhmedPlaymaker | 7:48ba87cd79b5 | 35 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 36 | //printf("SPRITE %d %d \n", _x, _y); |
AhmedPlaymaker | 7:48ba87cd79b5 | 37 | lcd.drawSprite(_x,_y,1,1,(int *)snake_sprite); //Function used to draw the sprite. |
AhmedPlaymaker | 7:48ba87cd79b5 | 38 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 39 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 40 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 41 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 42 | Vector2D Snake::get_pos() |
AhmedPlaymaker | 7:48ba87cd79b5 | 43 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 44 | Vector2D snakepos = {_x,_y}; //Obtains the snake position. |
AhmedPlaymaker | 7:48ba87cd79b5 | 45 | //printf("snakepos from player = %f %f \n", snakepos.x, snakepos.y); |
AhmedPlaymaker | 7:48ba87cd79b5 | 46 | return snakepos; |
AhmedPlaymaker | 7:48ba87cd79b5 | 47 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 48 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 49 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 50 | void Snake::update(Direction d,float mag) |
AhmedPlaymaker | 7:48ba87cd79b5 | 51 | { |
AhmedPlaymaker | 7:48ba87cd79b5 | 52 | _speed = int(mag*7.0f); //Speed changes depending on how much you push the joystick.(As Of Now) |
AhmedPlaymaker | 7:48ba87cd79b5 | 53 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 54 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 55 | // Diagonal speeds are /2 to prevent player from going double the speed. |
AhmedPlaymaker | 7:48ba87cd79b5 | 56 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 57 | if (d == E) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 58 | _x+=_speed; |
AhmedPlaymaker | 7:48ba87cd79b5 | 59 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 60 | if (d == W) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 61 | _x-=_speed; |
AhmedPlaymaker | 7:48ba87cd79b5 | 62 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 63 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 64 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 65 | //Limits set so that the sprite does not travel off the screen. |
AhmedPlaymaker | 7:48ba87cd79b5 | 66 | if (_y <= 0) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 67 | _y = 0; |
AhmedPlaymaker | 7:48ba87cd79b5 | 68 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 69 | if (_x <= 0) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 70 | _x = 0; |
AhmedPlaymaker | 7:48ba87cd79b5 | 71 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 72 | if (_x > 78) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 73 | _x = 78; |
AhmedPlaymaker | 7:48ba87cd79b5 | 74 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 75 | if (_y > 42) { |
AhmedPlaymaker | 7:48ba87cd79b5 | 76 | _y = 42; |
AhmedPlaymaker | 7:48ba87cd79b5 | 77 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 78 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 79 | } |
AhmedPlaymaker | 7:48ba87cd79b5 | 80 |