C++ (met allegro) : fout in selectie

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • DeadLock
  • Registratie: December 2005
  • Laatst online: 01-12 19:45

DeadLock

Vastlopen is relatief....

Topicstarter
Goeie avond iedereen ,

Ik ben op het moment met de 'allegro engine' een spel aan het proberen te schrijven , maar het loopt al relatief snel mank. De selectie van de eenheden (bitmaps) werkt wel , maar af en toe maar. Dus als je op het goede moment klikt selecteer je de unit , op het foute moment gebeurt er gewoonweg niets.

Als iemand me hiermee een beetje zou kunnen verderhelpen ben ik erg dankbaar :).

De code bestaat uit 2 delen ; een main file en een units class.

Ik heb alle files op pastebin.be gezet , zodat je men hele code kan zien (als je dat wenst ;) ).

main.cpp : http://pastebin.be/4759/
main.h : http://pastebin.be/4765/
datfile.h : http://www.pastebin.be/4766/
units.cpp : http://www.pastebin.be/4767/
units.h : http://www.pastebin.be/4768/

Voor alle grafische dingen gebruik ik de opensource 'allegro' engine.

Strava


Verwijderd

ik ben niet zo heel erg bekend met allegro (ik raad je sdl aan, dat werkt veel prettiger als ik je code zo eens bekijk), maar je vertelt geloof ik nergens dat je die mouse_* variabelen gebruikt. en deze lijnen zijn nutteloos:
code:
1
2
3
        mouse_x;
        mouse_y;
        mouse_b;


important note: je include main.h tweemaal!
dit is het eerste wat ik heb gevonden

  • DeadLock
  • Registratie: December 2005
  • Laatst online: 01-12 19:45

DeadLock

Vastlopen is relatief....

Topicstarter
Dat heb ik aangepast , maar dat was natuurlijk niet de fout.

De selectie an sich werkt ook wel , alleen maar af en toe ... Als je enkele keren klikt op de 'unit' dan is hij meestal wel geselecteerd , maar zoals je wel kunt begrijpen niet erg aangenaam voor een spel :+.

Strava


Verwijderd

Stel je het volgende scenario voor:

- speed_counter staat op 0.
- De speler klikt met de muis.
- De speler laat de muisknop los.
- speed_counter wordt verhoogd en je selectie test wordt uitgevoerd.

Je mist nu de muisklik omdat deze plaatsvond tussen je logic updates door. Een manier om dit op te lossen zou zijn door te werken met events, bv if (mouse_clicked == true) { ... }, waarbij mouse_clicked buiten je updates op true gezet wordt zodra mouse_b & 1 != 0 true oplevert.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tja, wat verwacht je nu, dat wij je code voor je gaan doorspitten op zoek naar de fout? Gebruik een debugger! :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.