试图制造碰撞
Trying to create collisions
var i:int = 0;
stage.focus=stage;
var Walls:Array = [Wall,Wall1];
addEventListener(Event.ENTER_FRAME,HitDetection);
function HitDetection(event:Event):void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
function myKeyDown(e:KeyboardEvent):void
{
{
if (e.keyCode == Keyboard.LEFT)
{
if (KeemStar1.hitTestObject(Walls[i])) {
trace("1")
KeemStar1.x -=-0.1;
}
else
{
KeemStar1.x -=0.1;
}
}
if (e.keyCode == Keyboard.RIGHT)
{
{
if (KeemStar1.hitTestObject(Walls[i])) {
KeemStar1.x -=-0.1;
trace ("n")
}
else
{
KeemStar1.x +=0.1;
}
}
}
}
}
}
它只与第一面墙发生碰撞,而不是阵列中的每一面墙。我已经尝试了一切,但我无法弄清楚我是 actionscrip3 的新手,所以我不确定该怎么做。谢谢!!
您没有按需要循环数组。它应该看起来更像这样:
for (var i: int = 0; i < Walls.length; i++){
// code for collision detection against Walls[i]
}
该代码将循环遍历该数组中的项目,检查每个项目的碰撞。
此外,您的 if
括号中的语句完全错误。应该是:
if (condition){
// code
}
将 condition
替换为您想要的任何内容(如 KeemStar1.hitTestObject(Walls[i])
)并将 //code
替换为条件为真时应该发生的情况。
你应该学会缩进正确的数量并摆脱所有疯狂的白色 space。这使得它几乎无法阅读。我不得不仔细检查并更正你的缩进和白色 space 多余部分,才意识到你的括号错了。
var i:int = 0;
stage.focus=stage;
var Walls:Array = [Wall,Wall1];
addEventListener(Event.ENTER_FRAME,HitDetection);
function HitDetection(event:Event):void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);
function myKeyDown(e:KeyboardEvent):void
{
{
if (e.keyCode == Keyboard.LEFT)
{
if (KeemStar1.hitTestObject(Walls[i])) {
trace("1")
KeemStar1.x -=-0.1;
}
else
{
KeemStar1.x -=0.1;
}
}
if (e.keyCode == Keyboard.RIGHT)
{
{
if (KeemStar1.hitTestObject(Walls[i])) {
KeemStar1.x -=-0.1;
trace ("n")
}
else
{
KeemStar1.x +=0.1;
}
}
}
}
}
}
它只与第一面墙发生碰撞,而不是阵列中的每一面墙。我已经尝试了一切,但我无法弄清楚我是 actionscrip3 的新手,所以我不确定该怎么做。谢谢!!
您没有按需要循环数组。它应该看起来更像这样:
for (var i: int = 0; i < Walls.length; i++){
// code for collision detection against Walls[i]
}
该代码将循环遍历该数组中的项目,检查每个项目的碰撞。
此外,您的 if
括号中的语句完全错误。应该是:
if (condition){
// code
}
将 condition
替换为您想要的任何内容(如 KeemStar1.hitTestObject(Walls[i])
)并将 //code
替换为条件为真时应该发生的情况。
你应该学会缩进正确的数量并摆脱所有疯狂的白色 space。这使得它几乎无法阅读。我不得不仔细检查并更正你的缩进和白色 space 多余部分,才意识到你的括号错了。