test avoid bulled game
Dependencies: C12832_lcd LCD_fonts mbed mbed-rtos
main.cpp@24:88968d1fc9cb, 2016-12-12 (annotated)
- Committer:
- th_mbed
- Date:
- Mon Dec 12 10:44:00 2016 +0000
- Revision:
- 24:88968d1fc9cb
- Parent:
- 19:55f3114f3996
- Child:
- 29:7784b098ef1d
change make stage algolism
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 | 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 | } |