murko Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 eg har tenkt å lage eit enkelt 2d opengl spill men har 2 problemer. eg treng hjelp for å få spillet til å teste om eg holder nede ein knap. eg har ein løsning men den reagerer veldig seint og starter med eit hak før den blir jevn og gjer det den skal. så trenger eg og vite korleis eg kan få ein class til å finne ut variablene til alle copiene av ein class. uten å liste op navnene til alle copiene. Lenke til kommentar
hockey500 Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 (endret) det siste er ganske enkelt om du kan litt OOP. personlig har jeg veldig lite erfaring med C++, men i C# ville jeg laget en statisk liste i klassen, og i konstruktøren kjøre Klasse.List.Add(this). Noe tilsvarende kan du garantert gjøre i C++ også, uten at jeg kan C++ godt til å komme med kodeeksempler. For å teste om en knapp holdes nede i windows bruker GetAsyncKeyState. Dette høres ut som enkle problemer, så kanskje du burde starte med noe enklere enn å lage spill inntil videre? Endret 29. juni 2009 av hockey500 Lenke til kommentar
GeirGrusom Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 Jeg forstår ikke helt siste problemet ditt, men du bruker std::list for å lage en linked-list over objekter hvor du kan slette elementer på en hvilken som helst plass. For eksempel: std::list<BaseClass&> world_items; Vær nøye med at objekter som slettes fra listen også slettes fra minnet med delete. Lenke til kommentar
Dead_Rabbit Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 Om han bør slette objektene med delete kommer helt ann på hvordan minnet allokeres. En tommelfingerregel er jo at man aldri skal destruere noe med delete som man ikke har allokert med new. Lenke til kommentar
GeirGrusom Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 Tenkte bare det var greit å minne en nybegynner på det Lenke til kommentar
phfjeld Skrevet 29. juni 2009 Del Skrevet 29. juni 2009 Dette har forresten ikke noe med OpenGL å gjøre. Men legg meg til på MSN (WLM nå), så hjelper jeg deg gjerne med å skrive et spill eller to. Lenke til kommentar
murko Skrevet 30. juni 2009 Forfatter Del Skrevet 30. juni 2009 egentlig hadde eg tenkt meg ein annen løsning en å liste opp alle copiene av classen men sån at eg sjekker alle copiene av classen eg vil uten at eg treng å liste det opp. og så bruker eg glutKeyboardFunc(handleKeypress) til å finne ut om ein knap er trykt men den er ubrukelig når eg skal lage eit spill med den. eg skall ikkje lage noe stort spill det er bare eit lite spill med ein player og noe kloser eg kan hope på. Lenke til kommentar
GeirGrusom Skrevet 7. august 2009 Del Skrevet 7. august 2009 OpenGL er ikke et dårlig valg for å lage 2D, du har mange muligheter til å lagge effekter og slikt (shaders, point sprites, perspektivforvrengninger etc.) som ikke er lett i et normalt 2D API. Men SDL har jo OpenGL bindinger, i tillegg til lyd, musikk og input, som også kreves av et spill. OpenGL har dog mistet mye av sjarmen etter at jeg begynte med Direct3D... (liten sidenotis) Lenke til kommentar
AMajor Skrevet 22. august 2009 Del Skrevet 22. august 2009 murko: jeg slutta med glut fordi jeg hadde noe av det samme problemet som du har (tror jeg) med mus og tastatur, samt variabler som ikke ville oppdateres. jeg husker ikke hva det kom av, men jeg lagde mine egne vindu klasser etterhvert som tiden gikk, og fikk aldri samme problemer mer. jeg tror glut er veldig gammelt og ubrukelig i dag med mindre det har kommet noen nyere versjoner, høres ikke sånn ut etter hva du sier. foreslår da at du enten finner noe annet enn glut eller lærer deg å lage egne vinduer (Nehe har feks en veldig grei codebase du kan låne fra også om du ikke vil lære deg så alt for mye om api og sånt, men dog er greit å vite litt om det hvis du vil gjøre mer enn bare enkle ting), eller du kan bytte til directx med d3d9 sdken hvor det visstnok skal være mange gode eksempler med kildekode. Lenke til kommentar
Knut_F Skrevet 24. august 2009 Del Skrevet 24. august 2009 (endret) eg treng hjelp for å få spillet til å teste om eg holder nede ein knap. eg har ein løsning men den reagerer veldig seint og starter med eit hak før den blir jevn og gjer det den skal. Hvis jeg f.eks trykker på VK_LEFT så setter jeg en bool variabel (ex. movX = true;) som sier at variabelen for x-retning skal økes. Så gjør jeg dette i mainloopen, istedenfor i den callback prosedyren. (Da får du det resultatet som du beskriver). Så må du sette denne bool variabelen til true, når det registreres en KEYDOWN, og som false, når det registreres en KEYUP. Dette er også en måte som gjør at du kan bruke flere taster samtidig. Endret 24. august 2009 av Knut_F Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå