我正在製作一個openGL自上而下的太空射擊類型的遊戲,以瞭解如何創建遊戲。我有很多基礎知識(遊戲循環,邏輯隔離等)。跟蹤路徑上的2D對象/預先確定的移動
我遇到的一個問題是如何創建更復雜的對象移動。我目前有一些敵人沿着屏幕正弦移動。我希望讓他們執行更復雜的動作,如向下移動屏幕,停止,然後重新開始,也許在這個過程中做一些循環。
我已經將我的運動邏輯打破了它自己的EnemyMovement界面,我可以附加到任何類型的敵人。這裏是我的正弦波運動類:
package com.zombor.shooter.movement;
import com.zombor.game.framework.math.Vector2;
public class Sine implements EnemyMovement
{
private int direction;
private float totalTime = 0;
private float deltaTime;
private int originalX;
private int originalY;
private float yVelocity = -4f;
private float xVelocity = 0;
public Sine(int x, int y)
{
direction = Math.random() > 0.5 ? 1 : -1;
originalX = x;
originalY = y;
}
public void setDeltaTime(float deltaTime)
{
this.deltaTime = deltaTime;
totalTime+=deltaTime;
}
private float xVal()
{
return originalX + (float) Math.sin(Math.PI+totalTime)*2*direction;
}
public void setPosition(Vector2 position)
{
position.add(xVelocity * deltaTime, yVelocity * deltaTime);
position.x = xVal();
}
}
我的物體有位置,速度和加速度向量。
有沒有一個普遍接受的方式來做腳本運動?
我一直在閱讀「Beginning Android Games」一書,它構建了一個非常好的框架。所以我不使用遊戲引擎,因爲我寧願自己學習。 – zombor 2012-08-04 20:14:20