Joystick (Gamepad) Bewegungen erkennen
Übersicht

![]() |
Kernle 32DLLBetreff: Joystick (Gamepad) Bewegungen erkennen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiho,
ich beschäftige mich schon etwas länger (gedanklich) damit wie man einem BlitzBasic Programm (oder auch einfach allgemein) beibringen könnte bestimmte Bewegungen des Joysticks (oder auch der Maus, gleiches Prinzip dneke ich mal) zu erkennen. Was meine ich genau ? Z.b. eine Kreisbewegung, etc. . Das einzige Game was mir spontan einfällt was soetwas benutzt ist Fahrenheit (Edit: Harry Potter 1-3 Zauber lernen, einige NDS Games), aber da liegt der Unterschied dazu (korrigiert mich wenn es falsch ist) dass das Programm genau weis, was in diesem Moment verarbeitet werden muss. Bei meinen Überlegungen müsste das Programm erkennen was der User meinen könnte, und hat so keine echte Bezugsgrundlage... oder ? (Kombiniert mir meinen unteren Überlegungen: Alle Bewegungsmuster jeden Frame durchzugehen klingt nach einer absoluten Performence Verschwendung) Zusätzlich stellt sich mir die Frage wie ich die Daten speichern müsste um sie sinnvoll vergleichen zu können. Jeden Frame die Position speichern und dann nach.. sagen wir 1-3 Sekunden das enstandene Datenbild mit vorhandenen "Vorlagen" abgleichen erscheint mir etwas... Unklug. Hat sich schon jemand damit beschäftigt ? Ich habe mal versucht hier zu suchen, konnte aber nichts brauchbares finden. Vermutlich weil mir kein Stichwort zu meinem Problem einfällt. Da ich mich auch bisher erst gedanklich mit dem Thema beschäftigt habe gibt es auch keinen Code um irgentwas zu zeigen. Mir fehlt schlicht der Gedankenblitz um a) Die Bewegungsdaten sinnvoll zu speichern und b) sie mit Bewegungsvorlagen zu vergleichen. So long, Kernle |
||
- Zuletzt bearbeitet von Kernle 32DLL am Fr, Jul 11, 2008 20:45, insgesamt einmal bearbeitet
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutzereingaben brauchst du dann speichern nur, wenn du explizit so Sachen wie Doppelklicks haben willst. Allerdings ließe sich das in Spielen auch so lösen, dass bei einem Klick die Aktion für einmal klicken beginnt. Und wenn man dann innerhalb von so und so viel Millisekunden noch einmal die Taste drückt springt das Spiel halt zu der anderen Aktion(hier hilft, wenn die Animationen ähnlich starten natürlich ungemein).
Dieses System lässt sich auch auf alle anderen Kombinationen oder was du sonst planst übertragen, du musst einfach nur gespeichert haben, welche Aktion gerade läuft und wann diese gestartet wurde. Dann kannst du dir eine Liste machen, welche Aktion mit welcher zu welchem Zeitpunkt "abgelöst" werden kann und schon kannst du anfangen zu programmieren ![]() Das Problem entsteht natürlich dann, wenn erst nach einer entsprechenden Eingabe überhaupt was passieren soll, und nur teile dieser Eingabe keinen Effekt haben sollen. Dann musst du tatsächlich Eingaben zwischenspeichern. Aber ich denke die meisten Sachen lassen sich mit der oben beschriebenen Methode lösen(zumindest wenn es um Spiele geht). |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du könntest ja ein arry für verschiedene formen nutzen und nur markante punkte wie bei einem dreieck die ecken nehmen. dann würdest du bei jedem 2. frame zb die mauspositionen abfragen und wenn sich dieses außerhalb eines toleranzbereiches von 10px oder so ändern in ein temporäres array speichern. und dann nach 1-3 sec könntest du, wie du schon meintest, den vergleich vornehmen.
du könntest dir das so wie ein ocr-programm vorstellen: der benutzer "malt" mit der maus eine figur so zusagen und du vergleichst das dann mit den vorlagen. |
||
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
@amul
ist zwar nicht 100% was ich wissen wollte, aber es hilft aufjedenfall ungemein, da ich so etwas wie du es beschrieben hast auch integrieren wollte. Tja, ein weiterer Thread gespart ![]() @baddeath Ja, so dachte ich mir das auch. Das Problem ist halt nur je nach komplexibilität der Aktionen muss man ein relativ großes Array haben. Und selbst dann ist es noch immer schwer abzuschätzen wie sehr das "gemalte" der Vorlage XY gleicht. Mir schwirrt da gerade was im Kopf herrum. Ich mal das mal gerade auf und dann lad ichs hoch... Aber eure 3 Posts haben mich gedanklich irgentwie schon weiter gebracht ![]() So long, Kernle |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group