ELEC2645 (2015/16) / Mbed 2 deprecated HarryPetrovicPong

Dependencies:   N5110 mbed

Fork of 2645_Physics_Engine_Example by Craig Evans

Committer:
HarryPetrovic1
Date:
Thu May 05 14:18:21 2016 +0000
Revision:
1:6632d8423c65
Parent:
0:6a561e8d6713
Pong

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:6a561e8d6713 1 #include "mbed.h"
eencae 0:6a561e8d6713 2 #include "N5110.h"
HarryPetrovic1 1:6632d8423c65 3 #include "functions.h"
eencae 0:6a561e8d6713 4
HarryPetrovic1 1:6632d8423c65 5 void UserPaddle() //Paddle used by user
HarryPetrovic1 1:6632d8423c65 6
HarryPetrovic1 1:6632d8423c65 7 {
HarryPetrovic1 1:6632d8423c65 8 lcd.setPixel(0,yp);
HarryPetrovic1 1:6632d8423c65 9 lcd.setPixel(0,yp+1);
HarryPetrovic1 1:6632d8423c65 10 lcd.setPixel(0,yp+2);
HarryPetrovic1 1:6632d8423c65 11 lcd.setPixel(0,yp+3);
HarryPetrovic1 1:6632d8423c65 12 lcd.setPixel(0,yp+4);
HarryPetrovic1 1:6632d8423c65 13 lcd.setPixel(0,yp+5);
HarryPetrovic1 1:6632d8423c65 14 lcd.setPixel(0,yp+6);
HarryPetrovic1 1:6632d8423c65 15 lcd.setPixel(0,yp+7);
HarryPetrovic1 1:6632d8423c65 16 lcd.setPixel(0,yp+8);
HarryPetrovic1 1:6632d8423c65 17 lcd.setPixel(0,yp+9);
eencae 0:6a561e8d6713 18
HarryPetrovic1 1:6632d8423c65 19 }
HarryPetrovic1 1:6632d8423c65 20
HarryPetrovic1 1:6632d8423c65 21 void ComputerPaddle() //Paddle controlled by the computer
eencae 0:6a561e8d6713 22
HarryPetrovic1 1:6632d8423c65 23 {
HarryPetrovic1 1:6632d8423c65 24 lcd.setPixel(83,yc);
HarryPetrovic1 1:6632d8423c65 25 lcd.setPixel(83,yc+1);
HarryPetrovic1 1:6632d8423c65 26 lcd.setPixel(83,yc+2);
HarryPetrovic1 1:6632d8423c65 27 lcd.setPixel(83,yc+3);
HarryPetrovic1 1:6632d8423c65 28 lcd.setPixel(83,yc+4);
HarryPetrovic1 1:6632d8423c65 29 lcd.setPixel(83,yc+5);
HarryPetrovic1 1:6632d8423c65 30 lcd.setPixel(83,yc+6);
HarryPetrovic1 1:6632d8423c65 31 lcd.setPixel(83,yc+7);
HarryPetrovic1 1:6632d8423c65 32 lcd.setPixel(83,yc+8);
HarryPetrovic1 1:6632d8423c65 33 lcd.setPixel(83,yc+9);
eencae 0:6a561e8d6713 34
HarryPetrovic1 1:6632d8423c65 35 }
eencae 0:6a561e8d6713 36
HarryPetrovic1 1:6632d8423c65 37 void net()
HarryPetrovic1 1:6632d8423c65 38 {
HarryPetrovic1 1:6632d8423c65 39 lcd.setPixel (42,0);
HarryPetrovic1 1:6632d8423c65 40 lcd.setPixel (42,2);
HarryPetrovic1 1:6632d8423c65 41 lcd.setPixel (42,4);
HarryPetrovic1 1:6632d8423c65 42 lcd.setPixel (42,6);
HarryPetrovic1 1:6632d8423c65 43 lcd.setPixel (42,8);
HarryPetrovic1 1:6632d8423c65 44 lcd.setPixel (42,10);
HarryPetrovic1 1:6632d8423c65 45 lcd.setPixel (42,12);
HarryPetrovic1 1:6632d8423c65 46 lcd.setPixel (42,14);
HarryPetrovic1 1:6632d8423c65 47 lcd.setPixel (42,16);
HarryPetrovic1 1:6632d8423c65 48 lcd.setPixel (42,18);
HarryPetrovic1 1:6632d8423c65 49 lcd.setPixel (42,20);
HarryPetrovic1 1:6632d8423c65 50 lcd.setPixel (42,22);
HarryPetrovic1 1:6632d8423c65 51 lcd.setPixel (42,24);
HarryPetrovic1 1:6632d8423c65 52 lcd.setPixel (42,26);
HarryPetrovic1 1:6632d8423c65 53 lcd.setPixel (42,28);
HarryPetrovic1 1:6632d8423c65 54 lcd.setPixel (42,30);
HarryPetrovic1 1:6632d8423c65 55 lcd.setPixel (42,32);
HarryPetrovic1 1:6632d8423c65 56 lcd.setPixel (42,34);
HarryPetrovic1 1:6632d8423c65 57 lcd.setPixel (42,36);
HarryPetrovic1 1:6632d8423c65 58 lcd.setPixel (42,38);
HarryPetrovic1 1:6632d8423c65 59 lcd.setPixel (42,40);
HarryPetrovic1 1:6632d8423c65 60 lcd.setPixel (42,42);
HarryPetrovic1 1:6632d8423c65 61 lcd.setPixel (42,44);
HarryPetrovic1 1:6632d8423c65 62 lcd.setPixel (42,46);
HarryPetrovic1 1:6632d8423c65 63 lcd.setPixel (42,48);
HarryPetrovic1 1:6632d8423c65 64 }
eencae 0:6a561e8d6713 65
HarryPetrovic1 1:6632d8423c65 66
eencae 0:6a561e8d6713 67
eencae 0:6a561e8d6713 68 int main()
eencae 0:6a561e8d6713 69 {
eencae 0:6a561e8d6713 70 wait(2.0); // short delay for power to settle
eencae 0:6a561e8d6713 71 init_display(); // first need to initialise display
HarryPetrovic1 1:6632d8423c65 72 init_K64F();
HarryPetrovic1 1:6632d8423c65 73 menu();
HarryPetrovic1 1:6632d8423c65 74 wait(3);
HarryPetrovic1 1:6632d8423c65 75
eencae 0:6a561e8d6713 76 init_ball();
eencae 0:6a561e8d6713 77 // setup ticker
HarryPetrovic1 1:6632d8423c65 78 game_timer.attach(&game_timer_isr,0.1);
eencae 0:6a561e8d6713 79
eencae 0:6a561e8d6713 80 redraw_screen(); // draw initial screen
eencae 0:6a561e8d6713 81
eencae 0:6a561e8d6713 82 while(1) {
HarryPetrovic1 1:6632d8423c65 83 sprintf(score1, "%d", playerScore);
HarryPetrovic1 1:6632d8423c65 84 lcd.printString(score1,30,0);
HarryPetrovic1 1:6632d8423c65 85 sprintf(score2, "%d", computerScore);
HarryPetrovic1 1:6632d8423c65 86 lcd.printString(score2,50,0);
HarryPetrovic1 1:6632d8423c65 87
eencae 0:6a561e8d6713 88
eencae 0:6a561e8d6713 89 if ( g_timer_flag ) { // ticker interrupt
eencae 0:6a561e8d6713 90 g_timer_flag = 0; // clear flag
HarryPetrovic1 1:6632d8423c65 91 UserPaddle();
HarryPetrovic1 1:6632d8423c65 92 ComputerPaddle();
HarryPetrovic1 1:6632d8423c65 93 moveUserPaddle();
HarryPetrovic1 1:6632d8423c65 94 moveComputerPaddle();
HarryPetrovic1 1:6632d8423c65 95 paddleLimits();
HarryPetrovic1 1:6632d8423c65 96 ComputerpaddleLimits();
HarryPetrovic1 1:6632d8423c65 97 net();
HarryPetrovic1 1:6632d8423c65 98 Scoring();
HarryPetrovic1 1:6632d8423c65 99 victory();
HarryPetrovic1 1:6632d8423c65 100 loss();
HarryPetrovic1 1:6632d8423c65 101 resetBall();
eencae 0:6a561e8d6713 102 update_physics_engine();
eencae 0:6a561e8d6713 103 check_collisions();
eencae 0:6a561e8d6713 104 redraw_screen();
HarryPetrovic1 1:6632d8423c65 105 lcd.refresh();
HarryPetrovic1 1:6632d8423c65 106 refreshCells();
eencae 0:6a561e8d6713 107 }
eencae 0:6a561e8d6713 108
eencae 0:6a561e8d6713 109 sleep(); // sleep until next interrupt
eencae 0:6a561e8d6713 110
eencae 0:6a561e8d6713 111 }
eencae 0:6a561e8d6713 112 }
eencae 0:6a561e8d6713 113
eencae 0:6a561e8d6713 114
eencae 0:6a561e8d6713 115
eencae 0:6a561e8d6713 116 void game_timer_isr()
eencae 0:6a561e8d6713 117 {
eencae 0:6a561e8d6713 118 g_timer_flag = 1;
eencae 0:6a561e8d6713 119 }
eencae 0:6a561e8d6713 120