私は、夜間および週末のプロジェクトとして、Androidプラットフォーム用の最初のビデオゲームに取り組んでいます。ゲームのコントロールにTouchScreensを使用する
うまく来ていますが、私はコントロールの感覚に非常に不満です。
このゲームでは、オブジェクトを画面上の左右に移動します。画面の一番下には、指が置かれるべき場所である「タッチパッド」があります。
/-------------------------\
| |
| |
| |
| Game Area |
| |
| |
| |
| |
| |
/-------------------------\
| |
| Touch Area |
| |
\-------------------------/
は、私は現在、「MOVING_LEFT、MOVING_RIGHT、NOT_MOVING」を開催する状態変数を使用していますし、選手オブジェクトの位置、その変数に基づいて、各フレームを更新しています。
しかし、タッチスクリーン入力を読み取り、この状態変数を設定し、私のコードは、私はそれを微調整する方法に応じて、あまりにもsensative、またはあまりにもラグのどちらかである:
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;
}
}
アイデアはどんな動きがあるときということです、私はユーザーの指の以前の位置を確認し、次にどの方向にプレイヤーを移動するかを把握します。
これはあまりうまくいきません。ここには、タッチスクリーンで適切な操作を行う方法を理解し、助言を与えることができるいくつかのIPhone/Androidデベロッパーがいます。
"あまりうまく動かない"、 "遅すぎる、またはあまりにも敏感"と定義できますか?これがどのように動作するかの説明は役に立ちます –
私は指を10分の1インチ動かすことを意味し、プレーヤーは画面を横切っています。遅すぎるということは、プレイヤーを動かすために画面全体に指を動かさなければならないということですインチ。 :) – FlySwat