Je travaille sur mon premier jeu vidéo pour la plate-forme Android en tant que projet de nuits et de week-ends.Utilisation des écrans tactiles pour le contrôle du jeu
Ça se passe bien, mais je suis très mécontent de la sensibilité au contrôle.
Dans ce jeu, vous déplacez un objet à gauche et à droite sur l'écran. En bas de l'écran se trouve un "pavé tactile" de toutes sortes, sur lequel repose votre doigt.
/-------------------------\
| |
| |
| |
| Game Area |
| |
| |
| |
| |
| |
/-------------------------\
| |
| Touch Area |
| |
\-------------------------/
J'utilise actuellement une variable d'état de tenir « MOVING_LEFT, MOVING_RIGHT, NOT_MOVING » et suis mise à jour du lieu de l'objet de joueur chaque image en fonction de cette variable.
Cependant, mon code qui lit l'entrée de l'écran tactile et définit cette variable d'état est trop sensative, ou trop laggy, selon la façon dont je Tweak:
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;
}
}
L'idée est que quand il y a un mouvement , Je vérifie l'emplacement précédent du doigt des utilisateurs, puis détermine dans quelle direction déplacer le lecteur. Cela ne marche pas très bien, je pense qu'il y a des développeurs IPhone/Android qui ont compris comment faire de bons contrôles via un écran tactile et qui peuvent donner quelques conseils.
Pouvez-vous définir "ne fonctionne pas trop bien" et "trop laggy ou trop sensible". Une description de comment cela se comporte serait utile –
Deux moyens sensibles que je déplace mon doigt un 10ème de pouce et le joueur est à travers l'écran .. trop laggy signifie que je dois déplacer mon doigt sur l'ensemble de l'écran pour déplacer le joueur un pouce. :) – FlySwat