【问题标题】:hitTestPoint or hitTestObject?hitTestPoint 还是 hitTestObject?
【发布时间】:2014-01-10 00:30:02
【问题描述】:

我需要让我的角色降落在一个壁架上并停留在那里,但它只会一直直接穿过它。我会为所有不同的壁架创建一个数组并在我的角色击中它们时进行测试吗?任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: arrays actionscript-3 hittest


    【解决方案1】:

    地板和物体的碰撞检测实际上与 hitTesting 有很大不同,它需要始终如一地看到物体正在接触。试试这样的!

    //loop through all the platform objects to generate the level
    var level:Array = new Array();
    
    for (var i=0; i<numChildren; i++)
    {
    if (getChildAt(i) is platform)
    {
        level.push(getChildAt(i).getRect(this));
    }
    }
    
    
    
    for (i=0; i<level.length; i++)
    {
    if (player.getRect(this).intersects(level[i]))
    {
        if (speedX > 0) ////moving right collision and stuffs
            { 
                player.x = level[i].left-player.width/2;
            }
        if (speedX < 0) ////moving left collision and stuffs
            { 
                player.x = level[i].right+player.width/2;
            }
        speedX = 0 //kills the speed
    }
    }
    

    speedX 是角色水平移动的速度,“platform”是您用作悬崖的变量的名称。此外,“玩家”可以替换为您所称的要进入壁架的对象。反正我在我的一门计算机课上就是这样做的 :) 希望有帮助!

    【讨论】:

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