Zirui Chen 201235448

Dependencies:   mbed

Committer:
ChenZirui
Date:
Wed May 27 21:13:59 2020 +0000
Revision:
5:7207c9b70108
Child:
6:b393cfe4e0a7
problems

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ChenZirui 5:7207c9b70108 1 #include "Board.h"
ChenZirui 5:7207c9b70108 2
ChenZirui 5:7207c9b70108 3 // nothing doing in the constructor and destructor
ChenZirui 5:7207c9b70108 4 Board::Board()
ChenZirui 5:7207c9b70108 5 {
ChenZirui 5:7207c9b70108 6
ChenZirui 5:7207c9b70108 7 }
ChenZirui 5:7207c9b70108 8
ChenZirui 5:7207c9b70108 9 Board::~Board()
ChenZirui 5:7207c9b70108 10 {
ChenZirui 5:7207c9b70108 11
ChenZirui 5:7207c9b70108 12 }
ChenZirui 5:7207c9b70108 13
ChenZirui 5:7207c9b70108 14 void Board::init(int x,int y,int height,int width,N5110 &lcd)
ChenZirui 5:7207c9b70108 15 {
ChenZirui 5:7207c9b70108 16 _x=x ; // horizontal coordinate of Board
ChenZirui 5:7207c9b70108 17 //_y=48-height/2 ; // vertical coordinate of fighte
ChenZirui 5:7207c9b70108 18 _y=y ;
ChenZirui 5:7207c9b70108 19 _height =height;
ChenZirui 5:7207c9b70108 20 _width = width;
ChenZirui 5:7207c9b70108 21 _speed = 1; // default speed
ChenZirui 5:7207c9b70108 22 _score = 0;
ChenZirui 5:7207c9b70108 23 //lcd.drawRect(0,0,84,24,FILL_BLACK);
ChenZirui 5:7207c9b70108 24
ChenZirui 5:7207c9b70108 25 }
ChenZirui 5:7207c9b70108 26 void Board::draw(N5110 &lcd)
ChenZirui 5:7207c9b70108 27 {
ChenZirui 5:7207c9b70108 28 //lcd.drawRect(_x+(_height/2)-(_width/2),_y,_width,_height,FILL_BLACK);
ChenZirui 5:7207c9b70108 29 lcd.drawRect(_x,_y,_height,_width,FILL_BLACK);
ChenZirui 5:7207c9b70108 30 // lcd.drawRect(0,0,84,24,FILL_BLACK);
ChenZirui 5:7207c9b70108 31 // lcd.drawRect(41,24,10,10,FILL_TRANSPARENT);
ChenZirui 5:7207c9b70108 32 // lcd.clearPixel(10,24);
ChenZirui 5:7207c9b70108 33
ChenZirui 5:7207c9b70108 34
ChenZirui 5:7207c9b70108 35 }
ChenZirui 5:7207c9b70108 36 void Board::update(Direction d,float mag,N5110 &lcd)
ChenZirui 5:7207c9b70108 37 {
ChenZirui 5:7207c9b70108 38 _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future
ChenZirui 5:7207c9b70108 39 //if((ball_pos.y >= 0)&&(ball_pos.y <= 24))
ChenZirui 5:7207c9b70108 40 // {
ChenZirui 5:7207c9b70108 41 // lcd.drawRect(24,41,10,10,FILL_TRANSPARENT);
ChenZirui 5:7207c9b70108 42 // }
ChenZirui 5:7207c9b70108 43 lcd.clearPixel(10,24);
ChenZirui 5:7207c9b70108 44
ChenZirui 5:7207c9b70108 45 // update y value depending on direction of movement
ChenZirui 5:7207c9b70108 46 // North is decrement as origin is at the top-left so decreasing moves up
ChenZirui 5:7207c9b70108 47 if (d == N)
ChenZirui 5:7207c9b70108 48 {
ChenZirui 5:7207c9b70108 49 _y-=_speed;
ChenZirui 5:7207c9b70108 50 }else if (d == S)
ChenZirui 5:7207c9b70108 51 {
ChenZirui 5:7207c9b70108 52 _y+=_speed;
ChenZirui 5:7207c9b70108 53 }else if(d == W)
ChenZirui 5:7207c9b70108 54 {
ChenZirui 5:7207c9b70108 55 _x-=_speed;
ChenZirui 5:7207c9b70108 56 }else if(d == E)
ChenZirui 5:7207c9b70108 57 {
ChenZirui 5:7207c9b70108 58 _x+=_speed;
ChenZirui 5:7207c9b70108 59 }else if(d == NE)
ChenZirui 5:7207c9b70108 60 {
ChenZirui 5:7207c9b70108 61 _y+=_speed;
ChenZirui 5:7207c9b70108 62 _x+=_speed;
ChenZirui 5:7207c9b70108 63 }else if(d == NW)
ChenZirui 5:7207c9b70108 64 {
ChenZirui 5:7207c9b70108 65 _y+=_speed;
ChenZirui 5:7207c9b70108 66 _x-=_speed;
ChenZirui 5:7207c9b70108 67 }else if(d == SE)
ChenZirui 5:7207c9b70108 68 {
ChenZirui 5:7207c9b70108 69 _y-=_speed;
ChenZirui 5:7207c9b70108 70 _x+=_speed;
ChenZirui 5:7207c9b70108 71 }else if(d == SW)
ChenZirui 5:7207c9b70108 72 {
ChenZirui 5:7207c9b70108 73 _y-=_speed;
ChenZirui 5:7207c9b70108 74 _x-=_speed;
ChenZirui 5:7207c9b70108 75 }
ChenZirui 5:7207c9b70108 76 if (_y < 1)
ChenZirui 5:7207c9b70108 77 {
ChenZirui 5:7207c9b70108 78 _y = 1;
ChenZirui 5:7207c9b70108 79 }
ChenZirui 5:7207c9b70108 80 if (_y > HEIGHT - _height - 1)
ChenZirui 5:7207c9b70108 81 {
ChenZirui 5:7207c9b70108 82 _y = HEIGHT - _height - 1;
ChenZirui 5:7207c9b70108 83 }
ChenZirui 5:7207c9b70108 84 if (_x < 1)
ChenZirui 5:7207c9b70108 85 {
ChenZirui 5:7207c9b70108 86 _x = 1;
ChenZirui 5:7207c9b70108 87 }
ChenZirui 5:7207c9b70108 88 if (_x > WIDTH - _width - 1)
ChenZirui 5:7207c9b70108 89 {
ChenZirui 5:7207c9b70108 90 _x = WIDTH - _width - 1;
ChenZirui 5:7207c9b70108 91 }
ChenZirui 5:7207c9b70108 92 }
ChenZirui 5:7207c9b70108 93 void Board::add_score()
ChenZirui 5:7207c9b70108 94 {
ChenZirui 5:7207c9b70108 95 _score++;
ChenZirui 5:7207c9b70108 96 }
ChenZirui 5:7207c9b70108 97 int Board::get_score()
ChenZirui 5:7207c9b70108 98 {
ChenZirui 5:7207c9b70108 99 return _score;
ChenZirui 5:7207c9b70108 100 }
ChenZirui 5:7207c9b70108 101
ChenZirui 5:7207c9b70108 102 Vector2D Board::get_pos()
ChenZirui 5:7207c9b70108 103 {
ChenZirui 5:7207c9b70108 104 Vector2D p = {_x,_y};
ChenZirui 5:7207c9b70108 105 return p;
ChenZirui 5:7207c9b70108 106 }