PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schnelles drücken der Enter Taste



Klunky
30.11.2007, 18:38
So ich habe mal eine (hoffentlich) etwas anspruchsvollere Frage und zwar wollte ich fragen wie man machen kann das man Oft genug die Enter taste drücken muss um etwas auszulösen (circa 200x). Aber wen man es nicht in der angegebenen Zeit schafft es nochmal probieren muss?
Das ganze Soll dann auch noch mit einer Leiste die deinen Vorschritt zeigt angezeigt werden. also sowass wie ein pic was dann auch irgendwie an der richtigen Position sein müsste.

Man kann es am leichtesten mit Armdrücken vergleichen wo man den gegner besiegen müsste bevor er deinen arm runterkriegt (obwohl ich was anderes geplant habe.)

Edit: Ups mir fällt gerade ein da sich im falschen Forum war habe nicht richtig geachtet.
bitte verschieben.

Nemica
30.11.2007, 18:56
Hm, du kannst für die Zeit nen Timer laufen lassen, und fürs Enterbashen
einene PP, der abfragt, ob Enter gedrückt wurde und dann eine Variable um
1 hochzählt. Wenn die Zeit aus ist oder die Variable die Zahl erreicht hat,
brichst du mit nem Kontroll-PP ab.

Oder brauchst dus genauer?

MA-Simon
30.11.2007, 19:04
200...mal? o.O

Ähm schraube das mal so auf 50-60 runter, man möchte seine Tastatur ja gerne noch etwas länger behalten, gerade wenn man einen laptop besitzt wie meine wenigkeit.

Also, benutz einfach einen Parallel Process Timer, der die Zeit misst.

Dan machtst du eine Parallelle Tasten abfrage, ob du die eingabe taste gedrückt hast. Wurde sie gedrückt, setzt du eine Variable mit dem Namen "tastendruck" auf +1. Dann startest du das paralel event wieder vo voren.

Ein drittes Parralel event^, fragt während dessen die ganze Zeit ab, ob der Wert der Variable ("tastendruck"), den nun schon 60 (oder 200) erreicht hat. Passiert dies, stoppst du die beiden anderen events und... naja, führst eben die entsprechende fortführende Aktion aus.

Springt aber der Timer vor beendigung der Aktion auf 0. SO brichst du die beiden anderen events ab und führst die andere Aktion aus.

Im prinzip ganz einfach.


Jetzt möchtest du ja Armdrücken mit Anzeige...
(Die anzeige der Variable in bilder erkläre ich ma nu nicht, musst du selbst wissen)

Mach einfach noch ein weiteres Parralel event, das mit einer Variable "Tastendruckpc" den "tastendruck" des Digitalen gegners simuliert. Zb indem du die variable des gegners beständig zum 1-2 erhöst. Dazu kannst du auch noch ein weiteres Event schalten das zb eine Zufällige Variable zwischen 0-3 generiert um dem ganzen mehr zufall zu geben. Ist dan der wert des gegners bei 60 oder so, kanst du ja dann die Aktion des gegners ausführen usw.

Ich hoffe, das konnte helfen (;

mfg Simon

Tower
30.11.2007, 19:12
Man kann auch, zur Erhöhung des Schwierigkeitsgrades, ein Extra Event dazusetzen, dass alle paar frames den Zähler verringert. ;)

bluedragon05
01.12.2007, 09:36
(...)
Dan machtst du eine Parallelle Tasten abfrage, ob du die eingabe taste gedrückt hast. Wurde sie gedrückt, setzt du eine Variable mit dem Namen "tastendruck" auf +1. Dann startest du das paralel event wieder vo voren.

Ein drittes Parralel event^, fragt während dessen die ganze Zeit ab, ob der Wert der Variable ("tastendruck"), den nun schon 60 (oder 200) erreicht hat. Passiert dies, stoppst du die beiden anderen events und... naja, führst eben die entsprechende fortführende Aktion aus.
(...)

Lohnt es sich wirklich für eine kleine Abfrage noch ein 3.Parallel-Event zu starten? Das ganze (ausser der Tmer) ließe sich doch auch bestimmt in einem PP-Event verwirklichen, wenn man das ungefähr so machen würde:


PP-Event: Wartet auf Tastendruck des Spielers
Enter Password(0001: taste)
if (taste == 5) // Fragt ab, ob gewünschte Taste (enter=5) gedrückt wurde.
<> if( 0002:tastendruck >= 60) // Ist das Limit erreicht?
<> <> // hier kommen dann die Aktionen beim Erreichen der Aufgabe hin
<> else
<> <> Var(0002: tastendruck) +1;
<> end
end

Oder wenn ich doch noch ein 3.Event mache, dann als Abbruchsevent, dass nicht nur das Limit der Tastendrücke überprüft, sondern auch den Timer.
Das könnte man dann evtl. auch als Call-Event benutzen, das zu einem bestimmten Zeitpunkt (z.B. nach dem Tastendruck) aufgerufen wird.

Soweit ich weiß können nämlich zu viele Parallel-Events und zu viele Abfragen zur gleichen Zeit die Performance runterdrücken, weshalb ich auch nicht unbegründet noch ein 3.PP-Event machen würde.

Caine Luveno
05.12.2007, 13:59
Soweit ich weiß können nämlich zu viele Parallel-Events und zu viele Abfragen zur gleichen Zeit die Performance runterdrücken, weshalb ich auch nicht unbegründet noch ein 3.PP-Event machen würde.

Bei 2 oder 3 Events lohnt es sich kaum. Bei 10+ kann man drüber nachdenken.

Was die Performance angeht: Auch Fork Cinditions kosten leistung und mindestens eine in deinem Code ist überflüssig ;) Denn wenn man im Enter Password Befehl NUR eine Eingabe der Enter-Taste zulässt fällt die Fork Condition ob diese Eingabe = 5 ist raus.

Event für die Tastenabfrage (inklusive Siegesbedingung).


Enter Password: Variable Tastendruck (wait until key hit, und NUR die Enter Taste zulassen)
Change Variable: AnzahlGedrückt +1;
Fork Condition: Var. AnzahlGedrückt=50
//Was auch immer bei einem Sieg passieren soll

Change Switch: SpielLäuft OFF
End;


Event für die Zeitabfrage inklusive Abbruchsbedingung)


Wait 1,0sec.
Change Variable: Zeit + 1
Fork Condition: Var. Zeit = 60 //1 Minute
//Was auch immer passieren soll wenn die Zeit abgelaufen ist

Change Switch: SpielLäuft OFF
End;


Beim Spielstart muss der Switch SpielLäuft auf ON gestellt werden sowie die Variablen Zeit und AnzahlGedrückt auf 0 gesetzt werden. Beie Paralell Process Events rbauchen als Startbedingung den Switch SpielLäuft ON.

Nun könnte man noch per Event Leisten Anzeigen lassen welche Zeit und Fortschritt darstellen. Wennn diese frei platzierbar sein sollen: Pictures. Letzteres ist aber aufwendiger.

Frozen Bambi
08.12.2007, 08:35
Das mit der Leiste is doch einfach.
Oben nen schwarzen Balken mit nem transparenten Kasten drin anzeigen.
Ne ellenlange Leiste drunter, die unter dem ganzen liegt.
Die Tastendrück Variable wird zur X Koordinate des Balkens (meinetwegen kannste auch ne zweite sich parallel dazu erhöhen lassen) nach jedem Tastendruck lässte das Bild (aber bitte ohne wait until moved) auf die neuen Koordinaten rüberbewegen, müsste eigtl. klappen O.o (Irrtümer vorbehalten)