manhaeve5
Gebruiker
- Lid geworden
- 9 jan 2007
- Berichten
- 276
Ik ben momenteel bezig met allegro, een OXO spel, ik heb de code om een oxo veld te tekenen en om het geselcteerde kotje een blauwe kleur te geven, ik heb ook geprobeerd om code te maken om in het veld te navigeren met behulp van de pijltjestoetesen maar dat lukt niet, het blauwe kotje verdwijnt. Mijn code:
Code:
#include <allegro.h>
#include <iostream>
void init();
void deinit();
void drawfield();
void drawhok1(),drawhok2(),drawhok3(),drawhok4(),drawhok5(),drawhok6(),drawhok7(),drawhok8(),drawhok9();
void check();
BITMAP *o;
BITMAP *x;
MIDI *liedje = load_midi("liedje.mid");
struct hok{
int nummer;
char letter;
bool selected;
};
hok hok1,hok2,hok3,hok4,hok5,hok6,hok7,hok8,hok9;
int sel = 1;
int main() {
bool musicpause = false;
init();
play_midi(liedje,1);
while (!key[KEY_ESC]) {
if(key[KEY_UP]){
sel=sel-3;
check();
}
if(key[KEY_DOWN]){
sel=sel+3;
check();
}
if(key[KEY_LEFT]){
sel--;
check();
}
if(key[KEY_RIGHT]){
sel++;
check();
}
drawfield();
textprintf(screen,font,200,100,makecol(255,255,255),"OXO Spel");
textprintf(screen,font,100,320,makecol(255,255,255),"Gemaakt door");
textprintf(screen,font,100,340,makecol(255,255,255),"Controls: P = pauzeer muziek (soms moet je meerdere keren proberen)");
if(key[KEY_O]){
draw_sprite(screen,o,26,51);
}
if(key[KEY_X]){
draw_sprite(screen,x,26,51);
}
/*
draw_sprite(screen,x,26,101);
draw_sprite(screen,o,26,151);
draw_sprite(screen,x,76,51);
draw_sprite(screen,o,76,101);
draw_sprite(screen,x,76,151);
draw_sprite(screen,o,126,51);
draw_sprite(screen,x,126,101);
*/
if(key[KEY_P]){
if(musicpause==false){
musicpause = true;
midi_pause();
}
else if(musicpause==true){
musicpause = false;
midi_resume();
}
}
}
deinit();
destroy_midi(liedje);
destroy_bitmap(x);
destroy_bitmap(o);
return 0;
}
END_OF_MAIN()
void init() {
int depth, res;
allegro_init();
depth = desktop_color_depth();
if (depth == 0) depth = 32;
set_color_depth(depth);
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
if (res != 0) {
allegro_message(allegro_error);
exit(-1);
}
install_timer();
install_keyboard();
install_mouse();
o = load_bitmap("o.bmp",NULL);
x = load_bitmap("x.bmp",NULL);
install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, 0);
hok1.selected=true;
}
void deinit() {
clear_keybuf();
/* add other deinitializations here */
}
void drawfield(){
drawhok1();
drawhok2();
drawhok3();
drawhok4();
drawhok5();
drawhok6();
drawhok7();
drawhok8();
drawhok9();
}
void drawhok1(){
if(hok1.selected == true)
rect( screen, 25, 50, 75, 100, makecol(0, 0, 255));
else
rect( screen, 25, 50, 75, 100, makecol( 255, 255, 255));
}
void drawhok2(){
if(hok2.selected == true)
rect( screen,75, 50, 125, 100, makecol(0, 0, 255));
else
rect( screen,75, 50, 125, 100, makecol( 255, 255, 255));
}
void drawhok3(){
if(hok3.selected == true)
rect( screen, 125, 50, 175, 100, makecol(0, 0, 255));
else
rect( screen, 125, 50, 175, 100, makecol( 255, 255, 255));
}
void drawhok4(){
if(hok4.selected == true)
rect( screen, 25, 100, 75, 150, makecol(0, 0, 255));
else
rect( screen, 25, 100, 75, 150, makecol( 255, 255, 255));
}
void drawhok5(){
if(hok5.selected == true)
rect( screen,75, 100, 125, 150, makecol(0, 0, 255));
else
rect( screen,75, 100, 125, 150, makecol( 255, 255, 255));
}
void drawhok6(){
if(hok6.selected == true)
rect( screen, 125, 100, 175, 150, makecol(0, 0, 255));
else
rect( screen, 125, 100, 175, 150, makecol( 255, 255, 255));
}
void drawhok7(){
if(hok7.selected == true)
rect( screen, 25, 150, 75, 200, makecol(0, 0, 255));
else
rect( screen, 25, 150, 75, 200, makecol( 255, 255, 255));
}
void drawhok8(){
if(hok8.selected == true)
rect( screen,75, 150, 125, 200, makecol(0, 0, 255));
else
rect( screen,75, 150, 125, 200, makecol( 255, 255, 255));
}
void drawhok9(){
if(hok9.selected == true)
rect( screen, 125, 150, 175, 200, makecol(0, 0, 255));
else
rect( screen, 125, 150, 175, 200, makecol( 255, 255, 255));
}
void check(){
hok1.selected=false;
hok2.selected=false;
hok3.selected=false;
hok4.selected=false;
hok5.selected=false;
hok6.selected=false;
hok7.selected=false;
hok8.selected=false;
hok9.selected=false;
switch (sel){
case 1:
hok1.selected=true;
break;
case 2:
hok2.selected=true;
break;
case 3:
hok3.selected=true;
break;
case 4:
hok4.selected=true;
break;
case 5:
hok5.selected=true;
break;
case 6:
hok6.selected=true;
break;
case 7:
hok7.selected=true;
break;
case 8:
hok8.selected=true;
break;
case 9:
hok9.selected=true;
break;
}
}
Laatst bewerkt door een moderator: