我正在尝试让一个 MovieClip 跟随另一个 MovieClip 直到联系。一个影片剪辑按加速度计移动
Posted
技术标签:
【中文标题】我正在尝试让一个 MovieClip 跟随另一个 MovieClip 直到联系。一个影片剪辑按加速度计移动【英文标题】:I am trying to make a MovieClip follow another MovieClip until contact. One MovieClip moves by Accelerometer 【发布时间】:2018-12-13 05:20:30 【问题描述】:这是我的代码的一部分,但敌人仍然没有跟随船。知道我能做什么吗?船通过加速度计移动,敌人从屏幕上的 -y 生成。一些帮助将不胜感激
//Move Enemies towards Player//
var speed = 5;
if( enemies.x < ship.x )
if( enemies.x + enemies.speedX > ship.x )
enemies.x = ship.x;
else
enemies.x += enemies.speedX;
else if( enemies.x > ship.x )
if( enemies.x - enemies.speedX < ship.x )
enemies.x = ship.x;
else
enemies.x -= enemies.speedX;
if( enemies.y < ship.y )
if( enemies.y + enemies.speedY > ship.y )
enemies.y = ship.y;
else
enemies.y += enemies.speedY;
else if( enemies.y > ship.y )
if( enemies.y - enemies.speedY < ship.y )
enemies.y = ship.y;
else
enemies.y -= enemies.speedY;
//move enemies//
if (enemies.length != 0)
for (var j: int = 0; j < enemies.length; j++)
enemies[j].y += 5;
提前谢谢...
【问题讨论】:
首先,如果 enemies 是(很可能)一个 Array,那么解决 enemies.x的意义何在> 和 enemies.y?基本上,你弄乱了不存在的 x 和 y 属性(在 Array 上没有意义),然后为所有敌人添加 +5 y-坐标。 【参考方案1】:我同意 Organis 的观点。 Enemies 看起来确实是一个数组,因此要访问他们的 x 和 y,您需要enemys[0].x。为了解决这个问题,我将 x 位置放在一个 for 循环中,就像你对 y 坐标一样。
或者根据你有多少敌人,我会为敌人添加一个类。这样一个敌人就会产生并通过它的类知道该怎么做。我认为这会更简单,因为当敌人被移除时它不需要整理数组。你也可以调整它,让每个敌人都有一个随机的速度值,从而获得更动态的结果。
祝你好运
编辑:
好吧,那是我的错,刚刚意识到我不是很清楚。我想说的是:
//move enemies//
if (enemies.length != 0)
for (var j: int = 0; j < enemies.length; j++)
enemies[j].y += 5;
工作正常。每个敌人一旦被引用就会移动 5。为什么不将其余代码复制并粘贴到这个循环中,而不是使用敌人.x 使用敌人[j].x。
我确实认为针对每个单独敌人的班级会是一个更好的解决方案,我认为您应该研究一下。
希望这更有意义并再次道歉。
【讨论】:
恕我直言,这不是问题的答案。我建议您回答一个问题,只有当您确定您可以(并且您完全应该)提供一个有效的解决方案,或者至少提供一个可以帮助 OP 理解事情、克服错误并解决问题。以上是关于我正在尝试让一个 MovieClip 跟随另一个 MovieClip 直到联系。一个影片剪辑按加速度计移动的主要内容,如果未能解决你的问题,请参考以下文章
当添加到另一个 AS 类文件的舞台时,AS3 访问 MovieClip
Bootstrap 2 可以让 1 个模态跟随另一个模态吗?
用另一个 MovieClip 更改一个 MovieClip 的简单方法