Wiedermal SDL =b
-
und jedesmal den thread killen wenn eine andere richtung gewählt wird?
Nimm ein bisschen Abstand und lies dir diesen Satz nochmal durch. Kommt dir diese Vorgehensweise nicht selbst unglaublich abwegig vor?
-
1. wieso kein thread? die beiden abläufe sind ja von einander abhängig, sollen
aber neben einander [hier war edit, hab mich verschrieben xD] ablaufen. denn
der pacman läuft ja weiter. nicht das ich für jeden schritt eine taste
drücken muss oder gedrückt halten muss!2. meine idee war ja so: ein thread überprüft in einer endlos-schleife die
eingabe und verändert je nach dem die den index. index desswegen, weil ich
für die bewegung (sie ist animiert) 8 bilder habe. sprich mund auf, mund zu!
und die bilder sind in einem array gespeichert:SDL_Surface *image[IMG];
Der index gibt an was für ein bild geladen werden muss.
Da der PacMan durchläuft sprich immer in eine richtung geht bis eine andere
Richtung vorgegeben ist (oder er am rand anstößt), läuft das im main().3. meine andere überlegung war so, dass ich das einlesen im main() mache und den
index global mache. sprich: index wird im main() verändert und der thread der
den pacman ausgibt liest dann index und reagiert darauf.wieso für mich dabei threads in frage kommen bzw. wieso ich mir die überlegung
gemacht habe ist simpel: das programm soll flüssiger werden und weiterlaufen,
wenn ich zum beispiel das fenster verschiebe... wenn ich nämlich jetzt im moment
das fenster verschiebe, bleibt das programm stehen, bis ich das fenster mit dem
mauszeiger losgelassen habe...falls es da andere lösungen gibt, dann wären KONKRETE antworten wirklich hilfreich. keine lösungen, beispiele für techniken (es sollte in C möglich sein,
nicht in C++) die mich auf einen grünen zweig bringen und nicht einzeilige sätze
in denen steht: kein thread!, denn dies hilft mir nicht viel. würde ich keine
hilfe benötigen, wär ich nicht hier!gruß
ITEDVO
-
mir sind von meinen testern für mein spiel mehrmals gemeldet worden, dass sich
das spiel nach einigen minuten aufhängt bzw. abstürzt. einer der tester war nun
so gescheit und hat mir folgendes gesendet:Problemsignatur: Problemereignisname: AppHangB1 Anwendungsname: PacMan.exe Anwendungsversion: 0.0.0.0 Anwendungszeitstempel: 4d2ae9b7 Absturzsignatur: 9213 Absturztyp: 0 Betriebsystemversion: 6.1.7600.2.0.0.256.1 Gebietsschema-ID: 3079 Zusätzliche Absturzsignatur 1: 9213ecc02d09c917ead5fd37705844dd Zusätzliche Absturzsignatur 2: 4f80 Zusätzliche Absturzsignatur 3: 4f80372cd370e6685dd8ab0be6c046c0 Zusätzliche Absturzsignatur 4: 9213 Zusätzliche Absturzsignatur 5: 9213ecc02d09c917ead5fd37705844dd Zusätzliche Absturzsignatur 6: 4f80 Zusätzliche Absturzsignatur 7: 4f80372cd370e6685dd8ab0be6c046c0
ich kann damit aber nichts anfangen (source-code ohne threads, siehe oben)...
kann ein surface überladen werden? oder ähnliches? wäre dankbar über hilfe bzw. wenn mir wer erkennt was das jetzt genau heisst...
gruß
ITEDVO
-
es will und kann mir also keiner helfen, naja... dann such ich mir halt für dieses thema ein anderes forum...