layabox游戏开发经验分享1

开头语:
layabox引擎十分好用 里面有很多实用工具和方法 都是专门为游戏开发设计的
下面分享下开发经验

如果想重新加载游戏
可以调用这个
Browser.window.location.reload();
亲测 apk 网页都可以用
但是 官方的意思是调用这个
JS(“window.reloadJS(true)”);

JS(“window”).reloadJS(true);
他封装了上面的方法
但是测试不行 各位看着来吧~

Laya.loader.on(Event.COMPLETE,this,fff);
loadermanager有一个完成事件 所有资源加载完毕可以用这个
如果想做进度条 可以用这个 Laya.loader["_loaderCount"] 这是正在加载的数量

调试用这个
DebugPanel.init();
DebugTool.init();
小图自动合并的图集也可以看到
包括cache是否被重绘

Laya.stage.fullScreenEnabled = true;
点击全屏 在某些手机浏览器里有用 苹果不行

Browser.onPC 这个属性需要 Browser.init() 来初始化

如果想用龙骨 必须下载最新版的龙骨ide 然后导出时 资源格式选择5.0版本 直接用5.0ide容易出问题
list的item里有按钮 在三星手机里不容易点
在web里 按钮里的文字是正常的 在app里靠上 和字体有关系

this.graphics.drawRect(-2,-2,4,4,color);
每绘制一次 会提高一次drawcall 所以再次绘制时 务必 graphics.clear();
this.graphics.clear(true);

关于内存释放和destroy()
一般情况 面板关闭时不做任何操作 会被垃圾回收
但也有例外 今天发现一个问题 因为list里的一些引用 无法释放 list.render = null 才可以…
最后调用面板的destroy就可以了

素材变黑块儿问题
this.graphics.drawTexture
这个方法可以把很多碎图优化成一次重绘
但如果是超大图 在低端机器上会变黑
改成普通sprite后 情况稍有好转 但渲染对象多的时候还是黑
而且游戏变的很卡 完全没法玩
查找发现 地图碎块儿是960 * 640的 不是2的次幂 改成512 或者1024的碎图 解决问题
在低端机器上 大一点的图还是会产生黑屏 尽量把图整到512以下吧

destroy()方法会移除显示对象身上的所有方法 也就是说 如果显示对象也监听了这个方法很有可能
mediator里 undisplay会不触发 要注意

点击边缘不关闭
override public function close(type:String,showEffect:Boolean = true):void{
//判断是否点击边缘,如果是边缘则不让关闭
if( type === “side” )
return;
super.close();
}
}

12.热更
layadcc E:/FBWork/SLGGAME/bin/h5re -cache -url http://192.168.5.125/slg/index.html
这是制作初始包的
layadcc .
这是更新包的
public void initEngine()
{
mProxy = new RuntimeProxy(this);
mPlugin = new GameEngine(this);
mPlugin.game_plugin_set_runtime_proxy(mProxy);
mPlugin.game_plugin_set_option(“localize”,“false”);
mPlugin.game_plugin_set_option(“gameUrl”, “http://192.168.5.125/slg/index.html”);
mPlugin.game_plugin_init(3);
View gameView = mPlugin.game_plugin_get_view();
this.setContentView(gameView);
isLoad=true;
}
改安卓代码

this.left = this.top = this.right = this.bottom = 0; 可以保持size和父容器尺寸一致

层级结构优化
在层级管理器中,组件图标前会有不同颜色的圆点。同样的颜色代表相同图集的节点,如果颜色值不同,如图3所示,则需要进行优化。

图3
(图3) 不同颜色的圆点交叉排列时,需要优化

优化的方式很简单,让同一层级下的相同颜色圆点排列在一起即可,这里有个小技巧需要注意一下,当拖到组件下,为一条直线时,是在同一层级改变顺序。如果在拖动组件的时候,显示是一个框,则会拖动到目标组件的子层级。另外,还可以通过快捷键来改变层级顺序,ctrl + 方向键向上为上移一个层级,ctrl+方向键向下为下移一个层级。

图4
(图4)

改变层级显示顺序后,圆点颜色相同时,才算达到优化的目标。如图5所示。

图5
15.
cacheAs技巧
对于经常变化的复杂UI,可以把UI分成两层,
较少变化的一层使用cacheAs,经常变化的层不使用。
例如有“倒计时”显示的UI,我们也可以把它分成倒计时部分和其他部分,其他部分进行cacheAs,倒计时部分不进行cacheAs。

图片
创建界面的时候可以 选中 创建逻辑类 他会自动帮你生成类 并且继承好ui类

猜你喜欢

转载自blog.csdn.net/qq_38913715/article/details/82786182
今日推荐