Zirui Chen 201235448

Dependencies:   mbed

Committer:
ChenZirui
Date:
Thu May 28 01:11:47 2020 +0000
Revision:
6:b393cfe4e0a7
Parent:
5:7207c9b70108
Child:
7:f61ac963eb07
not final

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