我是 Android 游戏开发的新手,我开始了一个简单的游戏,其中 Droid 可以跳过传入的框。我想在表面视图中使用 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() 方法是我的问题。我想有一个平稳的跳跃,但我不知道如何用当前的系统时间来计算。我的想法是,机器人应该每隔 -TimePeriod- 更新它的 Y 位置,并且应该以较快的速度开始,然后将其降低到 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;
}
}
}
据了解,我只实现了 Jump 的“向上”部分。谢谢您的回答!问候 DroidDude