ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Committer:
weiway
Date:
Mon May 07 11:57:22 2018 +0000
Revision:
15:47ea86f1ed70
Parent:
14:9e2ce28b4e63
Child:
18:e58a1f8e72ad
the game runs well but the fruit reborn outside of the screen. and the snake would not die even if hit the wall

Who changed what in which revision?

UserRevisionLine numberNew contents of line
weiway 13:4026781772cb 1 #include "snake.h"
weiway 13:4026781772cb 2
weiway 13:4026781772cb 3
weiway 13:4026781772cb 4 snake::snake(){
weiway 13:4026781772cb 5
weiway 13:4026781772cb 6 }
weiway 13:4026781772cb 7
weiway 13:4026781772cb 8
weiway 13:4026781772cb 9 snake::~snake(){
weiway 13:4026781772cb 10
weiway 13:4026781772cb 11 }
weiway 13:4026781772cb 12
weiway 13:4026781772cb 13 void snake::init(){
weiway 14:9e2ce28b4e63 14 for (int i = 0; i <_point ; i++) {
weiway 13:4026781772cb 15 _xoldpos[i] = 15;
weiway 13:4026781772cb 16 _yoldpos[i] = 23;
weiway 13:4026781772cb 17 _xnewpos[i] = 15 ;
weiway 13:4026781772cb 18 _ynewpos[i] = 23;
weiway 13:4026781772cb 19 }
weiway 13:4026781772cb 20 dir_snake = 3;
weiway 13:4026781772cb 21 _array = 100;
weiway 14:9e2ce28b4e63 22 _point = 6;
weiway 14:9e2ce28b4e63 23
weiway 13:4026781772cb 24 }
weiway 13:4026781772cb 25
weiway 13:4026781772cb 26 void snake::update(Direction d,float mag){
weiway 13:4026781772cb 27 if (dir_snake == 1){
weiway 13:4026781772cb 28 s() ;}
weiway 13:4026781772cb 29 else if (dir_snake == 2){
weiway 13:4026781772cb 30 n();}
weiway 13:4026781772cb 31 else if (dir_snake == 3){
weiway 13:4026781772cb 32 e();}
weiway 13:4026781772cb 33 else if (dir_snake == 4){
weiway 13:4026781772cb 34 w();}
weiway 14:9e2ce28b4e63 35 if ((d == S) )
weiway 13:4026781772cb 36 { dir_snake = 1 ;}
weiway 14:9e2ce28b4e63 37 if ((d == N) )
weiway 13:4026781772cb 38 { dir_snake = 2 ;}
weiway 14:9e2ce28b4e63 39 if ((d == E) )
weiway 13:4026781772cb 40 { dir_snake = 3 ;}
weiway 14:9e2ce28b4e63 41 if ((d == W) )
weiway 13:4026781772cb 42 { dir_snake = 4 ;}
weiway 13:4026781772cb 43
weiway 13:4026781772cb 44 }
weiway 13:4026781772cb 45
weiway 13:4026781772cb 46
weiway 13:4026781772cb 47 void snake::draw(N5110 &lcd)
weiway 13:4026781772cb 48 {
weiway 14:9e2ce28b4e63 49 for(int i=0; i<_point; i++) {
weiway 13:4026781772cb 50 lcd.setPixel(_xnewpos[i],_ynewpos[i]);
weiway 13:4026781772cb 51 }
weiway 13:4026781772cb 52 }
weiway 13:4026781772cb 53
weiway 13:4026781772cb 54 Vector2D snake::get_pos()
weiway 13:4026781772cb 55 {
weiway 13:4026781772cb 56 Vector2D p = {_xnewpos[0],_ynewpos[0]};
weiway 13:4026781772cb 57 return p;
weiway 13:4026781772cb 58 }
weiway 13:4026781772cb 59
weiway 13:4026781772cb 60 void snake::set_pos(Vector2D p)
weiway 13:4026781772cb 61 {
weiway 13:4026781772cb 62 _xnewpos[0] = p.x;
weiway 13:4026781772cb 63 _ynewpos[0] = p.y;
weiway 13:4026781772cb 64
weiway 13:4026781772cb 65 }
weiway 13:4026781772cb 66
weiway 13:4026781772cb 67
weiway 13:4026781772cb 68 void snake::point()
weiway 13:4026781772cb 69 {
weiway 13:4026781772cb 70 _point++;
weiway 13:4026781772cb 71
weiway 13:4026781772cb 72 }
weiway 13:4026781772cb 73
weiway 13:4026781772cb 74
weiway 13:4026781772cb 75 int snake::get_point()
weiway 13:4026781772cb 76 {
weiway 14:9e2ce28b4e63 77 return _point -6 ;
weiway 13:4026781772cb 78 }
weiway 13:4026781772cb 79
weiway 13:4026781772cb 80
weiway 13:4026781772cb 81 void snake::n() {
weiway 13:4026781772cb 82 _xnewpos[0] = _xoldpos[0] ;
weiway 13:4026781772cb 83 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 84 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 85 }
weiway 13:4026781772cb 86 _ynewpos[0] = _yoldpos[0]- 1;
weiway 13:4026781772cb 87 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 88 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 89 }
weiway 13:4026781772cb 90 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 91 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 92 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 93 }
weiway 15:47ea86f1ed70 94
weiway 13:4026781772cb 95 }
weiway 13:4026781772cb 96
weiway 13:4026781772cb 97
weiway 13:4026781772cb 98 void snake::s(){
weiway 13:4026781772cb 99 _xnewpos[0] = _xoldpos[0] ;
weiway 13:4026781772cb 100 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 101 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 102 }
weiway 13:4026781772cb 103 _ynewpos[0] = _yoldpos[0]+ 1;
weiway 13:4026781772cb 104 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 105 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 106 }
weiway 13:4026781772cb 107 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 108 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 109 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 110 }
weiway 13:4026781772cb 111
weiway 13:4026781772cb 112 }
weiway 13:4026781772cb 113
weiway 13:4026781772cb 114
weiway 13:4026781772cb 115 void snake::w(){
weiway 13:4026781772cb 116 _xnewpos[0] = _xoldpos[0]-1;
weiway 13:4026781772cb 117 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 118 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 119 }
weiway 13:4026781772cb 120 _ynewpos[0] = _yoldpos[0];
weiway 13:4026781772cb 121 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 122 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 123 }
weiway 13:4026781772cb 124 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 125 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 126 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 127 }
weiway 13:4026781772cb 128
weiway 13:4026781772cb 129 }
weiway 13:4026781772cb 130
weiway 13:4026781772cb 131
weiway 13:4026781772cb 132 void snake::e(){
weiway 13:4026781772cb 133 _xnewpos[0] = _xoldpos[0]+1;
weiway 13:4026781772cb 134 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 135 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 136 }
weiway 13:4026781772cb 137 _ynewpos[0] = _yoldpos[0];
weiway 13:4026781772cb 138 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 139 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 140 }
weiway 13:4026781772cb 141 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 142 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 143 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 144 }
weiway 13:4026781772cb 145
weiway 13:4026781772cb 146 }
weiway 13:4026781772cb 147
weiway 13:4026781772cb 148
weiway 13:4026781772cb 149