1111111112

Committer:
Jenny121
Date:
Mon May 06 06:24:24 2019 +0000
Revision:
0:4ca1ed928a81
ZHANGXINYU55

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jenny121 0:4ca1ed928a81 1 #include "CXK.h"
Jenny121 0:4ca1ed928a81 2
Jenny121 0:4ca1ed928a81 3 // nothing doing in the constructor and destructor
Jenny121 0:4ca1ed928a81 4 CXK::CXK()
Jenny121 0:4ca1ed928a81 5 {
Jenny121 0:4ca1ed928a81 6
Jenny121 0:4ca1ed928a81 7 }
Jenny121 0:4ca1ed928a81 8
Jenny121 0:4ca1ed928a81 9 CXK::~CXK()
Jenny121 0:4ca1ed928a81 10 {
Jenny121 0:4ca1ed928a81 11
Jenny121 0:4ca1ed928a81 12 }
Jenny121 0:4ca1ed928a81 13
Jenny121 0:4ca1ed928a81 14 void CXK::init(int x,int y,int height,int width)
Jenny121 0:4ca1ed928a81 15 {
Jenny121 0:4ca1ed928a81 16 _x = 67 - width/2;
Jenny121 0:4ca1ed928a81 17 _y = 25 - height/2; // y depends on height of screen and height of CXK
Jenny121 0:4ca1ed928a81 18 _height = height;
Jenny121 0:4ca1ed928a81 19 _width = width;
Jenny121 0:4ca1ed928a81 20 _speed = 1; // default speed
Jenny121 0:4ca1ed928a81 21 _score = 0; // start score from zero
Jenny121 0:4ca1ed928a81 22
Jenny121 0:4ca1ed928a81 23 }
Jenny121 0:4ca1ed928a81 24
Jenny121 0:4ca1ed928a81 25 void CXK::draw(N5110 &lcd)
Jenny121 0:4ca1ed928a81 26 {
Jenny121 0:4ca1ed928a81 27 // draw CXK in screen buffer.
Jenny121 0:4ca1ed928a81 28 lcd.drawCircle(_x,_y,3,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 29 lcd.drawRect(_x-3,_y-5,3,1,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 30 lcd.drawRect(_x+4,_y-5,3,1,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 31 lcd.drawRect(_x-1,_y-1,1,1,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 32 lcd.drawRect(_x+1,_y-1,1,1,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 33 lcd.drawRect(_x,_y+2,4,1,FILL_TRANSPARENT);
Jenny121 0:4ca1ed928a81 34 }
Jenny121 0:4ca1ed928a81 35
Jenny121 0:4ca1ed928a81 36
Jenny121 0:4ca1ed928a81 37 void CXK::update(Direction d,float vara)
Jenny121 0:4ca1ed928a81 38 {
Jenny121 0:4ca1ed928a81 39 _speed = int(vara*10.0f); // scale is arbitrary, could be changed in future
Jenny121 0:4ca1ed928a81 40
Jenny121 0:4ca1ed928a81 41 // update y value depending on direction of movement
Jenny121 0:4ca1ed928a81 42 // North is decrement as origin is at the top-left so decreasing moves up
Jenny121 0:4ca1ed928a81 43 if (d == N) {
Jenny121 0:4ca1ed928a81 44 _y-=_speed;
Jenny121 0:4ca1ed928a81 45 } else if (d == S) {
Jenny121 0:4ca1ed928a81 46 _y+=_speed;
Jenny121 0:4ca1ed928a81 47 } else if (d == E) {
Jenny121 0:4ca1ed928a81 48 _x+=_speed;
Jenny121 0:4ca1ed928a81 49 } else if (d == W){
Jenny121 0:4ca1ed928a81 50 _x-=_speed;
Jenny121 0:4ca1ed928a81 51 }
Jenny121 0:4ca1ed928a81 52
Jenny121 0:4ca1ed928a81 53
Jenny121 0:4ca1ed928a81 54 // check the y origin to ensure that the CXK doesn't go off screen
Jenny121 0:4ca1ed928a81 55 if (_y < 1) {
Jenny121 0:4ca1ed928a81 56 _y = 1;
Jenny121 0:4ca1ed928a81 57 }
Jenny121 0:4ca1ed928a81 58 if (_y > HEIGHT - _height - 1) {
Jenny121 0:4ca1ed928a81 59 _y = HEIGHT - _height - 1;
Jenny121 0:4ca1ed928a81 60 }
Jenny121 0:4ca1ed928a81 61
Jenny121 0:4ca1ed928a81 62 if (_x < 1) {
Jenny121 0:4ca1ed928a81 63 _x = 1;
Jenny121 0:4ca1ed928a81 64 }
Jenny121 0:4ca1ed928a81 65 if (_x > WIDTH - _width-3 ) {
Jenny121 0:4ca1ed928a81 66 _x = WIDTH - 3;
Jenny121 0:4ca1ed928a81 67 }
Jenny121 0:4ca1ed928a81 68
Jenny121 0:4ca1ed928a81 69 }
Jenny121 0:4ca1ed928a81 70
Jenny121 0:4ca1ed928a81 71 void CXK::add_score()
Jenny121 0:4ca1ed928a81 72 {
Jenny121 0:4ca1ed928a81 73 _score++;
Jenny121 0:4ca1ed928a81 74 }
Jenny121 0:4ca1ed928a81 75 int CXK::get_score()
Jenny121 0:4ca1ed928a81 76 {
Jenny121 0:4ca1ed928a81 77 return _score;
Jenny121 0:4ca1ed928a81 78 }
Jenny121 0:4ca1ed928a81 79
Jenny121 0:4ca1ed928a81 80 Vector2D CXK::get_pos() {
Jenny121 0:4ca1ed928a81 81 Vector2D p = {_x,_y};
Jenny121 0:4ca1ed928a81 82 return p;
Jenny121 0:4ca1ed928a81 83 }