test avoid bulled game

Dependencies:   C12832_lcd LCD_fonts mbed mbed-rtos

Committer:
kaku_jyoko
Date:
Tue Dec 06 15:09:16 2016 +0000
Revision:
18:0f6f2aa2339d
Parent:
17:dfb8d3c5911a
Child:
19:55f3114f3996
input bullet

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 18:0f6f2aa2339d 22
kaku_jyoko 4:0fe59e58def9 23
kaku_jyoko 5:651879f4f047 24 void a(){
kaku_jyoko 6:e63641e13374 25 h.jump();
kaku_jyoko 4:0fe59e58def9 26 }
kaku_jyoko 4:0fe59e58def9 27
kaku_jyoko 18:0f6f2aa2339d 28 void jump_receive(void const *argument){
kaku_jyoko 4:0fe59e58def9 29 while(true){
kaku_jyoko 6:e63641e13374 30 jump_mtx.lock();
kaku_jyoko 6:e63641e13374 31 button.rise(&a);
kaku_jyoko 6:e63641e13374 32 jump_mtx.unlock();
kaku_jyoko 6:e63641e13374 33 //Thread::wait(0.1);
th_mbed 0:26e5e770f91b 34 }
kaku_jyoko 5:651879f4f047 35 }
kaku_jyoko 5:651879f4f047 36
kaku_jyoko 18:0f6f2aa2339d 37 void bullet_receive(void const *argument){
kaku_jyoko 18:0f6f2aa2339d 38 point start;
kaku_jyoko 18:0f6f2aa2339d 39 start.x = 127;
kaku_jyoko 18:0f6f2aa2339d 40 start.y = 27;
kaku_jyoko 18:0f6f2aa2339d 41 char c;
kaku_jyoko 18:0f6f2aa2339d 42 while(true){
kaku_jyoko 18:0f6f2aa2339d 43 c = pc.getc();
kaku_jyoko 18:0f6f2aa2339d 44 if(c == 'a'){
kaku_jyoko 18:0f6f2aa2339d 45 b = &Bullet(start, 2);
kaku_jyoko 18:0f6f2aa2339d 46 wait(5);
kaku_jyoko 18:0f6f2aa2339d 47 }
kaku_jyoko 18:0f6f2aa2339d 48 b = NULL;
kaku_jyoko 18:0f6f2aa2339d 49 }
kaku_jyoko 18:0f6f2aa2339d 50 }
kaku_jyoko 18:0f6f2aa2339d 51
kaku_jyoko 5:651879f4f047 52 int main(){
kaku_jyoko 18:0f6f2aa2339d 53 point p_person, p_bullet;
kaku_jyoko 5:651879f4f047 54 printf("hello\n");
kaku_jyoko 18:0f6f2aa2339d 55 Thread jump_th(jump_receive);
kaku_jyoko 18:0f6f2aa2339d 56 Thread bullet_th(bullet_receive);
kaku_jyoko 5:651879f4f047 57 while(true){
kaku_jyoko 5:651879f4f047 58 update_mtx.lock();
kaku_jyoko 18:0f6f2aa2339d 59 p_person = h.update(1);
kaku_jyoko 18:0f6f2aa2339d 60 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 61 p_bullet = b->update();
kaku_jyoko 18:0f6f2aa2339d 62 }
kaku_jyoko 18:0f6f2aa2339d 63 //printf("x: %d, y: %d", p_bullet.x,p_bullet.y);
kaku_jyoko 5:651879f4f047 64 update_mtx.unlock();
kaku_jyoko 6:e63641e13374 65 lcd.cls();
kaku_jyoko 18:0f6f2aa2339d 66 lcd.print_bm(bitmPlayer,p_person.x,p_person.y);
kaku_jyoko 18:0f6f2aa2339d 67 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 68 lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y);
kaku_jyoko 18:0f6f2aa2339d 69 }
kaku_jyoko 5:651879f4f047 70 lcd.copy_to_lcd();
kaku_jyoko 6:e63641e13374 71 wait(0.02);
kaku_jyoko 6:e63641e13374 72 lcd.cls();
kaku_jyoko 18:0f6f2aa2339d 73 lcd.print_bm(bitmPlayerB,p_person.x,p_person.y);
kaku_jyoko 18:0f6f2aa2339d 74 if(b != NULL){
kaku_jyoko 18:0f6f2aa2339d 75 lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y);
kaku_jyoko 18:0f6f2aa2339d 76 }
kaku_jyoko 5:651879f4f047 77 lcd.copy_to_lcd();
kaku_jyoko 6:e63641e13374 78 wait(0.02);
kaku_jyoko 5:651879f4f047 79 }
kaku_jyoko 6:e63641e13374 80 }