gpt4 book ai didi

actionscript-3 - ActionScript 3 : Bullet Ricocheting

转载 作者:行者123 更新时间:2023-12-02 02:18:07 24 4
gpt4 key购买 nike

我的 Actionscript 代码一直有问题。我是 Flash 和 AS3 的新手,所以如果我的代码看起来粗糙或简陋,我深表歉意,但我会尽我所能做到这一点。

好吧,在这个项目中,我试图让子弹从墙上跳一次。如果弹跳后再次撞到墙上,子弹就会消失。

我创建了一个 for 循环,它在一个数组中移动项目符号。同时,我试着记录每颗子弹的跳弹次数。这在我射出第一颗子弹时效果很好——它会弹跳然后在撞到另一堵墙后消失。然而,在那之后我发射的每颗子弹都会在它击中的第一堵墙上消失,然后再弹回。我试图让它发挥作用,但我似乎做不到。

如果有人能向我展示问题,或建议更改我的代码,我将不胜感激。 Here is a link to my code as it is now.

感谢所有提供帮助的人。

最佳答案

以下是我的一些建议:

1:创建一个 Bullet 类来跟踪它自己与墙壁的碰撞。我还将 clearBullet() 方法移动到项目符号类本身。

public class Bullet extends Sprite
{

public var collisions:int = 0;
public var xv:Number = 0;
public var yv:Number = 0;


public function clear():void
{
if(parent)
parent.removeChild(this);
}

}

2:更新你的循环来处理这个新信息。

for each(var i:Bullet in bulletholder)
{
// Move bullet.
// Check for collision.

// When there is a collision, do this:
i.collisions ++;

if(i.collisions >= 2)
{
var n:int = bulletholder.indexOf(i);
bulletholder.splice(n, 1);

i.clear();
}
else
{
// Deal with changing bullet position.
}
}

关于actionscript-3 - ActionScript 3 : Bullet Ricocheting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com