Ich brauche ein Sprung- Skript für mein Jump 'N Run- Game: Banjo- Kazooie. Ich weiß allerdings nicht wie ich es beschreiben soll. Habt ihr schon mal das Spiel auf dem GBA gezockt?...
...
...
...
Nun...
Man sollte nach vorne, hinten, links und rechts springen können und dabei halt auch steuern können. Achja, man sollte auch aus dem Stand herraus springen können. Hoffe das mir jemand so einen Sprung skripten könnte.^^
code:
du machst ein common event mit keypatch on und darin soll das sein:
musik sp.: MidiTickOutPut.script
musik sp.: KeyList.script
musik sp.: KeysupportOn.script
das auf aufruf
dann noch n common event(name is egal):
Var. ändern: [????: Name]Wert, MIDI-Position(Tick)
Bedingung: Varbl[????: Name(die von oben^^)]-1
---der sprung---
<>
END-Fall
das machste mit den ganzen sprüngen...aba bessa erklärt is es im tut von makenshi...musste einfach das forum durchsuchen...
--
Banned wegen Spamming, Respektlosigkeit gegenüber Forenauthoritäten, Pseudomodding, außerdem Zweitaccount von Tatze. - Chocwise
code:
du machst ein common event mit keypatch on und darin soll das sein:
musik sp.: MidiTickOutPut.script
musik sp.: KeyList.script
musik sp.: KeysupportOn.script
das auf aufruf
dann noch n common event(name is egal):
Var. ändern: [????: Name]Wert, MIDI-Position(Tick)
Bedingung: Varbl[????: Name(die von oben^^)]-1
---der sprung---
<>
END-Fall
das machste mit den ganzen sprüngen...aba bessa erklärt is es im tut von makenshi...musste einfach das forum durchsuchen...
Das geht auch ohne Keypatch.... in meiner KS-Demo geht es einwandfrei.
Zwar kann man während des Sprungs nicht steuern, aber das lässt sich leicht einbauen.
Du fragst nen Tastendruck per Fork-Condition ab, wartest 0,1sec, und machst noch ne tastenabfrage ohne wait until key hit und fragst diese wieder ab. damit fragst du dann quasi ab ob zweimal die selbe taste gedrückt wurde um den sprung "zu starten". dann kommt ein move event mit "start jump" und ziel target hero und wieder ne tastenabfrage mit nem wait von 0,1sec. hierbei wird die variable aber vor der "enter password" abfrage auf einen wert gesetzt, der in die blickrichtung des helden zeigt. d.h. wenn keine neue eingabe erfolgt, springt er in seine blickrichtung. wenn doch, kannst du die eingabe abfragen und eine entsprechende bewegung per move event ausführen. danach mit end jump alles beenden und fertig is.
so oder in etwa müsste es gehen. bei mir hats funktioniert.... is zwar unverständlich erklärt, aber es soll eigentlich auch nur demonstrieren das nicht alles was über enter, hoch, runter, links, rechts einmal drücken hinaus geht gleich den keypatch braucht.
--
Aktuelles Projekt "Uns're Ordnung ist das Chaos!
Verändern heißt zerstör'n!
Warum braucht man denn dafür unbedingt den Keypatch ?
Eigentlich reichen die Pfeiltasten und Enter. Man sollte es hinbekommen könnnen, dass man, je länger man Enter anhällt, weiter springt, oder so ähnlich. Das ist mit einer Enter Password-Funktion gut realisierbar (das mit der Weite und so erfordert aber jeder Menge Geduld und Nerven ... ).
Naja im Prinzip brauchst du den Keypatch fuer ein gutes Sprungscript schon.
Wenn du nur Enter ueber den Maker abfragst, dann hast du immer die gleiche Sprungroute. Ueber den Keypatch kannst du auch abfragen, ob die Taste gedrueckt bleibt. Damit kannst du fuer jede 0.1 Sekunde, die die Taste gedrueckt ist, den Held weiterbewegen.
Verstehst du was ich sagen will?
--
"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"
Naja im Prinzip brauchst du den Keypatch fuer ein gutes Sprungscript schon.
Wenn du nur Enter ueber den Maker abfragst, dann hast du immer die gleiche Sprungroute. Ueber den Keypatch kannst du auch abfragen, ob die Taste gedrueckt bleibt. Damit kannst du fuer jede 0.1 Sekunde, die die Taste gedrueckt ist, den Held weiterbewegen.
Verstehst du was ich sagen will?
...
Prinzipiell schon. Naja, ich schaue mal wie ich es umsetze. Am besten wohl alles beide ausprobieren.
@Beril:
Nein, eigentlich braucht man den Key-Patch nicht um abzufragen ob die Taste noch gedrückt ist. Du baust den Sprung-Skript einfach in einzelnen Segmenten für jede Bewegung auf.
Als erstes kommt ein "Enter Password" das die Leertaste abfragt mit "Wait until Key hit" darunter dann ein weiteres "Enter Password" (natürlich mit anderer Variable). Dies fragt ohne "Wait until Key hit" ab, ob eine Pfeiltaste gedrückt wird. Nun kommt eine Fork die erstmal haben will das die erste Variable auf 5 steht. Ist sie das wird mit einer neuen Fork gefragt ob die zweite Variable 2 (Links) oder 3 (Rechts) ist. Ist sie 2 bewegt sich der Held "Left-Up", ist sie 3 bewegt er sich entsprechend "Right-Up". Hast du einmal dieses Segment kannst du es kopieren und noch einmal darunter setzen. Dabei musst du nur beachten, das du die erste Abfrage nicht mehr auf "Wait until Key hit" stehen hast. Spuckt er dir nämlich beim zweiten oder späteren Segment bei der ersten Abfrage aus das der Wert nicht 5 ist (also 0) dann wirst du per Lable ganz zum Ende gesetzt und der Sprung endet. Somit kannst du abfragen ob die Taste noch gedrückt wird und damit den Spung steuern. Außerdem ist es so auch ganz einfach die Länge der Sprünge einzustellen. (Wird bei der zweiten Tastenabfrage weder 2 noch 3 ausgespuckt muss er sich natürlich gerade nach oben bewegen.)
Ich hoffe du konntest alles verstehen, wenn nicht lade ich dir ein Beispiel hoch
@Beril:
Nein, eigentlich braucht man den Key-Patch nicht um abzufragen ob die Taste noch gedrückt ist. Du baust den Sprung-Skript einfach in einzelnen Segmenten für jede Bewegung auf.
Als erstes kommt ein "Enter Password" das die Leertaste abfragt mit "Wait until Key hit" darunter dann ein weiteres "Enter Password" (natürlich mit anderer Variable). Dies fragt ohne "Wait until Key hit" ab, ob eine Pfeiltaste gedrückt wird. Nun kommt eine Fork die erstmal haben will das die erste Variable auf 5 steht. Ist sie das wird mit einer neuen Fork gefragt ob die zweite Variable 2 (Links) oder 3 (Rechts) ist. Ist sie 2 bewegt sich der Held "Left-Up", ist sie 3 bewegt er sich entsprechend "Right-Up". Hast du einmal dieses Segment kannst du es kopieren und noch einmal darunter setzen. Dabei musst du nur beachten, das du die erste Abfrage nicht mehr auf "Wait until Key hit" stehen hast. Spuckt er dir nämlich beim zweiten oder späteren Segment bei der ersten Abfrage aus das der Wert nicht 5 ist (also 0) dann wirst du per Lable ganz zum Ende gesetzt und der Sprung endet. Somit kannst du abfragen ob die Taste noch gedrückt wird und damit den Spung steuern. Außerdem ist es so auch ganz einfach die Länge der Sprünge einzustellen. (Wird bei der zweiten Tastenabfrage weder 2 noch 3 ausgespuckt muss er sich natürlich gerade nach oben bewegen.)
Ich hoffe du konntest alles verstehen, wenn nicht lade ich dir ein Beispiel hoch
mfg
Phönix Tear
...
Jo, verstanden habe ich es mehr oder weniger.^^
Wäre toll wenn du mir ein Beispiel hochladen könntest.
Okay das wusst ich nich, dass das geht. wieder was gelernt.
Danke Phoenix.
Also kann man quasi gedrueckt halten einfach abfragen, indem man ohne "Wait Until Key Hit" Enter Pwd macht?
Das is ja kewl.
Man lernt nie aus.
--
"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"
hehe, ich hab mir jetzt auch mal den Code zu Inelukis Jump&Run angeschaut. Dabei bin ich auch zu dem Ergebnis gekommen das er es einfach mit einem Enter-Password ohne "Wait until Key hit" macht ^^°. (Enttäuschend, nicht war?)
Allerdings hat er es in einem extra Common-Event eingebaut welches da ist:
Ich habe mir den Rest jetzt nicht angeschaut aber wenn ich das richtig verstehe schaut dieses Event lediglich ob die Leertaste noch gedrückt ist, wenn nicht wird der Sprung abgebrochen... So kann man das natürlich auch machen, wobei ich eher bei dem "Segment-Sprung" bleibe, da dieser (für mich) übersichtlicher und leichter zu ändern ist. In Inelukis Beispiel ist zwar auch noch die ganze Abfrage nach Wandsprung etc. eingebaut, trotzdem ist der Code da viel "offener" und nicht so schön komprimiert. Dadurch muss man ständig hin und her schalten. Der Komprimierte wirkt zwar auf den ersten Blick eigentlich länger, ist dies jedoch nicht da man ja bei jeder Änderung einfach alle weiteren Segmente löschen kann, das erste editieren, kopieren und neu einfügen kann bis man wieder die alte Anzahl hat (nur nicht vergessen beim zweiten und allen folgenden das "Enter Password" auf "do NOT Wait until Key hit" zu stellen ).
Ein Segment sieht dann folgendermaßen aus:
Mit den Farben wirkt es am Anfang ein bisschen verwirrend, aber wenn man sich erst mal darauf konzentriert und eingestellt hat, geht das schon. Ich denke es ist recht offensichtlich das jede Farbe für eine Fork-Condition steht. Damit ist es leichter zu überblicken welche Fork bis wohin führt. Allerdings ist zu beachten das nach dem sich die Farben wiederhohlen da auch der ganze Code wiederholt wird (nur das statt 2 da eine 3 steht und statt "Move - Left-Up", "Move - Right-Up"). Ganz am Ende geht dann die erste Fork weiter (Grün) welche dann auch bis zum Ende weiterlaufen wird. So sind alle ineinander verschachtelt...
Sicherlich ist dir auch aufgefallen das drei mal in diesem Code ein "Goto Lable 1" auftaucht. "Lable 1" muss hier ganz am Ende des Events sein wenn alle Switches die du später noch einbaust (für Schadensberechnung oder auch Wandsprung, etc.) wieder ausgeschaltet werden. Also einfach nach der letzten Bewegung.
Damit du da besser durchblickst erkläre ich dir dieses Segment noch mal anhand zweier Teilstücke:
Hier wird erst gefragt ob die Leertaste gedrückt ist, wenn ja wird gefragt ob und wenn, welche Pfeiltaste gedrückt wird.
Erst wird abgefragt ob die Pfeiltaste Links gedrückt wird (wenn nicht geht es ja gleich zum Else und da wird dann alles für Rechts und auch für "Keine Taste" wiederholt). Dann wird zwecks der Bewegungskontrolle die Y-Koordinate des Helden abgespeichert und eine Bewegung nach Links-Oben durchgeführt (wird nicht wiederholt und ignoriert wenn etwas im Weg ist). Da diese Bewegung entweder ganz oder gar nicht durchgeführt wird (steht z.B. nur Links etwas im Weg bewegt er sich nicht einfach nur nach oben) wird danach erneut die Y-Koordinate des Helden abgespeichert (X brauchen wir aus diesem Grund ja nicht). Sind nun beide Koordinaten gleich (sowohl vor als auch nach der Bewegung) wissen wir das sich der Held nicht bewegt hat. Daraus schließen wir, dass etwas im Weg steht. Da wir nun aber nicht wissen ob dieses Etwas neben oder über dem Helden ist wiederhohlen wir die ganze Prozedur, allerdings nur mit einer Bewegung nach oben (nicht zu den Seiten da der Held ja sonst eine Zeit unter der Decke "gleiten" könnte). Findet auch da keine Bewegung statt springen wir gleich zum ende des kompletten Events (der Held hat sich also an der Decke den Kopf gestoßen und fällt nun wieder runter ). Mehr wird da gar nicht gemacht.
Wenn du willst das der Held unter der Decke gleiten kann, kannst du da ja einfach unter der Abfrage "nur nach oben" auch noch eine Abfrage "nur nach Links" einfügen. Das funktioniert dann nach dem selben Prinzip, nur das du auch noch eine X Koordinate brauchst.
Das wir dann gleich zum Ende des Events springen hat den Sinn das wir ja auch noch ein "Schwerkraft" Event brauchen. Dieses wird abgeschaltet sobald der Held springt (z.B. mit dem Switch "Schwerkraft aus", oder "Sprung an"). Dieser wird ganz zu Anfang des Events eingeschaltet (sonst hebt sich die Bewegung des Sprunges und die der Schwerkraft auf ("Move up" + "Move down" = "Move Up-Down" (sieht ziemlich schrecklich aus ^^°))) und zum Ende wieder ausgeschaltet. Würden wir nun nicht gleich zum Ende springen könnte sich der Held noch eine kurze Zeit unter der Decke bewegen bevor das Event von sich aus zum Ende kommt (die Bewegung wird ja nicht ausgeschaltet). Das sieht dann auch nicht gerade toll aus...
Das Schwerkraft-Event kann unterschiedlich kompliziert aufgebaut sein. Wenn der Held einfach nur runterfallen soll (ohne Bewegungsmöglichkeiten) sieht das so aus:
Die etwas kompliziertere Variante benutzt dabei noch einen weiteren Switch, den "Held fällt" Switch. Dies funktioniert dann fast genau so wie das Sprung-Event, nur in die andere Richtung. Das heißt du fragst ab ob eine Pfeiltaste gedrückt wird (rechts-links), dann bewegst du, wenn die Bewegung nicht stattgefunden hat (siehe die Koordinaten-Speicherung oben) bewegst du nur nach unten, geht auch das nicht machst du den Switch "Held fällt" aus und ermöglichst einen neuen Sprung (dann braucht das Sprung-Event z.B. als Bedingung das der Switch "Held auf Boden" an ist, welcher am Ende dieses Events an- und am Ende des Sprung-Events ausgeschaltet wird).
Ich hoffe du konntest alles so einigermaßen nachvollziehen...
mfg
Phönix Tear
Geändert von Phönix Tear (03.10.2005 um 13:08 Uhr)
Pferdchen man wie dum muss man sein um so zu sein wie du ? XD du hast doch schon mehr als 10 Sprungn Tuts und von denen hast du noch kein einziges verstanden ??? Wie geht den das man..frag dem Schmant junge junge
Pferdchen man wie dum muss man sein um so zu sein wie du ? XD du hast doch schon mehr als 10 Sprungn Tuts und von denen hast du noch kein einziges verstanden ??? Wie geht den das man..frag dem Schmant junge junge
...
Ruck zuck wirst du gebannt, und dann wieder. Hey Leute:
DAS IST ARETURES, BANNT IHN WIEDER!!!
Stimmt das ich schon mehrere Tuts hatte, die hatte ich auch verstanden, aba dieser Sprung soll ganz anders sein als du denkst. Nur weil du gebannt wurdest, musst du deine scheiß Wut nicht an mir auslassen. Dein Problem das du gebannt worden bist und das auch noch zu recht.xD
Was labberst du da mein dummer BRUDER WAR Aretures ... der Idiot hat Dingsie beleidigt... hätte ich auch gemacht...war an dem Tag aber nicht da also du sau erzäl keine scheiße!