私はlibGDXでゲームを作ろうとしています。私は、AIにタスクを順番に実行させようとすることに問題があります。私はもともとlibGDXタイマーを使用してタスクをスケジュールしていましたが、これは私が達成しようとしているものにはまったく適していません。libGDX注文タスク
ゲームは戦略ターンベースのゲームなので、タスクの完了順序が重要です。ここで
は、私は現在、それをやっている方法です
float teamSizeDelay = team.getUnits().size() * gameSpeed;
float eventDelay = gameSpeed * 2;
// Move Units
if (team.getUnits().size() > 0 && enemyTeam.getHqHealth() > 0) {
unitIndex = 0;
for (int i = 0; i < team.getUnits().size(); i++) {
Timer.schedule(new Timer.Task() {
@Override
public void run() {
selectUnit(unitIndex);
unitIndex++;
}
}, i * gameSpeed);
}
}
int availableFactories = getAvailableFactories();
// Spawn Units
Timer.schedule(new Timer.Task() {
@Override
public void run() {
if (enemyTeam.getHqHealth() > 0)
spawnUnits();
}
}, teamSizeDelay + eventDelay * 2);
float spawnDelay = availableFactories * gameSpeed;
// End Turn
if (enemyTeam.getHqHealth() > 0) {
Timer.schedule(new Timer.Task() {
@Override
public void run() {
endTurn();
}
}, (teamSizeDelay) + (eventDelay * 3) + (spawnDelay));
}
あなたは特にタイミング、誰もがそれは次のようになり、これを行うには良い方法を知っているので、場合
で、汚いことができるタイマーを使って見ることができるように
ゲームがターンベースの場合、なぜ時間関連のコード(「i * gameSpeed」と「teamSizeDelay + eventDelay * 2」)がありますか?これらの行動を瞬時に起こさせてみませんか? – John
私はプレーヤーがコンピュータを動かすのを見ることができるようにしたいので、ターンの代わりにただちに起こるターン –