actionscript-3 - 我正在尝试让一个 MovieClip 跟随另一个 MovieClip 直到联系。一个影片剪辑按加速度计移动
问题描述
这是我的代码的一部分,但敌人仍然没有跟随这艘船。知道我能做什么吗?船通过加速度计移动,敌人从屏幕上的 -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;
}
}
提前致谢...
解决方案
我同意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。
我确实认为每个敌人的班级会是一个更好的解决方案,我认为你应该看看它。
希望这更有意义并再次道歉。
推荐阅读
- javascript - 向 DIV 添加水平滚动指示器
- swift - UIDatePicker (.countDownTimer) 上的秒数
- javascript - 将分钟转换为 DD:HH:MM(不是日期)
- c# - 如何在 RichTextBox 控件中搜索突出显示的文本
- php - PHP在带有关联数组的for循环中表现奇怪
- amazon-web-services - AWS Step Function 使用 DynamoDB 中的单个主键获取所有范围键
- steam - 如何从 Steam 中的应用程序 ID 获取应用程序图标?
- java - 如何给方法输入参数并打印返回值
- d3.js - 如何摆脱画布矩形之间的细线
- django - 引导吐司 - 不尊重数据延迟 - 吐司不隐藏