最近h5小游戏比较流行,本来我是做cocos2dx的,一开始想用它的js版。
可惜看着js真是头大。于是选择了egret,egret采用typescript,学过面向对象的,上手还是比较快的,而且api比较清晰。
这里记录一下遇到的问题。
1、Error: #1006: 提供的 DisplayObject 必须是调用者的子级
如:
parent.removeChild(child)
其实child不是parent的子节点
一种情况是添加到了stage上,误以为是类自身上。
一种情况是child实例化多次,被覆盖,此时的child已经不是addChild时的child.
2、坐标系、锚点问题
坐标系是左上角为坐标原点
egret的锚点,采用的是相对于左上角的距离,而不是物体中心,计算时比较麻烦。
好在已经有人写好了转换的工具类,https://github.com/eperfect/AnchorUtil
用最新的egret要修改一下:
把if(egret.gui && egret.gui.UIComponent) 这段代码全部注释
可以增加一个新函数,方便设置锚点
public static setAnchorXY(target: egret.DisplayObject,x: number,y:number): void {
target["anchorX"] = x;
target["anchorY"] = y;
}
3、eui服务初始化失败
关闭广告拦截和代理软件
时间: 2024-10-12 12:15:40