test avoid bulled game

Dependencies:   C12832_lcd LCD_fonts mbed mbed-rtos

Committer:
kaku_jyoko
Date:
Sat Dec 10 13:11:18 2016 +0000
Revision:
19:55f3114f3996
Parent:
18:0f6f2aa2339d
Child:
29:7784b098ef1d
fixed input button

Who changed what in which revision?

UserRevisionLine numberNew contents of line
th_mbed 0:26e5e770f91b 1 #include "mbed.h"
th_mbed 0:26e5e770f91b 2 #include "C12832_lcd.h"
th_mbed 0:26e5e770f91b 3 #include "Arial_9.h"
th_mbed 0:26e5e770f91b 4 #include "Small_7.h"
th_mbed 0:26e5e770f91b 5 #include "graphics.h"
kaku_jyoko 4:0fe59e58def9 6 #include "models.h"
kaku_jyoko 4:0fe59e58def9 7 #include "rtos.h"
kaku_jyoko 5:651879f4f047 8 #include "point.h"
th_mbed 0:26e5e770f91b 9
th_mbed 0:26e5e770f91b 10 C12832_LCD lcd;
th_mbed 0:26e5e770f91b 11
kaku_jyoko 4:0fe59e58def9 12 // down: p12, left: p13, center: p14, up: p15, right: p16
kaku_jyoko 5:651879f4f047 13 InterruptIn button(p14);
kaku_jyoko 5:651879f4f047 14 DigitalOut led1(LED1);
kaku_jyoko 4:0fe59e58def9 15
kaku_jyoko 5:651879f4f047 16 Mutex jump_mtx;
kaku_jyoko 5:651879f4f047 17 Mutex update_mtx;
kaku_jyoko 4:0fe59e58def9 18 int jump_flag = 0;
kaku_jyoko 6:e63641e13374 19 Person h;
kaku_jyoko 18:0f6f2aa2339d 20 Serial pc(USBTX, USBRX); // tx, rx
kaku_jyoko 18:0f6f2aa2339d 21 Bullet* b = NULL;
kaku_jyoko 19:55f3114f3996 22 Timer t;
kaku_jyoko 18:0f6f2aa2339d 23
kaku_jyoko 4:0fe59e58def9 24
kaku_jyoko 5:651879f4f047 25 void a(){
kaku_jyoko 6:e63641e13374 26 h.jump();
kaku_jyoko 4:0fe59e58def9 27 }
kaku_jyoko 4:0fe59e58def9 28
kaku_jyoko 18:0f6f2aa2339d 29 void jump_receive(void const *argument){
kaku_jyoko 4:0fe59e58def9 30 while(true){
kaku_jyoko 6:e63641e13374 31 jump_mtx.lock();
kaku_jyoko 6:e63641e13374 32 button.rise(&a);
kaku_jyoko 6:e63641e13374 33 jump_mtx.unlock();
kaku_jyoko 6:e63641e13374 34 //Thread::wait(0.1);
th_mbed 0:26e5e770f91b 35 }
kaku_jyoko 5:651879f4f047 36 }
kaku_jyoko 5:651879f4f047 37
kaku_jyoko 18:0f6f2aa2339d 38 void bullet_receive(void const *argument){
kaku_jyoko 18:0f6f2aa2339d 39 point start;
kaku_jyoko 18:0f6f2aa2339d 40 start.x = 127;
kaku_jyoko 18:0f6f2aa2339d 41 start.y = 27;
kaku_jyoko 18:0f6f2aa2339d 42 char c;
kaku_jyoko 18:0f6f2aa2339d 43 while(true){
kaku_jyoko 19:55f3114f3996 44 t.start();
kaku_jyoko 18:0f6f2aa2339d 45 c = pc.getc();
kaku_jyoko 19:55f3114f3996 46 if(c == 'a' && t.read() > 5.0){
kaku_jyoko 19:55f3114f3996 47 b = NULL;
kaku_jyoko 18:0f6f2aa2339d 48 b = &Bullet(start, 2);
kaku_jyoko 19:55f3114f3996 49 t.reset();
kaku_jyoko 18:0f6f2aa2339d 50 }
kaku_jyoko 18:0f6f2aa2339d 51 }
kaku_jyoko 18:0f6f2aa2339d 52 }
kaku_jyoko 18:0f6f2aa2339d 53
kaku_jyoko 5:651879f4f047 54 int main(){
kaku_jyoko 18:0f6f2aa2339d 55 point p_person, p_bullet;
kaku_jyoko 5:651879f4f047 56 printf("hello\n");
kaku_jyoko 18:0f6f2aa2339d 57 Thread jump_th(jump_receive);
kaku_jyoko 18:0f6f2aa2339d 58 Thread bullet_th(bullet_receive);
kaku_jyoko 5:651879f4f047 59 while(true){
kaku_jyoko 5:651879f4f047 60 update_mtx.lock();
kaku_jyoko 18:0f6f2aa2339d 61 p_person = h.update(1);
kaku_jyoko 18:0f6f2aa2339d 62 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 63 p_bullet = b->update();
kaku_jyoko 18:0f6f2aa2339d 64 }
kaku_jyoko 18:0f6f2aa2339d 65 //printf("x: %d, y: %d", p_bullet.x,p_bullet.y);
kaku_jyoko 5:651879f4f047 66 update_mtx.unlock();
kaku_jyoko 6:e63641e13374 67 lcd.cls();
kaku_jyoko 18:0f6f2aa2339d 68 lcd.print_bm(bitmPlayer,p_person.x,p_person.y);
kaku_jyoko 18:0f6f2aa2339d 69 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 70 lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y);
kaku_jyoko 18:0f6f2aa2339d 71 }
kaku_jyoko 5:651879f4f047 72 lcd.copy_to_lcd();
kaku_jyoko 6:e63641e13374 73 wait(0.02);
kaku_jyoko 6:e63641e13374 74 lcd.cls();
kaku_jyoko 18:0f6f2aa2339d 75 lcd.print_bm(bitmPlayerB,p_person.x,p_person.y);
kaku_jyoko 18:0f6f2aa2339d 76 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 77 lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y);
kaku_jyoko 18:0f6f2aa2339d 78 }
kaku_jyoko 5:651879f4f047 79 lcd.copy_to_lcd();
kaku_jyoko 6:e63641e13374 80 wait(0.02);
kaku_jyoko 5:651879f4f047 81 }
kaku_jyoko 6:e63641e13374 82 }