Dependencies:   mbed

Committer:
Kaikestu
Date:
Wed Dec 09 13:36:09 2009 +0000
Revision:
0:b2eb0dabd8e4

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kaikestu 0:b2eb0dabd8e4 1 #include "mbed.h"
Kaikestu 0:b2eb0dabd8e4 2 #include "MobileLCD.h"
Kaikestu 0:b2eb0dabd8e4 3
Kaikestu 0:b2eb0dabd8e4 4 MobileLCD lcd (5,6,7,12,13);
Kaikestu 0:b2eb0dabd8e4 5 AnalogIn left (20);
Kaikestu 0:b2eb0dabd8e4 6 AnalogIn right (19);
Kaikestu 0:b2eb0dabd8e4 7
Kaikestu 0:b2eb0dabd8e4 8 int r;
Kaikestu 0:b2eb0dabd8e4 9 int le;
Kaikestu 0:b2eb0dabd8e4 10
Kaikestu 0:b2eb0dabd8e4 11 int ball_x = 64;
Kaikestu 0:b2eb0dabd8e4 12 int ball_y = 64;
Kaikestu 0:b2eb0dabd8e4 13 int ball_tempX = 64;
Kaikestu 0:b2eb0dabd8e4 14 int ball_tempY = 64;
Kaikestu 0:b2eb0dabd8e4 15 int dir = 1 ;
Kaikestu 0:b2eb0dabd8e4 16
Kaikestu 0:b2eb0dabd8e4 17
Kaikestu 0:b2eb0dabd8e4 18 void moveBall(void);
Kaikestu 0:b2eb0dabd8e4 19
Kaikestu 0:b2eb0dabd8e4 20 int main() {
Kaikestu 0:b2eb0dabd8e4 21
Kaikestu 0:b2eb0dabd8e4 22 lcd.background(0x000000);
Kaikestu 0:b2eb0dabd8e4 23 while(1) {
Kaikestu 0:b2eb0dabd8e4 24 lcd.cls();
Kaikestu 0:b2eb0dabd8e4 25
Kaikestu 0:b2eb0dabd8e4 26 le = left * 100 + 8;
Kaikestu 0:b2eb0dabd8e4 27 r = right * 100 + 8;
Kaikestu 0:b2eb0dabd8e4 28
Kaikestu 0:b2eb0dabd8e4 29 //center line
Kaikestu 0:b2eb0dabd8e4 30 lcd.fill(65,0,1,130,0xffffff);
Kaikestu 0:b2eb0dabd8e4 31
Kaikestu 0:b2eb0dabd8e4 32 //left paddle
Kaikestu 0:b2eb0dabd8e4 33 lcd.fill(4,le,4,16,0xffffff);
Kaikestu 0:b2eb0dabd8e4 34
Kaikestu 0:b2eb0dabd8e4 35 //right paddle
Kaikestu 0:b2eb0dabd8e4 36 lcd.fill(120,r,4,16,0xffffff);
Kaikestu 0:b2eb0dabd8e4 37
Kaikestu 0:b2eb0dabd8e4 38 //ball
Kaikestu 0:b2eb0dabd8e4 39 moveBall();
Kaikestu 0:b2eb0dabd8e4 40 lcd.locate(3,5);
Kaikestu 0:b2eb0dabd8e4 41 lcd.printf("%.0f",dir);
Kaikestu 0:b2eb0dabd8e4 42 lcd.locate(3,7);
Kaikestu 0:b2eb0dabd8e4 43 lcd.printf("%.0f",le);
Kaikestu 0:b2eb0dabd8e4 44 //wait(0.3);
Kaikestu 0:b2eb0dabd8e4 45 }
Kaikestu 0:b2eb0dabd8e4 46 }
Kaikestu 0:b2eb0dabd8e4 47
Kaikestu 0:b2eb0dabd8e4 48 void moveBall(){
Kaikestu 0:b2eb0dabd8e4 49
Kaikestu 0:b2eb0dabd8e4 50 ball_tempX = ball_x;
Kaikestu 0:b2eb0dabd8e4 51 ball_tempY = ball_y;
Kaikestu 0:b2eb0dabd8e4 52
Kaikestu 0:b2eb0dabd8e4 53 if (dir == 1 && ball_x > 5 && ball_y > 5){
Kaikestu 0:b2eb0dabd8e4 54
Kaikestu 0:b2eb0dabd8e4 55 if( ball_x == 5 && ball_y >= le && ball_y <= le + 8){
Kaikestu 0:b2eb0dabd8e4 56 dir = rand() % 2 + 3;
Kaikestu 0:b2eb0dabd8e4 57 }else{
Kaikestu 0:b2eb0dabd8e4 58 ball_x--;
Kaikestu 0:b2eb0dabd8e4 59 ball_y--;
Kaikestu 0:b2eb0dabd8e4 60 }
Kaikestu 0:b2eb0dabd8e4 61
Kaikestu 0:b2eb0dabd8e4 62 } else if (dir == 2 && ball_x > 30 && ball_y < 5){
Kaikestu 0:b2eb0dabd8e4 63
Kaikestu 0:b2eb0dabd8e4 64 if( ball_x == 6 && ball_y >= le && ball_y <= le + 8){
Kaikestu 0:b2eb0dabd8e4 65 dir = rand() % 2 + 3;
Kaikestu 0:b2eb0dabd8e4 66 }else{
Kaikestu 0:b2eb0dabd8e4 67 ball_x--;
Kaikestu 0:b2eb0dabd8e4 68 ball_y++;
Kaikestu 0:b2eb0dabd8e4 69 }
Kaikestu 0:b2eb0dabd8e4 70
Kaikestu 0:b2eb0dabd8e4 71 } else if (dir == 3 && ball_x < 130 && ball_y > 5){
Kaikestu 0:b2eb0dabd8e4 72
Kaikestu 0:b2eb0dabd8e4 73 if( ball_x + 5 == 120 && ball_y >= r && ball_y <= r + 20){
Kaikestu 0:b2eb0dabd8e4 74 dir = rand() % 1 + 2;
Kaikestu 0:b2eb0dabd8e4 75 }else{
Kaikestu 0:b2eb0dabd8e4 76 ball_x++;
Kaikestu 0:b2eb0dabd8e4 77 ball_y--;
Kaikestu 0:b2eb0dabd8e4 78 }
Kaikestu 0:b2eb0dabd8e4 79
Kaikestu 0:b2eb0dabd8e4 80 } else if (dir == 4 && ball_x < 130 && ball_y < 475){
Kaikestu 0:b2eb0dabd8e4 81
Kaikestu 0:b2eb0dabd8e4 82 if( ball_x + 5 == 120 && ball_y >= r && ball_y <= r + 20){
Kaikestu 0:b2eb0dabd8e4 83 dir = rand() % 1 + 2;
Kaikestu 0:b2eb0dabd8e4 84 }else{
Kaikestu 0:b2eb0dabd8e4 85 ball_x++;
Kaikestu 0:b2eb0dabd8e4 86 ball_y++;
Kaikestu 0:b2eb0dabd8e4 87 }
Kaikestu 0:b2eb0dabd8e4 88
Kaikestu 0:b2eb0dabd8e4 89 } else {
Kaikestu 0:b2eb0dabd8e4 90
Kaikestu 0:b2eb0dabd8e4 91 if (dir == 1 || dir == 3) dir++;
Kaikestu 0:b2eb0dabd8e4 92 else if (dir == 2 || dir == 4) dir--;
Kaikestu 0:b2eb0dabd8e4 93
Kaikestu 0:b2eb0dabd8e4 94 }
Kaikestu 0:b2eb0dabd8e4 95
Kaikestu 0:b2eb0dabd8e4 96 lcd.fill (ball_x,ball_y,4,4,0xffffff);
Kaikestu 0:b2eb0dabd8e4 97 }