Hallo ich arbeite an einem Spiel und ich habe ein Objekt. Auf diesem Objekt habe ich Berührungsereignis. Ich habe eine Überprüfung auf die Berührung hinzugefügt, auch wenn die Berührung weniger als 250ms ist, halte es für einen Tipp, ansonsten halte es für eine Berührung. Beim Antippen erhöht sich der Wert um 10 Punkte. Ich möchte Werte um den Wert 1 dekrementieren, solange das Objekt I gedrückt wird, ich habe den Code hinzugefügt, aber es tut es nur einmal.Keep dekrementieren Wert auf lange drücken in Corona SDK
Die Frage ist: Wie kann ich einen Wert dekrementieren, solange ein Berührungsereignis aufgezeichnet wird? Der Code wird als Referenz zur Verfügung gestellt
local function countTaps(event)
if event.phase == "began" then
beganTime = event.time
elseif event.phase == "ended" then
endedTime = event.time
if (endedTime - beganTime) < 250 then
climbUp()
return true
else
climbDown()
end
end
Allerdings bestimmt dieser Code die Berührung/Berührung, sobald es fertig ist. Was kann die bessere Laufzeitalternative sein?
Weitere Informationen zu [timer] (https://docs.coronalabs.com/api/library/timer/performWithDelay.html), [timer.pause()] (https://docs.coronalabs.com/ api/library/timer/pause.html) und [timer.resume()] (https://docs.coronalabs.com/api/library/timer/resume.html) Funktionen sind hier nützlich. – ldurniat
es führt es nur einmal aus, wenn ich sie wie angegeben hinzufügen. –
Es gibt ein optionales Iterationsargument für 'performWithDelay()', das es wiederholt auslöst, wenn Sie den Wert 0 oder -1 angeben. Aus der Dokumentation: 'timer.performWithDelay (Verzögerung, Listener [, Iterationen])'. Um zum Beispiel 'climbDown' alle 200 ms (ungefähr) aufzurufen, würden Sie 'timer.performWithDelay (200, absteigen, -1)' verwenden. – GoojajiGreg