-
Creator 版本:
-
目标平台:
-
详细报错信息,包含调用堆栈:
-
重现方式:
-
之前哪个版本是正常的 :
-
手机型号 :
-
手机浏览器 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
-
出现概率:
-
额外线索:
Creator 版本:
目标平台:
详细报错信息,包含调用堆栈:
重现方式:
之前哪个版本是正常的 :
手机型号 :
手机浏览器 :
编辑器操作系统 :
编辑器之前是否有其它报错 :
出现概率:
额外线索:
第二次 p1 undefined , pts 长度变成1了;第一次是2;
cc.Graphics 调用 这个 stroke 异常
2.3.2 create mac

你的上面的代码片段运行并没有出现报错,麻烦给个纯坐标数据的测试代码。
const { ccclass, property } = cc._decorator;
@ccclass
export default class Paintbrush extends cc.Component {
@property(cc.Graphics)
public pen: cc.Graphics = undefined;
private isTouchStart: boolean = false;
public onLoad() {
this.pen.clear();
this.pen.node.on(cc.Node.EventType.TOUCH_START, this.onTouchStartCallback, this);
this.pen.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMoveCallback, this);
this.pen.node.on(cc.Node.EventType.TOUCH_END, this.onTouchEndCallback, this);
this.pen.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouchCancleCallback, this);
}
public onTouchStartCallback(event: cc.Touch) {
console.log('pen:', this.pen);
this.isTouchStart = true;
const pos = this.pen.node.convertToNodeSpaceAR(event.getLocation());
// 与lineTo 有位移,这样画一个小点
this.pen.moveTo(pos.x, pos.y - 0.1);
this.pen.lineTo(pos.x, pos.y);
this.pen.stroke();
this.pen.moveTo(pos.x, pos.y);
}
public onTouchMoveCallback(event: cc.Touch) {
if (this.isTouchStart) {
const pos = this.pen.node.convertToNodeSpaceAR(event.getLocation());
this.pen.lineTo(pos.x, pos.y);
// this.pen.stroke();
this.pen.moveTo(pos.x, pos.y);
}
}
public onTouchEndCallback(event: cc.Touch) {
this.isTouchStart = false;
}
public onTouchCancleCallback(event: cc.Touch) {
this.isTouchStart = false;
}
}
代码 界面 如下
第一笔 写下正常;第二笔 就已经抱错了
给个完整的demo,我这边把你的代码做一遍,也没报错,2.3.3 版本测试。
已上传 如下
我这个版本 2.3.2 mac create
window 2.3.2 create 也是一样有问题
还是用了版本 2.3.2 create ;把onTouchMoveCallback 方法里的, this.pen.moveTo(pos.x, pos.y); 注释即可
@huanxinyin 我也遇到楼上的问题 同样的代码 报错也是一样的(bugly上抓到的线上的 不是比现的)之前用2.0.10是没有这个问题 目前版本是2.2.2线上有此问题
上面这种方式不行,还是有问题 ;最后 再每一个 this.pen.moveTo(pos.x, pos.y) 后面加一个这样的判断 (注意每一个!执行moveTo() 后面)->() if (cc.ENGINE_VERSION == ‘2.3.2’) {
this.pen._impl._updatePathOffset = true;
}