私はAndroidゲーム開発の初心者で、ドロイドが着信ボックスを飛び越えることができるという点で簡単なゲームを始めました。onTouchEvent を使用してサーフェス ビューで droid.jump() メソッドを呼び出したい (画面をタップするだけ)
Droid というクラスを作成しました。
public class Droid {
// Log Tag for Debugging
public static final String LOG_TAG = "_1Projekt";
private Bitmap bitmap; // the actual bitmap
private int x; // the X coordinate
private int y; // the Y coordinate
private boolean touched; // if droid is touched/picked up
private Speed speed; // the speed with its directions
private long mLastTime;
public Droid(Bitmap bitmap, int x, int y) {
this.bitmap = bitmap;
this.x = x;
this.y = y;
this.speed = new Speed();
}
…………
そして jump() メソッドが私の問題です。スムーズにジャンプしたいのですが、現在のシステム時間でこれを計算する方法がわかりません。私の考えでは、ドロイドは Y 位置を -TimePeriod- ごとに更新し、最初は速い速度で開始し、次に速度を 0 に下げてスムーズにジャンプする必要があるというものでした。しかし、while ループでこれを計算する方法がわかりません。私の現在のジャンプ():
public void jump() {
Log.d(LOG_TAG, "Jumping");
long now = System.currentTimeMillis();
int elapsedTime = 100;
int jump = y-30;
while(y > jump)
{
if(System.currentTimeMillis() > now + elapsedTime)
{
now = now + elapsedTime;
elapsedTime -=3;
y = y-1;
}
}
}
ジャンプの「上」の部分だけを実装したことを知っています。回答ありがとうございます。ごきげんよう