this.node.position.addSelf(cc.p(10, 10))
结果值没变,求指导!
因为addSelf并不改变自身的值,而是返回一个改变后的值。
如果我是new cc.Vec2创建出来的对象,调用addSelf会返回相加后的值,同时会会改变自身的值,这是怎么回事呢?

![]()
而且内部实现的确是增加自身的值,然后再返回,但是对于node的position就无效

因为 node.position 得到的不是 node 自身的值,而返回一个新的值,这个值是临时的,你对它进行 addSelf 并不会影响 node 原先的坐标。
谢谢大神
感谢大神的指导!!
不过这感觉还挺隐晦的,文档上也没写貌似。
另外,又产生了一个新的疑问:如果node.position是返回一个临时值,那为什么赋值(比如node.positioin = cc.p(0, 0))是有效的?
最后,再请教大神个问题:以后再遇到类似这种情况,我自己如何能找到比较好的方法解决这种疑惑?比如到哪查阅比官网上更多的资料?或者有方法找到相关实现,从代码中获得答案等等?望能解答,谢谢!
如果我没猜错的话,position对象里有自定义的get和set方法,也就是说,获取position就是调用get方法(比如 var a = node.position),get方法是返回一个新的值,
而你对position进行赋值的时候,则会调用set方法,那么set方法里就更改了position的值
抱歉这是 API 文档不够完善导致的,我们会进行修改