Cocos 2dx - lua 坐标转换函数ConvertToNodeSpace和convertToWorldSpace

cocos源码:

/// @name Coordinate Converters

    /**
     * Converts a Vec2 to node (local) space coordinates. The result is in Points.
     */
    // 把世界坐标转换到当前节点的本地坐标系中
    Vec2 convertToNodeSpace(const Vec2& worldPoint) const;

    /**
     * Converts a Vec2 to world space coordinates. The result is in Points.
     */
    // 把基于当前节点的本地坐标系下的坐标转换到世界坐标系中
    Vec2 convertToWorldSpace(const Vec2& nodePoint) const;

    /**
     * Converts a Vec2 to node (local) space coordinates. The result is in Points.
     * treating the returned/received node point as anchor relative.
     */
    // 基于Anchor Point把基于当前节点的本地坐标系下的坐标转换到世界坐标系中
    Vec2 convertToNodeSpaceAR(const Vec2& worldPoint) const;

    /**
     * Converts a local Vec2 to world space coordinates.The result is in Points.
     * treating the returned/received node point as anchor relative.
     */
    // 基于Anchor Point把世界坐标转换到当前节点的本地坐标系中
    Vec2 convertToWorldSpaceAR(const Vec2& nodePoint) const;

示例代码:

local icon = {
    "ccbResources/HXH_league_icon/gonghuitouxiang1.png",
    "ccbResources/HXH_league_icon/gonghuitouxiang2.png",
}
self.sprite1 = cc.Sprite:create(icon[1])
self.sprite1:setPosition(cc.p(50, 50))
self.sprite1:setAnchorPoint(cc.p(0,0))
self.rootNode:addChild(self.sprite1)

self.sprite2 = cc.Sprite:create(icon[2])
self.sprite2:setPosition(cc.p(100, 200))
self.sprite2:setAnchorPoint(cc.p(0,0))
self.rootNode:addChild(self.sprite2)

local p1 = self.sprite1:convertToNodeSpace(cc.p(self.sprite2:getPosition()))
local p2 = self.sprite1:convertToWorldSpace(cc.p(self.sprite2:getPosition()))
print(p1.x .."   " .. p1.y)
print(p2.x .."   " .. p2.y)

local p3 = self.sprite1:convertToNodeSpaceAR(cc.p(self.sprite2:getPosition()))
local p4 = self.sprite1:convertToWorldSpaceAR(cc.p(self.sprite2:getPosition()))
print(p3.x .."   " .. p3.y)
print(p4.x .."   " .. p4.y)

输出结果:

[LUA-print] 50   150
[LUA-print] 150   250
[LUA-print] 50   150
[LUA-print] 150   250

总结:

不带AR的是以参照物的坐下角作为坐标原点,向右、向上创建坐标系。

带AR的是以参照物的锚点为原点,向右、向上创建坐标系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值