【发布时间】:2018-05-14 17:30:37
【问题描述】:
我正在创建一个游戏,我需要将船只以设定的速度朝向它们所面对的角度移动。我已经使用此代码在游戏中的其他地方移动了奇异的船只,但我认为将它们放在一个数组中会很复杂。
任何帮助将不胜感激。
var ship1 = this.addChild(new Ship());
var ship2 = this.addChild(new Ship());
var ship3 = this.addChild(new Ship());
var ship4 = this.addChild(new Ship());
var shipSpeed1 = 10;
var shipArray: Array = [];
shipArray.push(ship1, ship2, ship3, ship4);
for (var i: int = 0; i < shipArray.length; i++) {
var randomX: Number = Math.random() * stage.stageHeight;
var randomY: Number = Math.random() * stage.stageHeight;
shipArray[i].x = randomX;
shipArray[i].y = randomY;
shipArray[i].rotation = 90;
shipArray[i].x += Math.sin(shipArray[i].rotation * (Math.PI / 180)) * shipSpeed1;
shipArray[i].y -= Math.cos(shipArray[i].rotation * (Math.PI / 180)) * shipSpeed1;
}
我也将它包含在同一个函数中,但我也无法让它工作。我又一次有了这个工作
if (shipArray[i].x < 0) { //This allows the boat to leave the scene and
enter on the other side.
shipArray[i].x = 750;
}
if (shipArray[i].x > 750) {
shipArray[i].x = 0;
}
if (shipArray[i].y < 0) {
shipArray[i].y = 600;
}
if (shipArray[i].y > 600) {
shipArray[i].y = 0;
}
【问题讨论】:
-
显示你用来移动奇异飞船的代码。现在,您的代码不会在初始位置之外移动任何内容。
-
@BadFeelingAboutThis var ship = evt.currentTarget; ship.x += Math.sin(ship.rotation * (Math.PI / 180)) * randomSpeed(4, 15); //使用我的随机数控制船 ship.y -= Math.cos(ship.rotation * (Math.PI / 180)) * randomSpeed(4, 15);完全一样。
标签: arrays actionscript-3 math actionscript angle