cocos creator

本文介绍了使用 Cocos2d-x 引擎进行游戏开发时,如何处理触摸事件并实现坐标转换,同时展示了如何创建及分发自定义事件来触发特定的游戏逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ar po1 = this.hand.getPosition()
       
        if(0){
            //局部坐标转换
            var po2 = this.canvas.convertToNodeSpaceAR(touch.getLocation())
            cc.log(po1.x,po1.y,'  | ',po2.x, po2.y)
        }else{
            //全局坐标转换
            po1 = this.bg.convertToWorldSpaceAR(po1)
            po1 = cc.pSub(touch.getLocation(), po1)
        }
        var at = cc.radiansToDegrees(cc.pAngleSigned(po1, cc.p(0,1)))
        this.hand.rotation = at

自定义事件

var event = new cc.Event.EventCustom(GameEvent.bugRun, true)
        event.setUserData(this.node)
        var ob = cc.find('script')
        cc.find('script').dispatchEvent(event)

### Cocos Creator 中 null 的理解和应用 在编程语言尤其是像 JavaScript 和 C++ 这样的多范式语言中,`null` 是一个特殊的关键字。对于 Cocos Creator 而言,由于其主要基于 JavaScript/TypeScript 开发游戏和其他交互内容,理解 `null` 对于开发者至关重要。 #### 定义与区别 `null` 表达的是对象的有意缺席;它是一个可以赋给变量或属性的有效值,用来表示该变量不指向任何对象实例[^2]。这不同于未定义 (`undefined`) 或者零 (`0`): - **Undefined**: 当声明了一个变量但尚未对其初始化时,默认情况下它的值就是 `undefined`。 - **Zero (0)**: 数值类型的零,在某些上下文中可能会被误认为是“无”,但这仅限于数值范围内的解释,并不代表对象状态的存在与否。 具体到 `(void *)0` 的情况,则是从底层计算机科学的角度描述了空指针的概念——即没有任何有效数据位置关联的一个地址引用[^1]。 #### 在 Cocos Creator 中的应用场景 考虑到上述差异,在使用 Cocos Creator 编写脚本时应当注意区分不同场合下应使用的适当形式: - 初始化节点组件或其他复杂类型成员时设置为 `null` 可以清晰表明这些字段目前为空而非意外留白; - 判断某个资源加载成功与否可以通过检查返回的对象是否为 `null` 来实现逻辑分支处理; - 清理不再需要的游戏实体前将其引用置为 `null` 有助于垃圾回收机制及时释放内存空间。 ```javascript // 示例代码展示如何安全地操作可能为 null 的 cc.Node 类型变量 let node = this.node.getChildByName('exampleNode'); if (node !== null && node.active) { console.log("Node exists and is active."); } else { console.warn("Node does not exist or inactive."); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值