PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Jump'N Run-Problem! Ich brauch die Technikexperten.



elsen
02.07.2009, 23:13
Ich habe ein Problem, bei dem ich absolut nicht weiter weiß, deshalb brauch ich euch! Euch Technikexperten!
Ich bastel gerade an einem Jump'N Run und es funktioniert soweit alles ganz gut.
Jetzt aber das Problem das kurioserweise nur manchmal Auftritt: Die Steuerung will nicht mehr ganz sauber funktionieren.
Das heißt vor allem:
- Bewegungen sind ab und zu hakelig
- Animationen flackern (z.B. wenn man sich duckt, flackert ab und an die Steh-ani dazwischen)
- Sprünge werden einfach zwischendrin abgebrochen, trotz gehaltener Entertaste (und noch immer vorhandener Sprungkraft)

Alles zusammenfassend könnte man sagen: Es ist, als hätte die Tastatur einen "Wackelkontakt" ^^ (hat sie aber nicht ;D)

Das Problem daran, das ich nicht verstehe ist, dass es wirklich nur manchmal auftritt. UND: WENN es reibungslos funktioniert, dann auch die ganze Zeit über bis zum nächsten kompletten Neustart. WENN es allerdings mal wieder rumspinnt, dann auch wieder durchweg bis zum kompletten Neustart (des Testplays).
Es ist also immer wie ein kleines... "Überraschungspaket" beim Starten ob es nun klappt oder nicht...

Ich hoffe, wir finden hier ne Lösung für das Problem. Das ist ja belastend -_-

Download: Jump'N Run mit nerventötendem Bug! (http://www.letsshareit.net/files/154/Jump%27N%20Run_Techniktest.rar)

Laufen mit Pfeiltasten Rechts/Links
Ducken mit Pfeiltaste_unten
Rutschen mit Enter während des Duckens
Wandsprung mit Enter, während man an einer Wand entlang rutscht
und bis jetzt nur zum Test: Schlagen mit Shift (auch mehrmals)

Die Steuerung ist durch das Tile-Movement nicht so schön, aber für Pixelmovement fehlt mir einfach zu viel Erfahrung. Ich habe versucht aus dem einfachsten das beste zu machen. Ich weiß nicht ob mir das bis jetzt halbwegs gelungen ist, aber ein Feedback zur Steuerung bzw. dem Handling wär auch ganz nett....

gute Nacht!

Super17
03.07.2009, 13:25
Hm, ist nicht unbedinkt gesagt, dass du einen Fehler gemacht hast. Ich hab' mir jetzt den Code nicht angeschaut, sondern nur ganz normal gespielt. Wie beschrieben taucht auch bei mir der Bug auf, dass, wenn ich mich Ducke, der Held zeitweise aufblingt, ebenso wie der Sprungbug. Mir ist dieses, oder eher gesagt, ein ähnliches Problem aber bekannt. Ich schätze einfach mal, dass du einen Duo- oder Quadcoreprozessor hast. Wenn nicht, weiß ich auch nicht, woran es liegt. Ich zumindest habe einen Duocore. Und scheinbar gibt es damit Probleme, was solche Scripte anbelangt.

Folgende Problemlösung: Spiel starten -> Minimieren -> Taskmanager öffnen -> Prozesse -> RPG_RT.exe -> Zugehörigkeit festlegen -> Haken bei CPU 1 wegmachen -> Spiel wieder maximieren -> Es klappt!

Wahrscheinlich gibt es noch elegantere Lösungen, ich habe mich aber bisher nicht weiter damit beschäftigt und richtige Computerkenner können dann dazu auch mehr sagen.

elsen
03.07.2009, 13:39
Hm.... Ich verstehe nur nicht, warum es dann manchmal komplett funktioniert wie es soll und ein anderes mal wieder nicht.
Oft trat der Bug auch nach mehrmaligem Neustarten nicht auf und andere Male wieder bei 4 Testdurchläufen von 5 (jetzt mal pauschal gesagt).
Wie gesagt ist das ganze ein großes Überraschungspaket...

EDIT:
Super17, hast du auch mal probiert ein paar mal Neuzustarten? Ob es dann auch mal funktioniert, ohne was im Taskmanager zu werkeln?

Mit Neustart meine ich übrigens nicht F12 ;D (da bleibt alles, wie es vorher war. Funktionierte es -> funktioniert es weiter. Gab es Bugs, gibts die auch weiterhin. Also komplett Beenden und nochmal starten...)

