diff --git a/Makefile b/Makefile index 299c268..12dee19 100755 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ include $(CURDIR)/Makefile.config # DEDUCED VARS -ALLOBJ = $(patsubst %,$(OBJDIR)/%.o,$(SRC) $(FONT) $(IMG)) +ALLOBJ = $(patsubst %,$(OBJDIR)/%.o,$(SRC) $(IMG) $(FONT)) ALLINC = $(INC:%=$(INCDIR)/%) # RULES diff --git a/img/img_menu.bmp b/img/img_menu.bmp new file mode 100644 index 0000000..3f97526 Binary files /dev/null and b/img/img_menu.bmp differ diff --git a/img/plane.bmp b/img/plane.bmp new file mode 100644 index 0000000..58de2d4 Binary files /dev/null and b/img/plane.bmp differ diff --git a/img/plane.png b/img/plane.png deleted file mode 100644 index b2b9952..0000000 Binary files a/img/plane.png and /dev/null differ diff --git a/include/wings.h b/include/wings.h index 8691934..50e5837 100644 --- a/include/wings.h +++ b/include/wings.h @@ -1,6 +1,4 @@ #ifndef WINGS #define WINGS - - #endif diff --git a/obj/img_menu.bmp.o b/obj/img_menu.bmp.o new file mode 100644 index 0000000..5d0e665 Binary files /dev/null and b/obj/img_menu.bmp.o differ diff --git a/obj/plane.bmp.o b/obj/plane.bmp.o new file mode 100644 index 0000000..051923f Binary files /dev/null and b/obj/plane.bmp.o differ diff --git a/obj/wings.c.o b/obj/wings.c.o index be2fcfd..53f9d67 100644 Binary files a/obj/wings.c.o and b/obj/wings.c.o differ diff --git a/src/wings.c b/src/wings.c index 0103e69..5c67858 100644 --- a/src/wings.c +++ b/src/wings.c @@ -1,21 +1,125 @@ #include "wings.h" #include "display.h" // bopti.h => images // tales.h => fonts +#include "bopti.h" #include "keyboard.h" +#include "timer.h" + #include "stdio.h" #include "stdlib.h" +#define SIZE_MAP_X 256 +#define SIZE_MAP_Y 128 + extern image_t plane; +extern image_t img_menu; +/* +7 0 1 +6 plane 2 +5 4 3 +*/ +/* +touche +KEY_UP : 0x18 : 24 +KEY_RIGHT : 0x17 : 23 +KEY_DOWN : 0x27 : 39 +KEY_LEFT : 0x28 : 40 +*/ int main() { - dimage(0, 0, &plane); + menu(); return 1; } void menu() { + unsigned char menu = 0; + unsigned int key = 0; + + while(1) + { + dclear(); + + dimage(0, 0, &img_menu); + drect(67 + menu * 19, 10 + menu * 27, 100 + menu * 19, 25 + menu * 27, color_invert); + + dupdate(); + + key = getkey(); + + switch (key) + { + case KEY_UP : case KEY_DOWN : menu = (menu == 1 ? 0 : 1); break; + case KEY_EXE : + { + if (menu==0) + { + jeu(); break; + } + else return 1; + } + case KEY_EXIT : return 1; + } + } +} + +void update_frame(int *dir) +{ + dclear(); + dimage_part(60, 24, &plane, 16*(*dir), 0, 16, 16); + dupdate(); +} + +int jeu() +{ + int dir = 0; + unsigned char fire = 0; // fire disable + unsigned int sum = 0; + int *keys = NULL; + unsigned int key; + unsigned char i; + + timer_t *timer = NULL; + + timer = timer_create(40, 0); + timer_attach(timer, update_frame, &dir); + timer_start(timer); + + while(1) + { + /*multigetkey(keys, 4, 40); + + + for(i = 0; i < 3; i++) + { + if(keys[i] == KEY_UP || keys[i] == KEY_DOWN || keys[i] == KEY_LEFT || keys[i] == KEY_RIGHT) + { + sum += keys[i]; + } + else if (keys[i] == KEY_SHIFT) + { + fire = 1; // fire on ennemies + } + } +*/ + key = getkey(); + switch(sum) + { + case KEY_LEFT : dir = 6; break; + case KEY_RIGHT : dir = 2; break; + case KEY_UP : dir = 0; break; + case KEY_DOWN : dir = 4; break; + + /*case 0x2F : dir = 1; + case 0x3E : dir = 3; + case 0x4F : dir = 5; + case 0x40 : dir = 7; +*/ + case KEY_EXIT : timer_stop(timer); return 1; + } + } } diff --git a/wings.bin b/wings.bin new file mode 100755 index 0000000..9af7332 Binary files /dev/null and b/wings.bin differ diff --git a/wings.elf b/wings.elf new file mode 100755 index 0000000..05f630f Binary files /dev/null and b/wings.elf differ diff --git a/wings.g1a b/wings.g1a new file mode 100644 index 0000000..1146f5d Binary files /dev/null and b/wings.g1a differ