Archiv verlassen und diese Seite im Standarddesign anzeigen : Erweitertes Laufscript auf gehaltener Taste
The_question
29.10.2009, 14:11
Tag, liebe Leute.
Verzeiht, wenn ich euch mit so einer stumpfen Frage anhau', aber ich bin anscheinend zu dumm für sowas.
Mein Problem ist das Folgende:
Ich möchte ein Laufscript in meinem Spiel realisieren.
Mein Held soll bei gehaltener Leertaste anfangen zu laufen.
Lässt man nun Leertaste los, soll Held ganz normal weitergehen.
Optional dazu (eventuell als zweites Script):
Sobald Held anfängt zu laufen, soll eine Ausdauerleiste erscheinen, die mit vergehender Laufzeit geringer wird. Ist Ausdauer bei 0, soll der Held wieder gehen.
Lässt man nun Leertaste los, soll Held ganz normal weitergehen und die Ausdauerleiste soll sich wieder füllen.
Ich hab' hier im Atelier ein paar Laufskripte gefunden, jedoch krieg' ichs nicht gebacken, eins derart umzubasteln, dass es meine Forderungen erfüllt.
Um Hilfe wird dringend gebeten!
Herzlichen Dank im Vorraus
Tq
Stummboy
29.10.2009, 15:21
Du müsstest dir den Keypatch runterladen und ihn konfigurieren (hier ist das Tutorial (http://home.arcor.de/makenshi/page/tastenpatch.html))
Dann erstellst du bei den Common Events ein Parallel Process Event mit der Bedingung das der Switch "Bewegungsfreiheit" aktiviert ist (du musst den Switch einfach immer einschalten wenn der held laufen darf).
In diesem Event fragst du ab ob die Leertaste gedrückt wird (wie das geht steht m Tutorial). Sollte das zutreffen erhöhst du mit einem Move-Event die Laufgeschwindigkeit des Helden. Dann bennenst du einen weiteren Switch den du "Laufphase" nennen kannst, und aktivierst ihn.Dannach machst du nach der End Case dieser Abfrage eine weitere Abfrage die überprüft ob der Switch "Laufphase" aktiviert ist(setz hier das Häckchen bei "else Case"). In diese Abfrage kommt eine weitere Abfrage bei der gefragt wird ob die Leertaste immer noch gedrückt wird. (others than x )
Sollte das zutreffen schaltest du den Switch "Laufphase" ab und veringerst die Laufgeschwindigkeit wieder.
Bei der Else Case dieser Abfrage benutzt du den Befehl "Enter passwort" (auf der dritten Seite der Event Befehle) und machst das Häckchen bei "Wait until Key hit" weg(Die Variable die du bestimmtst kannst "tastenabfrage" nennen).Dann machst du erst eine Abfrage ob die Variable "tastenabfrage"größergleich 1 ist und diese Abfrage ob die Variable kleinergleich 4 ist.
In dieser Abfrage veringerst du dann die Variable "Ausdauer" um ein 1.
In der else Case der Abfrage des Switches "Laufphase" erhöhst du die Variable "Ausdauer" einfach um eins sollte sie nicht 100 sein.
Ganz am Ende setzt du dann einen Wait-Befehl.
Das mit der Leiste müsstest du glaub ich selbst hinkriegen.
mfg Stummboy
uninspired
29.10.2009, 15:26
Hier ist das Event, in einem parallelen prozess machen und dann müsste das klappen
http://img251.imageshack.us/img251/3765/asdj.png
leider ist da noch ein bug drin, den ich nicht ganz weg kriege, wenn man immer wieder enter gedrückt hält und schnell hintereinander drückt, wird der held ganz ganz schnell und wird auch nicht mehr langsamer xD
wichtig ist, dass bei der tastenabfrage KEIN Häkchen bei "auf tastendruck warten" ist
LG
cenny
Ach T_Q sag doch was D: ich mach dir das schon^^
Edit:
@Cenedy
Dein ganzes System wird auch so nicht auf dauer funktionieren. zb würde dein Script nichr merken, wenn der Held gegen eine Wand läuft, denn wie ich T_q kenne, will er sicher auch Rennposen dazu machen, dazu kommt immer noch die Ausdauerleiste, die du nicht mal angedacht hast^^ So ein Laufscript im Maker ist oberflächlich sehr einfach, mag man denken. Ist aber imho nicht so. Verschieden Faktoren spielen da noch eine Rolle (Etwa weiß ich zufällig für welches Projekt das laufscript hier sein soll, daher würde dein System viele probleme mit sich bringen).
Lachsen ist meiner Meinung nach einer der wenigen die ein gutes Rennscript haben (etwas viel gescriptet, zugegeben 8D)
leider ist da noch ein bug drin, den ich nicht ganz weg kriege, wenn man immer wieder enter gedrückt hält und schnell hintereinander drückt, wird der held ganz ganz schnell und wird auch nicht mehr langsamer xD
Das ist simpel wegzukriegen. Anstatt nur einmal die Geschwindigkeit zu ändern steuert man erst das die Maximal-/Minimalgeschwindigkeit an (also z.B. 5x verlangsamen) und erst dann stellt man die gewünschte Geschwindigkeit ein. Dann dürfte das nicht passieren.
mich würde der code zu so einem skript aber auch intressieren rd könntest du hier vlt ne rohfassung ohne edits für t_qs game posten weil ich versuch das auch ganze zeit für mein game umzusetzen:(
uninspired
08.11.2009, 11:09
EDIT:
>_< denken, dann posten
sry
mich würde der code zu so einem skript aber auch intressieren rd könntest du hier vlt ne rohfassung ohne edits für t_qs game posten weil ich versuch das auch ganze zeit für mein game umzusetzen:(
Öhm, joa hier:
- SCRIPT -
<> Move Event: Hero, Frq 8, Pattern: Chg graphic to Ins_Clara #0, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Dec spd, Dec spd, Dec spd
<> Wait: 0,0 sec.
<> Label: 1
<> Key Input Processing: Var. [61], Keys: Decision
<> Fork Condition: If Variable [61] == 5 then ...
. <> Move Event: Hero, Frq 8, Pattern: Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Dec spd, Dec spd
. <> Change Variable: [62] = X position on map (tiles) of hero
. <> Change Variable: [63] = Y position on map (tiles) of hero
. <> Wait: 0,1 sec.
. <> Change Variable: [62] -= X position on map (tiles) of hero
. <> Change Variable: [63] -= Y position on map (tiles) of hero
. <> Fork Condition: If Variable [62] == 0 then ...
. . <> Fork Condition: If Variable [63] == 0 then ...
. . . <> Move Event: Hero, Frq 8, Pattern: Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Dec spd, Dec spd, Dec spd
. . . <> Jump To Label: 1
. . . <>
. . : End of fork
. . <>
. : End of fork
. <> Comment: ........................................................................................................................
. <> Comment: Grafik ändern + Geschwindigkeit Up
. <> Comment: ........................................................................................................................
. <> Move Event: Hero, Frq 8, Pattern: Chg graphic to Ins_Clara_Energie #0
. <> Fork Condition: If Switch [62] == OFF then ...
. . <> Change Switch: [62] = OFF
. . <>
. : End of fork
. <> Label: 3
. <> Key Input Processing: Var. [64], Keys: Directional keys, Decision
. <> Fork Condition: If Variable [64] != 5 then ...
. . <> Move Event: Hero, Frq 8, Pattern: Chg graphic to Ins_Clara #0, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Dec spd, Dec spd, Dec spd
. . <> Jump To Label: 1
. . <>
. : End of fork
. <> Change Variable: [62] = X position on map (tiles) of hero
. <> Change Variable: [63] = Y position on map (tiles) of hero
. <> Wait: 0,1 sec.
. <> Wait: 0,0 sec.
. <> Wait: 0,0 sec.
. <> Change Variable: [62] -= X position on map (tiles) of hero
. <> Change Variable: [63] -= Y position on map (tiles) of hero
. <> Fork Condition: If Variable [62] == 0 then ...
. . <> Fork Condition: If Variable [63] == 0 then ...
. . . <> Move Event: Hero, Frq 8, Pattern: Chg graphic to Ins_Clara #0, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Inc spd, Dec spd, Dec spd, Dec spd
. . . <> Wait: 0,1 sec.
. . . <> Jump To Label: 1
. . . <>
. . : End of fork
. . <>
. : End of fork
. <> Jump To Label: 3
. <>
: End of fork
<> Comment: ........................................................................................................................
<> Comment: Überprüfe ob Rennen beendet werden soll
<> Comment: ........................................................................................................................
<> Fork Condition: If Switch [63] == ON then ...
. <> Jump To Label: 2
. <>
: End of fork
<> Wait: 0,0 sec.
<> Fork Condition: If Switch [63] == ON then ...
. <> Jump To Label: 2
. <>
: End of fork
<> Wait: 0,0 sec.
<> Fork Condition: If Switch [63] == ON then ...
. <> Jump To Label: 2
. <>
: End of fork
<> Wait: 0,0 sec.
<> Jump To Label: 1
<> Label: 2
<> Comment: ........................................................................................................................
<> Comment: Rennen wird komplett beendet (Auch die Ausdauerleiste!)
<> Comment: ........................................................................................................................
<> Change Switch: [61] = OFF
Da sind noch einige Dinger von T_q dabei, aber egal. Ungefähr so sieht der Sourcecode grad aus.
Das Ganze kommt später in ein CE als PP, daher gibt es eine abfrage falls es sofort beendet werden soll (normalerweise hält der Maker ein PP an wenn man es stoppt und beginnt bei Wiederaufnahme nicht von vorn).
omg^^
kleine frage am rande was sicher auch andere intressieren wird deswegen stell ich sie hier und nich per pn...was isn da alles drinne das der sourcecode so lang is?
EDIT:BIN ICH UNSOZIAL EY-.-" beiner vergessen mich zu bedanken^^
Erstmal ist eine Abfrage drin OB die Rennpose überhaupt gezeigt werden darf, da man erst rennt wenn man Enter gedrückt hält. Dazu wird der hält ohne Grafikchange beschleunigt und dann in einem Intervall gecheckt ob man sich immernoch auf dem gleichen Tile befindet, wenn nicht dann gehts in die "until Not Enter"-Schleife. Die läuft solange wie man Enter gedrückt hält oder bis man wo gegen rennt.
Jo... so ist das^^
Bitte nich krumm nehmen wenn ichs nicht genauer erkläre, in sowas bin ich absolut schlecht.
was isn da alles drinne das der sourcecode so lang is?
Oh, der Code wird mit Ausdauerkram noch ein ganzes Stück länger, je nach Machweise.
@T_q und R.D.:
Das mit der Ausdauerleiste würde ich mir nochmal stark überlegen. Ich habe das selbst einmal für ein Spiel gebastelt, wo wir letzten Endes aber zu dem Schluss gekommen sind, dass das auf Dauer nervt, wenn die Stamina zu niedrig ist. Ist sie aber zu hoch, hat es auf Dauer keinen Nutzen. Das Nächste war dann das Aufladen, was entweder sehr schnell gehen muss, damit es nicht zur Last fällt, oder es geht wieder zu langsam (auch das Mittelmaß ist zu langsam) und das nervt wieder. xD
Keine Sorge, Das Ausdauerding hat mit einem System zu tun, das T_q benutzt, das setzt also nur ein wenn man so ein Dingesn an hat und 5 sekuden rennt xD
T_q kanns besser erklären xD
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.