Ich arbeite an meinem ersten Videospiel für die Android-Plattform als ein paar Nächte und Wochenenden Projekt.Verwenden von TouchScreens für die Spielsteuerung
Es kommt gut voran, aber ich bin sehr unzufrieden mit der Kontrolle Sensitivität.
In diesem Spiel bewegen Sie ein Objekt nach links und rechts auf dem Bildschirm. Auf der Unterseite des Bildschirms ist ein "Touchpad" der Art, wo Ihr Finger ruhen sollte.
/-------------------------\
| |
| |
| |
| Game Area |
| |
| |
| |
| |
| |
/-------------------------\
| |
| Touch Area |
| |
\-------------------------/
Ich bin derzeit mit einer Zustandsvariablen „MOVING_LEFT, MOVING_RIGHT, NOT_MOVING“ zu halten und bin die Position des Spielerobjekts jeder Frame auf dieser Variablen basiert aktualisieren.
jedoch mein Code, der die Eingabe Touchscreen liest und setzt diese Zustandsgröße ist entweder zu sensative oder zu laggy, je nachdem, wie ich es zwicken:
public void doTouch (MotionEvent e) {
int action = e.getAction();
if (action == MotionEvent.ACTION_DOWN) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
}
else if (action == MotionEvent.ACTION_MOVE) {
if ((int)e.getX() >= this.mTouchX) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
if (this.TouchRect.contains(this.mTouchX, this.mTouchY)) {
this.mTouchDirection = MOVING_RIGHT;
}
}
else if ((int)e.getX() <= this.mTouchX) {
this.mTouchX = (int)e.getX();
this.mTouchY = (int)e.getY();
if (this.TouchRect.contains(this.mTouchX, this.mTouchY)) {
this.mTouchDirection = MOVING_LEFT;
}
}
else {
this.mTouchDirection = NOT_MOVING;
}
}
else if (action == MotionEvent.ACTION_UP) {
this.mTouchDirection = NOT_MOVING;
}
}
Die Idee ist, dass, wenn eine Bewegung gibt es Ich überprüfe den vorherigen Standort des Fingers des Benutzers und finde dann heraus, in welche Richtung der Spieler bewegt werden soll.
Dies funktioniert nicht sehr gut, ich denke, es gibt einige IPhone/Android Entwickler hier, die herausgefunden haben, wie man gute Kontrollen über einen Touchscreen macht und einen Rat geben kann.
Können Sie definieren "funktioniert nicht zu gut" und "zu lückig oder zu empfindlich". Eine Beschreibung, wie dies sich verhält, wäre nützlich. –
Zwei empfindliche bedeutet, dass ich meinen Finger einen Zehntel Zoll bewegen und der Spieler ist über den Bildschirm .. zu lückig bedeutet, dass ich meinen Finger über den gesamten Bildschirm bewegen muss, um den Spieler zu bewegen ein Zoll. :) – FlySwat