[cc creator]比较不起作用

时间:2016-03-19 12:39:52

标签: cocos2d-x cocos2d-js

我有一个Nodes'标志'数组,我想设置我的对象在该数组中第一个对象的位置,它工作,对象实际上按预期定位,但是当我进行比较时,它失败并记录'NO'。

设置位置的代码行有效,但比较失败,这里有什么问题?!

start: function () {
        this.node.position = this.flags[0].position;
        this.movement();
    },
    movement: function() {
       if (this.node.position == this.flags[0].position) {  // Problem
           console.log("YES");
       }
       else {
           console.log("No");

更新

当我这样做的时候它会起作用:

if (this.node.position.x == this.flags[0].position.x) // or position.y

1 个答案:

答案 0 :(得分:1)

如果你在这里写javascript(看起来像你这样做),你应该知道两件事:

  1. 您无法与开箱即用的==对象进行比较

    ({“a”:1} == {“a”:1}) 将返回 false (您可以在浏览器中自行尝试。 作为一种解决方法,您可以执行以下操作:

    function posCompare(p1,p2){    返回p1.x === p2.x&& p1.y === p2.y; }

  2. 然后使用它代替==作为职位

    1. 了解我如何使用===代替==?要知道的第二件事是仅使用===。您可以了解差异Which equals operator (== vs ===) should be used in JavaScript comparisons?,但我会在任何地方远离==。它比较慢,可能会在这里和那里引起奇怪的错误 - 根本就不要使用它