Programmierung Spiele für Android

Programmierung Spiele für Android 11: Eingabeereignisse InputAdapter

42 Videos

238 Protokoll

Für die Arbeit mit Eingabeereignissen, hat Libgdx eine Klasse namens InputProcessor. Diese Klasse wird von Libgdx am Eingang kontrolliert und Es funktioniert wie ApplicationAdapter: Es ist ein Klasse-Ereignis. Wir schreiben den Code und lassen Ereignisse Libgdx den Anruf, wenn er glaubt rechtzeitig. Wir prüfen nicht, ob eine Taste gedrückt wird, lassen Sie wer Libgdx uns mitteilen, dass Sie eine Taste gedrückt haben.

Dies unterscheidet das System, das wir in der vorherigen Video, Polling gesehen haben, dass, wenn Sie diesen Schlüssel nicht drücken ist nicht, dass Code ausgeführt wird und Das Spiel läuft schneller. Im Fall von InputProcessor was ist, dass die Ereignisse in getrennten Threads ausgelöst werden das nicht zu stören Hauptcode. Das erste, was ich tun, ist die Eingabeprozessor erstellen, und dies ist etwas, das in einer separaten Klasse sein sollte,

Prozessor zum Beispiel. Mein Eingangsprozessor muss InputProcessor implementieren. Es ist eine Schnittstelle, so dass ich verpflichtet, alle ihre Methoden zu implementieren. Es gibt eine Menge von Methoden, wir werden sie nach und nach zu sehen. Einige sind nach unten und andere sind nach oben. Die nach unten verwendet wird, wenn wir beginnen, um den Bildschirm zu tippen oder berühren, und sie werden verwendet, wenn wir dies nicht tun. Zum Beispiel ist keyDown das Ereignis, das ausgelöst wird, wenn wir einen Tastendruck, zum Beispiel begann, als wir 'K'

und lassen Sie das 'K' nach unten, aber lassen Sie nicht mit dem Finger. Wenn Sie den Finger loslassen keyUp schießen. So können wir erkennen, wenn wir Pressen und Press gestartet. Dies kann dazu dienen, ein Spiel zu machen, wo man den Charakter wollen nach vorne, während die rechte Taste drücken und wenn der Anschlag nach vorn freigegeben wird. Hier erklären wir Ihnen, sich zu bewegen, und da wir es sagen zu beenden. Ähnlich ist es mit dem Aufsetzen und touchup können wir das gleiche tun, sondern mit dem Finger.

Landungs ​​wird ausgelöst, wenn Sie mit dem Finger drücken, und wenn er touchup stand auf. Wir haben andere interessante Methoden wie mousemoved, die uns sagt, wenn es Bewegen der Maus. Mit diesem können wir comproabr, wenn die Maus bewegt. Dies gilt nicht in Mobiltelefonen Feuer, weil Sie nicht wissen, wo Ihre Finger sicher ist die wir spielen. Wir haben andere als touchDragged zu erkennen, wenn wir mit der Maus oder dem Finger auf dem Bildschirm ziehen, so dass wir eine folgen

Bewegung oder eine Geste machen, oder was auch immer. Oder keyTyped, der erkennt, wenn wir ein Zeichen, wie beispielsweise A oder B angeklickt, so dass, wenn wir schreiben Briefe wir können schneller erkennen. Wie Sie eine Menge von Parametern zu sehen haben kann, so will ich nicht mit ihm getroffen zu werden, weil es viele sind, aber lassen Sie uns beginnen für diejenigen, die mit dem Touch zu tun haben, das, was uns interessiert. Zunächst einmal werde ich diese beseitigen, und so viele interessieren wird mich ändern

InputProcessor von InputAdapter. Warum? Denn wie ApplicationAdapter, InputAdapter und jeder Adapter es tut, ist es implementiert Schnittstelle für uns, das heißt, es bleibt ein Prozessor, nicht aber die Methoden implementieren, die wir nicht implementiert werden, und dies ist sehr bequem. Wir wollen TouchDown- zu verwenden, dann wir sie verwenden. Wir wollen touchup zu verwenden, es zu benutzen. Wir verwenden KeyDown nicht, lassen Sie ihn dort und nicht verwendet.

Ein wichtiges Merkmal, dass Sie sich fragen, über die Methoden der InputProcessor vielleicht, warum alle boolean zurück. Das ist weil Boolean sagt, wenn wir etwas in diesem Verfahren getan haben, so dass, wenn wir falsch zurückgeben, was wir sagen ist, dass Sie nichts getan haben. Und das ist in Ordnung, weil Libgdx wenn ein anderer Prozessor teilnehmen, können Sie bestimmen, ob, wenn wir nichts getan haben, Ihren eigenen Code verwenden, um das Ereignis zu verarbeiten, oder es fallen zu lassen

oder einen anderen Prozessor nennen ..., dass wir immer Code auf dem Touch machen, oder mit dem Schlüssel oder wo auch immer sie tun wollen, müssen wir true zurück, für Libgdx zeigen an, dass wir das Ereignis verarbeitet haben. Landungst und touchup. Sie haben vier Parameter hier. Sowohl die gleiche gut. screenY screenX und Ihnen sagen, wo wir gespielt haben. Zeiger, Finger zeigt an, wie wir gespielt haben. Sie werden mit dem, was Finger sagen? Ja, denn die Telefone sind alle

Multitouch- Tag heute, und Sie können sofort mit mehreren Fingern klicken, zum Beispiel die Zoom-Geste zu machen. Oder jede andere Geste zu machen, aber in der Regel akzeptieren sie 4 oder 5 Fingern ohne Problem. Wenn wir den Bildschirm mit einem Finger drücken, wird dieser Finger 0, und wenn gleichzeitig die 0 gedrückt halten, Presse mit einem anderen Finger, dh der Finger 1 usw., bis sie die Grenze erreicht, jeder Bildschirm hat seine eigene, weil nicht alle guten Bildschirmen.

Im Desktop-Fall, wenn wir eine Maustaste bringt uns haben das zurück, was wir Maustaste angeklickt wird, wie links oder rechts haben. Für Test dies werde ich zu tun ist, sagen: 'Sie an der Position gespielt (screenX, screenY)' und 'haben den Finger (Zeiger) und (Taste) Taste verwendet'. Als ich meine Veranstaltung in einer Art und Weise versucht, kehre ich wahr nur, damit Sie wissen, ich Dinge getan habe. Das einzige, was bleibt, ist es mit dem Hauptspiel zu verbinden.

Um neue Kurse finden, abonnieren. Es wird kein Spam sein, versprochen :)

Über den Autor

foto de jotajotavm
José Javier Villena

Biografie: Analyst-Programmierer in verschiedenen Sprachen. Tutor PREMIUM-Plattformen weltweit als CodigoFacilito anerkannt. Editor Cristalab Artikel. Mein YouTube-Kanal wird von der ANAYA und LaTostadora Verlag gefördert. Ich mag im Detail und geben einige Beispiele für die Vermeidung von Missverständnissen zu erklären.