Ich mache ein 2D-Spiel für ein Handy Ich brauche einen kleinen und großen Sprung für den Charakter Ich hatte eine Menge Schwierigkeiten, Einheit zu bekommen, um den Unterschied zu sagen zwischen einem Tippen (für einen kleinen Sprung) und einem Niederhalten (für einen großen Sprung).Verschiedene Sprünge zwischen Tippen und gedrückt halten (C#)
Antwort
Sie könnten überprüfen, ob das Zeichen in der Luft ist und dass die Geschwindigkeit nicht 0 und in einer Richtung nach oben ist. Wenn dies der Fall ist, bedeutet dies, dass der Charakter (höchstwahrscheinlich) gesprungen ist. Dann, wenn dies wahr ist, nach einer kurzen Zeit (verwenden Sie einen Timer hier), überprüfen wir auch, ob der Spieler immer noch den Bildschirm drückt oder nicht. Wenn sie immer noch auf den Bildschirm drücken, fügen Sie dem Zeichen mehr Kraft hinzu, bis die Höhe des größeren Sprungs erreicht ist.
Pseudocode:
if (player presses screen)
{
// Add small impulse to make the character jump to the "minimum jump height"
// Start timer
if (character's velocity is upwards and they are not grounded)
{
if (timer is greater than your chosen time)
{
// Add another impulse so character jumps to the "maximum jump height"
// Stop and reset timer
}
}
}
Dies ist eine grundlegende Plan ist, es ist nicht perfekt, aber es sollte Ihnen den Einstieg; Es gibt viele Möglichkeiten, dies zu tun - Sie sollten in Betracht ziehen, Force
statt Impulse
zu verwenden, wenn Sie eine wirklich variable Sprunghöhe wünschen. Weitere Informationen finden Sie in der Unity-Dokumentation für .
Hinweis: Es ist besser Praxis Physik Aktionen in FixedUpdate()
anstatt in Update()
anzuwenden. Dies macht es komplizierter, da Sie in der Regel die Playereingabe in Update()
überprüfen möchten. Dies ist jedoch ein notwendiger Schritt, um Probleme mit physikbasierten Aktionen zu vermeiden.
- 1. Tippen und halten (lange drücken)
- 2. iOS drücken und halten Geste + tippen
- 3. Schwemme - eine Taste gedrückt halten
- 4. Tippen und halten Sie in Javascript. Etwas funktioniert nicht
- 5. Hololens Navigation mit Tippen und halten Gesten Bug?
- 6. Taste gedrückt halten, wenn andere Tasten nicht gedrückt werden
- 7. Wenn Sie zwei Tasten gleichzeitig gedrückt halten
- 8. Wie kann ich die Maustaste gedrückt halten, die über ein winforms-Steuerelement gedrückt wird?
- 9. Vue.js verhindern Layout-Sprünge
- 10. Win32 Montage bedingte Sprünge
- 11. Assembly mehrere bedingte Sprünge
- 12. C# share verschiedene dlls zwischen verschiedenen exe's
- 13. So senden Sie Schlüssel Control + A + B? (Kontrollmodifikator gedrückt halten)
- 14. Verschiedene Stile auf Schaltfläche anwenden, wenn gedrückt
- 15. direkte und indirekte Aufrufe/Sprünge in der Ausgabe von objdump
- 16. C# Messintervall zwischen Tastatur-Keydown und Keyup?
- 17. Kennwort halten verschiedene Daten (phpMyAdmin Datenbank)
- 18. Sortierbare Sprünge außerhalb des Containers
- 19. Android zu erkennen, wenn Sie eine Taste gedrückt halten
- 20. C# und Unity3D während der Schlüssel gedrückt wird
- 21. So erkennen Sie eine lange Betätigung (gedrückt halten) der Hardwaretasten
- 22. Sprünge mit ansprechenden Bildern verhindern?
- 23. Offset wird nicht aktualisiert während Mausklick Ereignis während eines Klickes gedrückt halten und ziehen
- 24. Bindung zwischen UI und JavaScript: Verschiedene Bereiche?
- 25. CodeName1 - Verschiedene Antwortcodes zwischen ipa und Quellcode
- 26. Oracle verschiedene Ergebnisse zwischen sqldeveloper und PHP
- 27. Elasticsearch - Verschiedene zwischen indices.fielddata.cache.size und indices.fielddata.breaker.limit
- 28. Dynamisches Tippen ohne Ente tippen?
- 29. C# und MySQL Command - zwei verschiedene Syle?
- 30. Interop zwischen C++ und C#
berechnen Sie einfach die Eingabezeit, die über den Wasserhahn selbst passiert. –
Ich versuche dies, indem ich einen countDown-Timer verwende, aber es endet häufig mit der Anwendung beider Fälle. –
Könnten Sie dem Beitrag den Code hinzufügen, damit die Community Ihnen besser helfen kann? Sonst werden wir nicht wissen, was Sie versucht haben/versuchen –