CocosCreator-常见问题和解决/过时API-持续更新

目录

3.x

ccc 3.x 弃用 cc 全局变量

找不到模块“cc”或其相应的类型声明。

类型“Vec2”上不存在属性“mul”。

类型“never”上不存在属性“instantiate”

类型node不存在width 

event.stopPropagation() 过时

坐标转换的进化

2.x

Sorry, cc.Director.getWinSize is deprecated. Please use cc.winSize instead

Sorry, cc.p is deprecated

v2.1.0以,“旋转”已被弃用,请改为设置“-angle”

Sorry, cc.Node.getPositionY is removed, please use y instead.

其他

设置刚体.y方向速度不生效

tiledMap地图在ccc里不显示图块资源图

使用tiledmap时发现图快拼接处有间隙


  • ccc常见问题
  • 持续更新

3.x

ccc 3.x 弃用 cc 全局变量

import * as cc from 'cc';

找不到模块“cc”或其相应的类型声明。

  1. 重新打开Creator
  2. 重新安装引擎

如果以上两种方案还不行,可以试着下面的方法

我之前3.6的版本使用正常,但是更新到3.8.2打开TS脚本提示找不到模块“cc”或其相应的类型声明。

找到3.6版本安装目录bin下的cc.d.ts和cc.editor.d.ts复制到3.8.2对应的目录下,问题解决

地址:D:\az3\cocos-dashboard-editors\Creator\3.8.2\resources\resources\3d\engine\bin\.declarations

类型“Vec2”上不存在属性“mul”。

 在3.x中,将2.x里的函数定义ccp***(如ccp,ccpAdd,ccpSub)相关的操作都封装到了这个Vec2的类

2.4文档:Vec2 · Cocos Creator

3.2文档:Vec2 | CocosCreatorAPI

// Vec2.sub向量减法, Vec2.mag返回该向量的长度
// let linelen = posBegin.sub(posEnd).mag();
let linelen = posBegin.subtract(posEnd).length();

// Vec2.add元素向量加法, Vec2.mul缩放向量,并返回新结果
// let midPos = posBegin.add(posEnd).mul(0.5);
let midPos = posBegin.add(posEnd).multiply(v2(0.5, 0.5));

类型“never”上不存在属性“instantiate”

// this.curGrNode = cc.instantiate(this.node);

import { instantiate, director } from 'cc';
// Instantiate node from prefab.
const node = instantiate(prefabAsset);

类型node不存在width 

需要先获取节点上的 UITransform 组件,再使用对应的接口

        const uiTransform = this.getComponent(UITransform);
        // 方法一
        uiTransform.setContentSize(200, 120);
        uiTransform.setAnchorPoint(0, 0.5);

        // 方法二
        uiTransform.width = 200;
        uiTransform.height = 120;
        uiTransform.anchorX = 0;
        uiTransform.anchorY = 0.5;

event.stopPropagation() 过时

event.stopPropagation();
        event.preventDefault();


// EventTouch 里属性可以设置, 停止传递当前事件
        event.propagationStopped = true
        event.propagationImmediateStopped = true

坐标转换的进化

类型“Node”上不存在属性“convertToNodeSpace”。

  • this.node.convertToNodeSpace(event.getLocation());
  • this.node.convertToNodeSpaceAR(event.getLocation());

修改为

this.node.getComponent(UITransform).convertToNodeSpaceAR(event.getLocation())

类型“Vec2”的参数不能赋给类型“Vec3”的参数。

修改为

this.node.getComponent(UITransform).convertToNodeSpaceAR(new Vec3(event.getLocation().x, event.getLocation().y, 0));

2.x

Sorry, cc.Director.getWinSize is deprecated. Please use cc.winSize instead

升级2.xjingg

cc.Director.getWinSize获取视图的大小,以点为单位。

Sorry, cc.p is deprecated

cocos creator 2.0的废除cc.p接口Sorry, cc.p is deprecated. Please use cc.v2 instead

cc.p(500, 500); 改为

cc.Vec2(500, 500);  或  cc.v2(500, 500);

v2.1.0以,“旋转”已被弃用,请改为设置“-angle”

cc.Node.rotation` is deprecated since v2.1.0, please set `-angle` instead. (`this.node.rotation = x` -> `this.node.angle = -x`)

Sorry, cc.Node.getPositionY is removed, please use y instead.

一起的还有Sorry, cc.Node.setPositionY is removed, please use y instead

修改:

api调整,全局替换 cc.Node.setPositionY 为 cc.Node.y;
全局替换 cc.Node.setPositionX 为 cc.Node.x;
 
 // if (btnStyle.getPositionY() == 0) {
      if (btnStyle.getPosition.y == 0) {

其他

设置刚体.y方向速度不生效

this.body = this.getComponent(cc.RigidBody);

var speed = this.body.linearVelocity;

speed.x = 500;

speed.y = 500;

this.body.linearVelocity = speed;

改为

var speed = this.body.linearVelocity;

this.body.linearVelocity = cc.v2(500, 500);

tiledMap地图在ccc里不显示图块资源图

使用tiledmap时发现图快拼接处有间隙

全局关闭抗锯齿


        // 全局关闭抗锯齿
        cc.view.enableAntiAlias(false);

在编辑器里把地图使用的贴图资源的Filter Mode设置为Point

通过脚本一键修改所有图片的.meta文件里的filter mode为point:

find . -name "*.meta" | xargs perl -pi -e 's|\bbilinear\b|point|g'
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑶山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值