test avoid bulled game
Dependencies: C12832_lcd LCD_fonts mbed mbed-rtos
main.cpp@18:0f6f2aa2339d, 2016-12-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |