[英]Trouble with AI in AS3
我正在制作一艘戰艦模擬器,您可以在其中導航一艘戰艦以完成特定目標,同時抵御敵艦。 所述敵方艦只應具有原始AI的形式,以使其能夠跟蹤您艦只的位置並嘗試向其射擊。
我遇到的問題是,我不完全確定如何根據位置將一組敵艦編碼為玩家的艦船。 我曾多次嘗試使敵艦前進,但無濟於事。
隨附的是我最近對敵艦移動的編碼嘗試(mvi_PBattleship用於玩家艦船,mvi_EBattleship用於敵艦):
var EMoveTimer:Timer = new Timer(10);
EMoveTimer.addEventListener("timer", EMove);
function EMove(eventArgs:TimerEvent):void{
EMoveTimer.start();
if(((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){
mvi_EBattleship.x += 1;
mvi_EBattleship.y += 1;
}
else if(((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship + 195.8) > (mvi_PBattleship.y + 195.8))){
mvi_EBattleship.x += 1;
mvi_EBattleship.y -= 1;
}
else if((mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){
mvi_EBattleship.x -= 1;
mvi_EBattleship.y += 1;
}
else if((mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7)) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship + 195.8) > (mvi_PBattleship.y + 195.8))){
mvi_EBattleship.x -= 1;
mvi_EBattleship.y -= 1;
}
else if((mvi_EBattleship.x > mvi_PBattleship.x) && ((mvi_EBattleship.x + 31.7) < (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.y + 195.8) < mvi_PBattleship.y) && (mvi_EBattleship.y < mvi_PBattleship.y)){
mvi_EBattleship.y += 1;
}
else if((mvi_EBattleship.x > mvi_PBattleship.x) && ((mvi_EBattleship.x + 31.7) < (mvi_PBattleship.x + 31.7)) && (mvi_EBattleship.y > (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship.y + 195.8) > (mvi_PBattleship.y + 195.8))){
mvi_EBattleship.y -= 1;
}
else if((mvi_EBattleship.y > mvi_PBattleship.y) && ((mvi_EBattleship.y + 195.8) < (mvi_PBattleship.y + 195.8)) && ((mvi_EBattleship.x + 31.7) < mvi_PBattleship.x) && (mvi_EBattleship.x < mvi_PBattleship.x)){
mvi_EBattleship.x += 1;
}
else if((mvi_EBattleship.y > mvi_PBattleship.y) && ((mvi_EBattleship.y + 195.8) < (mvi_PBattleship.y + 195.8)) && (mvi_EBattleship.x > (mvi_PBattleship.x + 31.7)) && ((mvi_EBattleship.x + 31.7) > (mvi_PBattleship.x + 31.7))){
mvi_EBattleship.x += 1;
}
}
因此,我的主要問題是:
1)我應該使用什么代碼來確保敵人追蹤玩家?
2)我如何使敵人向玩家發射子彈?
3)有沒有辦法追蹤兩艘敵艦之間的碰撞?
由於預計該項目將在明天接近完成,因此非常需要並希望有實際的代碼。 非常感謝您的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.