wu weilong / Mbed 2 deprecated frdm_gpio1

Dependencies:   mbed

Committer:
wuweilong
Date:
Wed May 08 20:08:17 2019 +0000
Revision:
10:ae5f62a1e40e
version1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wuweilong 10:ae5f62a1e40e 1 #include "element.h"
wuweilong 10:ae5f62a1e40e 2 element::element()
wuweilong 10:ae5f62a1e40e 3 {
wuweilong 10:ae5f62a1e40e 4
wuweilong 10:ae5f62a1e40e 5 }
wuweilong 10:ae5f62a1e40e 6
wuweilong 10:ae5f62a1e40e 7 element::~element()
wuweilong 10:ae5f62a1e40e 8 {
wuweilong 10:ae5f62a1e40e 9
wuweilong 10:ae5f62a1e40e 10 }
wuweilong 10:ae5f62a1e40e 11 void element::init(int size ,int foodx ,int foody,int snakex, int snakey ,int n)
wuweilong 10:ae5f62a1e40e 12 {
wuweilong 10:ae5f62a1e40e 13 _size=size;
wuweilong 10:ae5f62a1e40e 14 _foodpos.x=foodx;
wuweilong 10:ae5f62a1e40e 15 _foodpos.y=foody;
wuweilong 10:ae5f62a1e40e 16 for(int i=0;i<n;i++){
wuweilong 10:ae5f62a1e40e 17 _snakebody[i].x=snakex+2*i;
wuweilong 10:ae5f62a1e40e 18 _snakebody[i].y=snakey;
wuweilong 10:ae5f62a1e40e 19 }
wuweilong 10:ae5f62a1e40e 20
wuweilong 10:ae5f62a1e40e 21 }
wuweilong 10:ae5f62a1e40e 22 void element::update()
wuweilong 10:ae5f62a1e40e 23 {
wuweilong 10:ae5f62a1e40e 24
wuweilong 10:ae5f62a1e40e 25 srand(time(NULL));
wuweilong 10:ae5f62a1e40e 26 _foodpos.x=rand()%(WIDTH-2);
wuweilong 10:ae5f62a1e40e 27 _foodpos.y=rand()%(HEIGHT-2);
wuweilong 10:ae5f62a1e40e 28
wuweilong 10:ae5f62a1e40e 29 }
wuweilong 10:ae5f62a1e40e 30
wuweilong 10:ae5f62a1e40e 31 Vector2D element::getfoodpos(){
wuweilong 10:ae5f62a1e40e 32 Vector2D p;
wuweilong 10:ae5f62a1e40e 33 p=_foodpos;
wuweilong 10:ae5f62a1e40e 34 return p;
wuweilong 10:ae5f62a1e40e 35 }
wuweilong 10:ae5f62a1e40e 36 void element::draw(N5110 &lcd,int n){
wuweilong 10:ae5f62a1e40e 37 lcd.drawRect(_foodpos.x,_foodpos.y,_size,_size,FILL_BLACK);
wuweilong 10:ae5f62a1e40e 38 for(int i=0;i<n;i++){
wuweilong 10:ae5f62a1e40e 39 lcd.drawRect(_snakebody[i].x,_snakebody[i].y,3,3,FILL_BLACK);
wuweilong 10:ae5f62a1e40e 40 }
wuweilong 10:ae5f62a1e40e 41 }
wuweilong 10:ae5f62a1e40e 42 void element::input(Gamepad &pad){
wuweilong 10:ae5f62a1e40e 43 _d=pad.get_direction();
wuweilong 10:ae5f62a1e40e 44 }
wuweilong 10:ae5f62a1e40e 45 void element::move(int n){
wuweilong 10:ae5f62a1e40e 46 int k=0;
wuweilong 10:ae5f62a1e40e 47 if(_snakebody[0].x>_snakebody[1].x)
wuweilong 10:ae5f62a1e40e 48 {
wuweilong 10:ae5f62a1e40e 49 k=0;//
wuweilong 10:ae5f62a1e40e 50 }
wuweilong 10:ae5f62a1e40e 51 if(_snakebody[0].x<_snakebody[1].x)
wuweilong 10:ae5f62a1e40e 52 {
wuweilong 10:ae5f62a1e40e 53 k=1;
wuweilong 10:ae5f62a1e40e 54 }
wuweilong 10:ae5f62a1e40e 55 if(_snakebody[0].y<_snakebody[1].y)
wuweilong 10:ae5f62a1e40e 56 {
wuweilong 10:ae5f62a1e40e 57 k=2;
wuweilong 10:ae5f62a1e40e 58 }
wuweilong 10:ae5f62a1e40e 59 if(_snakebody[0].y>_snakebody[1].y)
wuweilong 10:ae5f62a1e40e 60 {
wuweilong 10:ae5f62a1e40e 61 k=3;
wuweilong 10:ae5f62a1e40e 62 }
wuweilong 10:ae5f62a1e40e 63
wuweilong 10:ae5f62a1e40e 64 for(int i=n-1;i>0;i--)
wuweilong 10:ae5f62a1e40e 65 {
wuweilong 10:ae5f62a1e40e 66 _snakebody[i].x=_snakebody[i-1].x;
wuweilong 10:ae5f62a1e40e 67 _snakebody[i].y=_snakebody[i-1].y;
wuweilong 10:ae5f62a1e40e 68 }
wuweilong 10:ae5f62a1e40e 69
wuweilong 10:ae5f62a1e40e 70 if (_d == N && k!=3 )
wuweilong 10:ae5f62a1e40e 71 {
wuweilong 10:ae5f62a1e40e 72 _snakebody[0].y-=1;
wuweilong 10:ae5f62a1e40e 73
wuweilong 10:ae5f62a1e40e 74
wuweilong 10:ae5f62a1e40e 75 } if (_d == S && k!=2) {
wuweilong 10:ae5f62a1e40e 76
wuweilong 10:ae5f62a1e40e 77 _snakebody[0].y+=1;
wuweilong 10:ae5f62a1e40e 78
wuweilong 10:ae5f62a1e40e 79 }if(_d==E && k!=1){
wuweilong 10:ae5f62a1e40e 80
wuweilong 10:ae5f62a1e40e 81 _snakebody[0].x+=1;
wuweilong 10:ae5f62a1e40e 82
wuweilong 10:ae5f62a1e40e 83
wuweilong 10:ae5f62a1e40e 84
wuweilong 10:ae5f62a1e40e 85 } if(_d==W && k!=0){
wuweilong 10:ae5f62a1e40e 86
wuweilong 10:ae5f62a1e40e 87 _snakebody[0].x-=1;
wuweilong 10:ae5f62a1e40e 88
wuweilong 10:ae5f62a1e40e 89
wuweilong 10:ae5f62a1e40e 90 }if(_d==CENTRE && k==0)
wuweilong 10:ae5f62a1e40e 91
wuweilong 10:ae5f62a1e40e 92 {
wuweilong 10:ae5f62a1e40e 93 _snakebody[0].x+=1;
wuweilong 10:ae5f62a1e40e 94 }
wuweilong 10:ae5f62a1e40e 95 if(_d==CENTRE && k==1)
wuweilong 10:ae5f62a1e40e 96
wuweilong 10:ae5f62a1e40e 97 {
wuweilong 10:ae5f62a1e40e 98 _snakebody[0].x-=1;
wuweilong 10:ae5f62a1e40e 99 }
wuweilong 10:ae5f62a1e40e 100 if(_d==CENTRE && k==2)
wuweilong 10:ae5f62a1e40e 101
wuweilong 10:ae5f62a1e40e 102 {
wuweilong 10:ae5f62a1e40e 103 _snakebody[0].y-=1;
wuweilong 10:ae5f62a1e40e 104 }
wuweilong 10:ae5f62a1e40e 105 if(_d==CENTRE && k==3)
wuweilong 10:ae5f62a1e40e 106
wuweilong 10:ae5f62a1e40e 107 {
wuweilong 10:ae5f62a1e40e 108 _snakebody[0].y+=1;
wuweilong 10:ae5f62a1e40e 109 }
wuweilong 10:ae5f62a1e40e 110
wuweilong 10:ae5f62a1e40e 111 }
wuweilong 10:ae5f62a1e40e 112
wuweilong 10:ae5f62a1e40e 113 Vector2D element::getsnakepos(int n){
wuweilong 10:ae5f62a1e40e 114 Vector2D p;
wuweilong 10:ae5f62a1e40e 115 p=_snakebody[n];
wuweilong 10:ae5f62a1e40e 116 return p;
wuweilong 10:ae5f62a1e40e 117 }
wuweilong 10:ae5f62a1e40e 118
wuweilong 10:ae5f62a1e40e 119
wuweilong 10:ae5f62a1e40e 120
wuweilong 10:ae5f62a1e40e 121