【问题标题】:AS3 goto next frame with hitTestObjectAS3 使用 hitTestObject 转到下一帧
【发布时间】:2012-03-16 10:00:41
【问题描述】:

我正在制作一个游戏,你必须先用你的角色拿起钥匙,然后走到门口。当你撞到门时,你应该去下一帧。没有钥匙,你不能通过门。你应该用 hitTestObject 拿起钥匙,然后用 hitTestObject 转到下一帧。

有人可以帮我吗?谢谢!

这是我的代码:

var gotKey:Boolean = false;

if(Jack.hitTestObject (unlock))
{
    unlock.visible = false;
    gotKey == true;
    trace ("You got the key!")
}
if (Jack.hitTestObject (house))
{
    if (gotKey == true)
    nextFrame();
    trace ("level achieved")
}

【问题讨论】:

  • 嗯...那你有什么问题?

标签: actionscript-3 flash-cs5


【解决方案1】:

我猜您想将变量 gotKey 分配给 true (=),而不是将其与 true (==) 进行比较

if(Jack.hitTestObject (unlock))
{
    unlock.visible = false;
    gotKey == true;
    trace ("You got the key!")
}

应该是:

if(Jack.hitTestObject (unlock))
{
    unlock.visible = false;
    gotKey = true;
    trace ("You got the key!")
}

【讨论】:

  • 谢谢!这真的很有帮助!但是弹出一个错误:错误#1009:无法访问空对象引用的属性或方法。还有一个问题:在拿到钥匙之前,你现在可以去房子了。我该如何解决?
【解决方案2】:

您是否遇到编译错误,或者您是否正在寻求逻辑方面的帮助?因为您所拥有的应该可以工作,但是您在 gotKey 逻辑检查 Jack hitTestObjects 所在的位置上遗漏了一组花括号。

if (Jack.hitTestObject (house))
{
    if (gotKey == true)
    nextFrame();
    trace ("level achieved")
}

应该是

if (Jack.hitTestObject (house))
{
    if (gotKey == true) {
    nextFrame();
    trace ("level achieved")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多