test avoid bulled game
Dependencies: C12832_lcd LCD_fonts mbed mbed-rtos
Revision 34:a83cad29890c, committed 2016-12-12
- Comitter:
- kaku_jyoko
- Date:
- Mon Dec 12 11:50:33 2016 +0000
- Parent:
- 33:442498e281b1
- Child:
- 35:b767ad058a8b
- Child:
- 37:f5d98f22b6bd
- Commit message:
- change;
Changed in this revision
main.cpp.orig | Show diff for this revision Revisions of this file |
--- a/main.cpp.orig Mon Dec 12 11:50:02 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -#include "mbed.h" -#include "C12832_lcd.h" -#include "Arial_9.h" -#include "Small_7.h" -#include "graphics.h" -#include "models.h" -#include "rtos.h" -#include "point.h" -#include "stdlib.h" -#include "convert.h" - -C12832_LCD lcd; - -// down: p12, left: p13, center: p14, up: p15, right: p16 -InterruptIn button(p14); -AnalogIn aIn(p20); -DigitalOut led1(LED1); - -Mutex jump_mtx; -Mutex update_mtx; -int jump_flag = 0; -Person h; -Stage stage; -Serial pc(USBTX, USBRX); // tx, rx -Bullet* b = NULL; -Timer t; -int white_board[LCD_Y][LCD_X]; -int* wall_height; - -void reset_white_board() -{ - for(int i = 0; i < LCD_Y; i++){ - for (int j = 0; j < LCD_X; j++){ - white_board[i][j] = 0; - } - } -} - -void make_wall(){ - wall_height = stage.getStage(); - for(int i = 0; i < LCD_Y; i++){ - for(int j = 0; j < LCD_X ; j++){ - if(wall_height[i] > (LCD_Y - 1 - j)){ - white_board[i][j] = white_board[i][j] ^ 1; - } - } - } -} - -void a(){ - h.jump(); -} - -void jump_receive(void const *argument){ - while(true){ - jump_mtx.lock(); - button.rise(&a); - jump_mtx.unlock(); - //Thread::wait(0.1); - } -} - -void bullet_receive(void const *argument){ - point start; - start.x = 127; - start.y = 27; - char c; - while(true){ - t.start(); - c = pc.getc(); - if(c == 'a' && t.read() > 5.0){ - b = NULL; - b = &Bullet(start, 2); - t.reset(); - } - } -} - -int corrision_judge(point p_person, point p_bullet){ - printf("bullet x: %d, y: %d \n", p_bullet.x,p_bullet.y); - printf("person x: %d, y: %d \n", p_person.x,p_person.y); - if((p_person.x + 2 >= p_bullet.x) && (p_person.x + 2 <= p_bullet.x + 5)){ - printf("aaaaa\n"); - if((p_person.y + 2 >= p_bullet.y + 1) && (p_person.y + 2 <= p_bullet.y + 4)){ - printf("gameover\n"); - } - } - return 0; -} - -int main(){ - point p_person, p_bullet; - printf("hello\n"); - Thread jump_th(jump_receive); - Thread bullet_th(bullet_receive); - lcd.setmode(XOR); - int gameOver = 0; - srand((int)(aIn * 100)); - Converter converter(); -// Bitmap picture; - - while(true){ - update_mtx.lock(); - reset_white_board(); - make_wall(); - p_person = h.update(1); - if(b != NULL){ - p_bullet = b->update(); - } - //printf("bullet x: %d, y: %d \n", p_bullet.x,p_bullet.y); -// printf("person x: %d, y: %d \n", p_person.x,p_person.y); - corrision_judge(p_person, p_bullet); - Bitmap picture = converter.convert(white_board); - update_mtx.unlock(); - lcd.cls(); - lcd.print_bm(bitmPlayer,p_person.x,p_person.y); - if(b != NULL){ - lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y); - } - lcd.copy_to_lcd(); - wait(0.02); - lcd.cls(); - lcd.print_bm(bitmPlayerB,p_person.x,p_person.y); - if(b != NULL){ - lcd.print_bm(bitmBullet_graphics, p_bullet.x, p_bullet.y); - } - lcd.copy_to_lcd(); - wait(0.02); - } -} \ No newline at end of file