So verschieben Sie ein sprite mit den Tasten der Tastatur mit libGDX?
ich habe gerade angefangen mit java und libgdx und diesen code, sehr einfach, es druckt ein sprite auf den Bildschirm. Das funktioniert perfekt, und ich lernte eine Menge von ihm.
package com.MarioGame;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.InputProcessor;
public class Game implements ApplicationListener {
private SpriteBatch batch;
private Texture marioTexture;
private Sprite mario;
private int marioX;
private int marioY;
@Override
public void create() {
batch = new SpriteBatch();
FileHandle marioFileHandle = Gdx.files.internal("mario.png");
marioTexture = new Texture(marioFileHandle);
mario = new Sprite(marioTexture, 0, 158, 32, 64);
marioX = 0;
marioY = 0;
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(mario, marioX, marioY);
batch.end();
}
@Override
public void resume() {
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void dispose() {
}
}
Wie würde ich ändern, das marioX
Wert, wenn ein Benutzer drückt D
auf Ihrer Tastatur?
InformationsquelleAutor dotty | 2011-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihre Aufgabe an der Seite könnten Sie nicht sogar brauchen, zu implementieren InputProcessor. Sie können die Eingabe.isKeyPressed () - Methode in Ihrer render () - Methode wie diese.
Beachten Sie auch, dass ich die Koordinaten von mario schwimmt und verändert die Bewegung in Zeit-basierten Bewegung. marioSpeed ist die Anzahl der Pixel mario sollte auf Reisen in jede Richtung pro Sekunde. Gdx.Grafik.getDeltaTime() gibt Ihnen die Zeit vergangen, seit dem letzten Aufruf von render() in Sekunden. Der cast zu int ist eigentlich nicht notwendig in den meisten Situationen.
Btw, wir haben die Foren an http://www.badlogicgames.com/forum, wo Sie Fragen, libgdx, spezifische Fragen, wie gut!
hth,
Mario
InformationsquelleAutor badlogic
Können Sie die Schnittstelle
KeyListener
zu erkennen Tastatur Aktion.InformationsquelleAutor dominicbri7
In Ihrem Spiel-loop-Methode (vielleicht machen oder einen) zum hinzufügen eines Eingabe-handler (Umsetzung InputProcessor).
Die Klasse
InputProcessor
haben Methoden wie:und die Klasse
Input.Keys
hat eine Menge von statischen Variablen als Schlüsselcodes.Zum Beispiel:
So, die Umsetzung der zentralen* die Methoden und überprüfen Sie, wenn einige Schlüssel betätigt werden und Inkrementieren oder Dekrementieren der X/Y von mario.
BEARBEITEN:
Prüfen Sie diesen links:
http://code.google.com/p/libgdx/source/browse/trunk/gdx/src/com/badlogic/gdx/InputProcessor.java
http://code.google.com/p/libgdx/source/browse/trunk/gdx/src/com/badlogic/gdx/Input.java
oder, im Kofferraum, wie demos Griff Eingang:
http://code.google.com/p/libgdx/source/browse/#svn%2Ftrunk%2Fdemos
Hoffnung Hilfe
ist ein java (native) Klasse. Und
InputProcessor
ist ein GDX-Klasse. In meiner Erfahrung, wenn ich einen Motor immer verwendet alle der Motor.InformationsquelleAutor jotapdiez
Meine bevorzugte Methode ist die Verwendung eine InputController die speichert alle standard-Tasten bereit für die Prüfung.
Dann alles, was ich tun müssen, ist, machen den KeyboardController in der create-Methode des Spiels mit
Dann sagen, GDX, um es zu verwenden, um Listener für Ereignisse
Schließlich, wenn ich will, um zu überprüfen, ob eine Taste gedrückt ist, den ich gehen
InformationsquelleAutor dfour