Super17
03.07.2009, 14:15
Das ganze ist in der Tat seltsam. Aber ich habe es jetzt mindestens 10 mal hintereinander getestet (Das mit F12 ist mir natürlich bekannt ;)) und der Bug trat immmer auf. Und wenn man das mit der CPU umstellt eben nicht (komischerweise doch, aber auch nur ein einziges mal beim Ducken). Klappt das denn bei dir, oder ist es bei mir ein Einzelfall? Denn bei ein par Scripten von mit gab es einen ähnlichen Fehler, der aber bei Nicht-Multiplen-Prozessoren nicht auftrat.

elsen
03.07.2009, 14:58
Wie ich ja oben schon geschrieben habe, tritt der Fehler bei mir zumindest nur manchmal auf.. nach einem Neustart ist in der Regel alles wieder Paletti (oder 2-4 ^^') Aber das er bei dir IMMER auftritt ist natürlich jetzt auch nicht gerade erheiternd... Wenn das also mit der Hardware zusammenhängt bin ich wohl ziemlich machtlos.

Es wäre verdammt nett, wenn noch ein paar andere schreiben könnten, wo es wann welche Probleme gibt und was für Hardware sie benutzen! (und ob die Problem-Lösung von Super17 bei anderen Problemlos funktioniert.)

Andere Lösungsvorschläge sind auch willkommen.

R.D.
03.07.2009, 15:30
Naja, mit BA's das ganze zu machen kann ja auch nicht funktionieren^^
Mit Bilder wäre schöner oder so wie ich das gelöst habe. Mit Cherry's Char Expand, damit spart man sogar unnötige Piclayer. Tja und dann ist da noch die Sache, das du zuerst ein Autostart hast. Und dann (!) ein PP das die taste abfragt.... Warum?
Da könnt der Fehler sein. Bei mir hat es btw gelaggt und kA warum :D

€:
Harhar!!! I ownd you!

cilence
03.07.2009, 15:33
Was mir so aufgefallen ist, Du nutzt gleich zwei Key Inputs hintereinander. Wozu? Eine reicht doch, wenn ich bisher mal wirklich zwei Stück parallel genommen habe, hat das irgendwie immer zu Fehlern geführt. Das Flackern selbst liegt meiner Meinung nach daran, dass Du Battleanimations benutzt. Besser wäre es, einfach Bilder zu benutzen und diese auf dem Hero anzuzeigen. Das ist sogar recht ressourcensparend, wenn man es richtig anpackt. Und wenn ein Frame des Bildes angezeigt wird, kann kein anderes dazwischenfunken. Wer jetzt nicht drauf kommt, warum ich sage, dass das ressourcensparend (im Sinne der Performance beim Anzeigen, Code wird so oder so parallel gelesen) ist, ist selber schuld. Für die Heroposen bräuchte man genau ein Bild.

Der Deutsch- Englisch Kommentarmischmasch nervt irgendwie, muss ich mal anmerken. Aber Fehler sind bei mir gar keine aufgetreten. Weder Flackern noch nachlassende Sprungkraft. Allerdings hatte ich immer Probleme damit, eine Wand hochzukraxeln. Keine Ahnung, ob das an mir lag oder am J'n'R System.

€:
Damn you, R.D.! DU tippst zu schnell!1

Cherry
03.07.2009, 15:39
Falls das Problem wirklich mit Duocore zu tun hat, könnte ich einen Mini-Loader machen, der beim Start des Spiels automatisch nur CPU 0 zuteilt.

elsen
03.07.2009, 16:04
Danke erstmal fürs Feedback.

@R.D.: Ich hatte die Key-Input-Processings zuerst am Anfang des Auto-Start Events... warum ich die ausgelagert habe, weiß ich gar nicht mehr oO
EDIT: jetzt weiß ichs wieder xD Ich wollte die Tasten immer up-to-date haben, aber ist am Anfang des Auto-Start Events auch nicht anders. Also wieder rein damit^^

@e.hoff: 2 Key-Input-Processings hintereinander, warum mache ich das. Nun die Sache ist die, dass ich Enter und Arrow-Keys beide brauche, allerdings nur eine Taste ausgelesen wird, bei nur einem Key-Input. Mir fällt ein, das hätte ich auch geschickter lösen können... probier ich heut Abend.
zum Deutsch-Englisch Mischmasch -> Ich mach das ganze wie beim Programmieren. Kommentare Deutsch, Code Englisch. So ists für mich am einfachsten, weiß aber nicht, ob ich mir da gerade einen falschen Stil angewöhne xD Mir ist aber wichtig, das ich damit zurecht komme, denn ich muss damit arbeiten...
Der Wandsprung ist nicht wirklich ausgereift, aber das ist alles nur in der Testphase und ich bin auf dem Gebiet der Technik auch nicht so sehr bewandert (und dann versuch ich mich an einem JNR, \o/) Aber ich lerne dabei und das ist gut so....

@Cherry: Nun, das gilt es ja herauszufinden... Ich werde allerdings noch versuchen auf alles genannte einzugehen und das Script zu verbessern. Sollte es dann immer noch Probleme geben und es am Prozessor liegen, dann wär das natürlich eine super Sache :A


Zu den BA's: Das hatte damals seinen Grund, aber das ist mittlerweile eine völlig andere Version des Scriptes. Ich werd das ganze mal auf Bilder umbasteln.

Super17
03.07.2009, 16:04
Falls das Problem wirklich mit Duocore zu tun hat, könnte ich einen Mini-Loader machen, der beim Start des Spiels automatisch nur CPU 0 zuteilt.
Wie gesagt, bei mir liegt es daran (zumindest bin ich mir ziemlich sicher), mir würde es also wirklich helfen, Cherry. Wollte dich auch demnächst fragen, ob sowas geht oder sinnvoll wäre, aber das hat sich dann wohl erledigt :p

R.D.
03.07.2009, 19:54
Danke erstmal fürs Feedback.

@R.D.: Ich hatte die Key-Input-Processings zuerst am Anfang des Auto-Start Events... warum ich die ausgelagert habe, weiß ich gar nicht mehr oO
EDIT: jetzt weiß ichs wieder xD Ich wollte die Tasten immer up-to-date haben, aber ist am Anfang des Auto-Start Events auch nicht anders. Also wieder rein damit^^


Oh nein, warum das Oo die sind auch so up-do-date wenn du sie hintereinander abfragst, ist ja im Grund sowieso so^^

elsen
03.07.2009, 21:01
Deshalb sind sie ja jetzt auch wieder drinne ;D

Ich werd das Script heute Nacht (jaja, schon richtig gelesen, wir haben Ferien und speziell heut Abend ne Starcraftrunde, wo ich nicht am Script basteln kann) mal umräumen und dran rumschrauben.... im allgemeinen noch auf Pictures umstellen und mir was für den Wandsprung überlegen...

und R.D., warum das bei dir laggt ist auch noch ne zu klärende Frage... (sehr stark?)
Im übrigen mach ich mir eigentlich ein bisschen Sorgen um die Performance, wenn es um "show picture" geht. Aber das werd ich ja sehen, wenn es soweit ist...

cilence
04.07.2009, 07:49
Deswegen wäre es ja auch besser, wenn Du den move picture Befehl nehmen würdest. Das entsprechende Frame bekommt man ja ganz leicht per Rechnung raus.

elsen
04.07.2009, 15:15
Du meinst, ich soll 10 Pictures für die Laufani (so viele Bilder hat sie) von vornherein anzeigen und dann alles mit Move Pictures koordinieren? Wären 10 Picture-IDs von vornherein belegt, zusätzlich der 11. die für die Posen wäre, die keine Ani haben!?

und eins verwirrt mich:

Und wenn ein Frame des Bildes angezeigt wird, kann kein anderes dazwischenfunken.
war ein Schreibfehler oder?

Aber danke für die Unterstützung! :A

R.D.
04.07.2009, 15:31
und R.D., warum das bei dir laggt ist auch noch ne zu klärende Frage... (sehr stark?)
Im übrigen mach ich mir eigentlich ein bisschen Sorgen um die Performance, wenn es um "show picture" geht. Aber das werd ich ja sehen, wenn es soweit ist...

Naja, lag an den zu großen Wiederholung neh, ich an.
achja und wie gesagt ich löse das alles über Chars~ Ich hab dadurch zwar kein Pixelmovment aber überhaupt keine Probleme mit der Performance.

cilence
04.07.2009, 15:35
Wie ich schon geschrieben habe, kannst Du genau ein Bild anzeigen lassen und nicht zehn. Deswegen ist es auch kein Schreibfehler, sondern voller Ernst. Stelle Dir vor, Du erstellst ein Bild, das ein vielfaches von 240 Pixeln in der Höhe groß ist. Meinetwegen 2400 Pixel, dort kannst Du dann zehn Sprites draufschmeißen und musst zum Anzeigen immer nur den Bildausschnitt verschieben. Zum Ansteuern benutzt Du einfach eine Variable, mit deren Hilfe dann das Frame berechnet wird, da Du ja so oder so über Variablen gehen musst. Also steht in der Variable 0, würde das erste Frame genommen werden, bei 1 das zweite und so weiter.

€:
Grad war noch kein Post von Dir da, R.D. . Du bist doch zu schnell für mich. ;_;

elsen
04.07.2009, 15:46
ah, na das ist natürlich auch ne clevere Idee. Wird probiert! :A

Edit:
R.D. hat seine Tippgeschwindigkeit bestimmt von Guitar Hero :p

R.D.
04.07.2009, 15:49
@e.hoff
Ja, das ist ne tolle Idee imho :A

@Elsen
Ja, genau xD