Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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