函数参数...函数检查(对象){}

时间:2011-10-22 04:53:05

标签: javascript html5 function parameters

我有一个名为collisioncheck的函数。现在,它通过检查适用于播放器的变量(例如playerPosXplayerVelXplayermaskIMG等)来完美地工作。

我想做的事情就像collisioncheck(object)一样,所以我打电话给collisioncheck(player)它会检查上面的变量playerPosX等等,如果我打电话给collisioncheck(zombie)然后它会检查zombiePosX等等。

我怎么能这样做?

如果您有任何疑问,请询问我不是很擅长解释这个... 提前谢谢!

3 个答案:

答案 0 :(得分:3)

我强烈建议您重构代码,以便像

这样的变量
playerPosX
playerPosY
playerVelX
playerVelY
zombiePosX
zombiePosY
zombieVelX
zombieVelY

不会出现在您的代码中。相反,zombieplayer应该是具有属性的对象,例如velXvelYposXposY

然后collisionCheck看起来像

function collisionCheck(object) {
    .... object.posX ...
}

通过检查这些对象的每个属性,将当前对象与所有其他附近的玩家和僵尸进行比较。

你真的不想把变量名称作为字符串处理。从本质上讲,属性为您做到这一点。

答案 1 :(得分:1)

非常简单:

function collisioncheck(obj) {
  var posX = obj.posX;
  var velX = obj.velX;
  var maskIMG = obj.maskIMG;
}

// ...

var objectToCheck = {
  'posX' : playerPosX,
  'velX' : playerVelX,
  'maskIMG' : playermaskIMG
};

collisioncheck(objectToCheck);

答案 2 :(得分:0)

以下是您的示例

   zombie = { 'posX' : 7,  'posY' : 95 };
   player = { 'posX' : 3,  'posY' : 95 };
   document.write(  zombie.posX );


    function CollisionCheck ( o1 , o2 )
    {

        if ( Math.abs(o1.posX - o2.posX) < 5 )
            {
                document.write ( 'Kaboom!!!' );              
            }        
    }        
    CollisionCheck ( zombie, player );