Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

Committer:
KaifK
Date:
Sat Apr 25 21:56:30 2020 +0000
Revision:
2:21973e665a32
Parent:
1:35d2e82b764e
Child:
3:f86c1cf90d0d
Ball.cpp and Ball.h first draft ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KaifK 0:e47aa16004e6 1 /*
KaifK 0:e47aa16004e6 2 Stay Home Stay Safe
KaifK 0:e47aa16004e6 3 ELEC2645 Project
KaifK 0:e47aa16004e6 4 EL18KK
KaifK 0:e47aa16004e6 5 201267448
KaifK 0:e47aa16004e6 6 */
KaifK 0:e47aa16004e6 7
KaifK 0:e47aa16004e6 8 #include "mbed.h"
KaifK 0:e47aa16004e6 9 #include "Gamepad.h"
KaifK 0:e47aa16004e6 10 #include "N5110.h"
KaifK 0:e47aa16004e6 11
KaifK 2:21973e665a32 12
KaifK 0:e47aa16004e6 13 Gamepad pad;
KaifK 0:e47aa16004e6 14 N5110 lcd;
KaifK 0:e47aa16004e6 15
KaifK 2:21973e665a32 16
KaifK 2:21973e665a32 17 const int ball[3][11][15] = {
KaifK 2:21973e665a32 18 {{0,0,0,0,0,1,1,1,1,1,0,0,0,0,0},
KaifK 2:21973e665a32 19 {0,0,0,1,1,0,1,1,1,0,1,1,0,0,0},
KaifK 2:21973e665a32 20 {0,0,1,0,0,0,0,1,0,0,0,0,1,0,0},
KaifK 2:21973e665a32 21 {0,1,0,0,0,0,1,1,1,0,0,0,0,1,0},
KaifK 2:21973e665a32 22 {0,1,1,0,0,1,1,1,1,1,0,0,1,1,0},
KaifK 2:21973e665a32 23 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
KaifK 2:21973e665a32 24 {0,1,1,0,0,1,1,1,1,1,0,0,1,1,0},
KaifK 2:21973e665a32 25 {0,1,0,0,0,0,1,1,1,0,0,0,0,1,0},
KaifK 2:21973e665a32 26 {0,0,1,0,0,0,0,1,0,0,0,0,1,0,0},
KaifK 2:21973e665a32 27 {0,0,0,1,1,0,1,1,1,0,1,1,0,0,0},
KaifK 2:21973e665a32 28 {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}},
KaifK 2:21973e665a32 29
KaifK 2:21973e665a32 30 {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 31 {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0},
KaifK 2:21973e665a32 32 {0,0,0,0,1,0,0,1,0,0,1,0,0,0,0},
KaifK 2:21973e665a32 33 {0,0,0,1,0,0,0,1,0,0,0,1,0,0,0},
KaifK 2:21973e665a32 34 {0,0,1,1,0,0,1,1,1,0,0,1,1,0,0},
KaifK 2:21973e665a32 35 {0,0,1,1,1,1,1,1,1,1,1,1,1,0,0},
KaifK 2:21973e665a32 36 {0,0,1,1,0,0,1,1,1,0,0,1,1,0,0},
KaifK 2:21973e665a32 37 {0,0,0,1,0,0,0,1,0,0,0,1,0,0,0},
KaifK 2:21973e665a32 38 {0,0,0,0,1,0,1,1,1,0,1,0,0,0,0},
KaifK 2:21973e665a32 39 {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0},
KaifK 2:21973e665a32 40 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
KaifK 2:21973e665a32 41
KaifK 2:21973e665a32 42 {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 43 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 44 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 45 {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0},
KaifK 2:21973e665a32 46 {0,0,0,0,0,1,0,1,0,1,0,0,0,0,0},
KaifK 2:21973e665a32 47 {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0},
KaifK 2:21973e665a32 48 {0,0,0,0,0,1,0,1,0,1,0,0,0,0,0},
KaifK 2:21973e665a32 49 {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0},
KaifK 2:21973e665a32 50 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 51 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 2:21973e665a32 52 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
KaifK 2:21973e665a32 53 };
KaifK 0:e47aa16004e6 54 int goal[24][70] = {
KaifK 0:e47aa16004e6 55 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
KaifK 0:e47aa16004e6 56 {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
KaifK 0:e47aa16004e6 57 {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},
KaifK 0:e47aa16004e6 58 {0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0},
KaifK 0:e47aa16004e6 59 {0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0},
KaifK 0:e47aa16004e6 60 {0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 61 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 62 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 63 {0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 64 {0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 65 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 66 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 67 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 68 {0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 69 {0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 70 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 71 {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 72 {0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 73 {0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0},
KaifK 0:e47aa16004e6 74 {0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0},
KaifK 0:e47aa16004e6 75 {0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0},
KaifK 0:e47aa16004e6 76 {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 77 {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 78 {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0},
KaifK 0:e47aa16004e6 79
KaifK 0:e47aa16004e6 80 };
KaifK 0:e47aa16004e6 81
KaifK 2:21973e665a32 82
KaifK 2:21973e665a32 83 int grass1[2][7][7] = {
KaifK 2:21973e665a32 84 {{0,0,0,0,0,0,0},
KaifK 0:e47aa16004e6 85 {0,0,0,0,0,0,0},
KaifK 0:e47aa16004e6 86 {0,0,1,0,0,0,0},
KaifK 0:e47aa16004e6 87 {0,0,1,0,1,0,0},
KaifK 0:e47aa16004e6 88 {0,1,0,1,0,1,0},
KaifK 0:e47aa16004e6 89 {0,1,0,1,0,1,0},
KaifK 2:21973e665a32 90 {1,0,1,0,0,0,1}},
KaifK 2:21973e665a32 91
KaifK 2:21973e665a32 92 {{1,1,1,1,1,1,1},
KaifK 2:21973e665a32 93 {0,0,0,0,0,0,0},
KaifK 2:21973e665a32 94 {0,0,1,0,0,0,0},
KaifK 2:21973e665a32 95 {0,0,1,0,1,0,0},
KaifK 2:21973e665a32 96 {0,1,0,1,0,1,0},
KaifK 2:21973e665a32 97 {0,1,0,1,0,1,0},
KaifK 2:21973e665a32 98 {1,0,1,0,0,0,1},},
KaifK 2:21973e665a32 99
KaifK 2:21973e665a32 100
KaifK 0:e47aa16004e6 101 };
KaifK 0:e47aa16004e6 102 int grass2[3][3] = {
KaifK 0:e47aa16004e6 103 {1,0,1},
KaifK 0:e47aa16004e6 104 {0,1,0},
KaifK 0:e47aa16004e6 105 {1,1,1},
KaifK 0:e47aa16004e6 106 };
KaifK 0:e47aa16004e6 107
KaifK 0:e47aa16004e6 108 int initial_pos = WIDTH/2;
KaifK 2:21973e665a32 109 int dir =1 ;
KaifK 2:21973e665a32 110 int dirr =1;
KaifK 2:21973e665a32 111 int aim_line = WIDTH/2;
KaifK 2:21973e665a32 112 int _user_input_x = 40;
KaifK 2:21973e665a32 113 int _user_input_y = 12;
KaifK 2:21973e665a32 114
KaifK 2:21973e665a32 115 int _ball_x = 35;
KaifK 2:21973e665a32 116 int _ball_y = 43;
KaifK 2:21973e665a32 117 int j = 0;
KaifK 2:21973e665a32 118 int k = 0;
KaifK 2:21973e665a32 119 int sizex = 11;
KaifK 2:21973e665a32 120 int sizey = 15;
KaifK 2:21973e665a32 121 char sprite = 'b';
KaifK 1:35d2e82b764e 122
KaifK 0:e47aa16004e6 123 int main() {
KaifK 1:35d2e82b764e 124
KaifK 0:e47aa16004e6 125 lcd.init();
KaifK 0:e47aa16004e6 126 lcd.setContrast(0.5);
KaifK 0:e47aa16004e6 127 pad.init();
KaifK 0:e47aa16004e6 128 lcd.backLightOn();
KaifK 2:21973e665a32 129
KaifK 0:e47aa16004e6 130 while(1) {
KaifK 2:21973e665a32 131
KaifK 2:21973e665a32 132 lcd.drawLine(WIDTH/2,41,aim_line,24,2);
KaifK 0:e47aa16004e6 133 lcd.drawSprite(7,0,24,70,(int *)goal);
KaifK 2:21973e665a32 134 lcd.drawSprite(1,17,7,7,(int *)grass1[0]);
KaifK 2:21973e665a32 135 lcd.drawSprite(76,17,7,7,(int *)grass1[1]);
KaifK 0:e47aa16004e6 136 lcd.drawSprite(67,26,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 137 lcd.drawSprite(67,26,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 138 lcd.drawSprite(16,30,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 139 lcd.drawSprite(6,35,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 140 lcd.drawSprite(72,32,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 141 lcd.drawSprite(69,43,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 142 lcd.drawSprite(12,45,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 143 lcd.drawSprite(32,34,3,3,(int *)grass2);
KaifK 0:e47aa16004e6 144 Vector2D joystick = pad.get_mapped_coord();
KaifK 0:e47aa16004e6 145 float ballx = WIDTH/2 - 7;
KaifK 2:21973e665a32 146 float bally = 43;
KaifK 2:21973e665a32 147
KaifK 2:21973e665a32 148
KaifK 0:e47aa16004e6 149 lcd.drawLine(0,24,84,24,1);
KaifK 2:21973e665a32 150 lcd.drawLine(WIDTH/2-5,41,initial_pos,HEIGHT/2+7,1);
KaifK 2:21973e665a32 151 lcd.drawLine(WIDTH/2+5,41,initial_pos,HEIGHT/2+7,1);
KaifK 2:21973e665a32 152 lcd.drawLine(WIDTH/2+5,41,WIDTH/2-5,41,1);
KaifK 0:e47aa16004e6 153 lcd.printString("Score",0,5);
KaifK 0:e47aa16004e6 154
KaifK 2:21973e665a32 155 aim_line += dir;
KaifK 2:21973e665a32 156 initial_pos += dirr;
KaifK 2:21973e665a32 157 if(initial_pos >84) {
KaifK 2:21973e665a32 158 dirr = -1;
KaifK 2:21973e665a32 159 }
KaifK 2:21973e665a32 160 if ( initial_pos < 0) {
KaifK 2:21973e665a32 161 dirr = 1;
KaifK 2:21973e665a32 162 }
KaifK 2:21973e665a32 163
KaifK 2:21973e665a32 164
KaifK 2:21973e665a32 165 if (aim_line > 84) {
KaifK 1:35d2e82b764e 166 dir = -1;
KaifK 1:35d2e82b764e 167 }
KaifK 2:21973e665a32 168 if ( aim_line < 0) {
KaifK 1:35d2e82b764e 169 dir = 1;
KaifK 1:35d2e82b764e 170 }
KaifK 2:21973e665a32 171
KaifK 2:21973e665a32 172 while(_user_input_x != _ball_x || _user_input_y != _ball_y) {
KaifK 2:21973e665a32 173 if(_user_input_x < _ball_x ) { _ball_x --;}
KaifK 2:21973e665a32 174 else if(_user_input_x > _ball_x ) { _ball_x ++;}
KaifK 2:21973e665a32 175
KaifK 2:21973e665a32 176 if(_user_input_y < _ball_y ) { _ball_y --;}
KaifK 2:21973e665a32 177 else if(_user_input_y > _ball_y ) { _ball_y ++;}
KaifK 2:21973e665a32 178 lcd.drawSprite(_ball_x,_ball_y,sizex,sizey,(int *)ball[j]);
KaifK 2:21973e665a32 179
KaifK 2:21973e665a32 180 if(k == 4) {j = 0;}
KaifK 2:21973e665a32 181 if(k == 16) {j = 1; sprite = 'g';}
KaifK 2:21973e665a32 182
KaifK 2:21973e665a32 183
KaifK 2:21973e665a32 184 wait_ms(100);
KaifK 2:21973e665a32 185 k++;
KaifK 2:21973e665a32 186 break;}
KaifK 2:21973e665a32 187 printf("%d",k);
KaifK 0:e47aa16004e6 188 lcd.refresh();
KaifK 0:e47aa16004e6 189 lcd.clear();
KaifK 0:e47aa16004e6 190 }
KaifK 0:e47aa16004e6 191 }