zoukankan      html  css  js  c++  java
  • Egret白鹭开发小游戏中容易犯的错

     在游戏开发过程中遇到问题,请首先查阅:http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/minigameFAQ/index.html

    1.忘记给可点击的游戏对象添加点击开关。

    startBtn.touchEnabled=true;

    2.button按钮的点击效果

    (1)新建皮肤text

    (2)点击源码,修改class为:“skins.皮肤文件名”

    (3)将button拖至皮肤处

    (4)点击设计中button按钮

    (5)为button设置抬起,按下,禁用的图片资源名

     

    (6)json中添加详细信息,前面一样的,只需改变exml文件名。

    (7)代码中使用button。" "中的内容为(6)中添加的内容。

     3删除一个对象

    执行删除操作时,“显示对象”必须拥有父级。换句话说,被删除的显示对象必须存在于容器对象当中。

    避免这种问题的处理方法是:每次removeChild之前,对即将要被删除的显示对象做一次判断,判断它是否拥有父级。判断的代码如下:

    if( spr.parent ) {
        spr.parent.removeChild( spr );
    }

     4.点击一次按钮响应多次点击事件

    这是博主最近在公司做成就系统模块碰到的bug,改了一晚上,通过各种调试知道错误的原因,但是还是没发现根源,询问大佬后才恍然大悟,下面先介绍下bug

    点击成就按钮进入成就系统,成就系统里面有两个可以翻页的按钮,分别定义为lastBtn,nextBtn。第一次进入游戏一切正常。

    第二次进入游戏点击nexBtn会发现变成了第三个成就(默认成就系统每次打开是第一个成就),再点击一次nextBtn,显示第5个成就。

    主要代码如下:

    问了各种大佬之后被告知,lastBtn,nextBtn每次添加监听事件之前没有移除之前的监听事件。,于是改代码如下:

    总结:给按钮添加了监听事件一定要记得移除。

    5.打开排行榜IOS闪烁

    ios打开排行榜,数据刷新,导致屏幕闪烁,解决办法:将开放数据域与主域中帧率调高至60(但是调高有一个影响是,耗电)。

    6.好友排行榜无法关闭问题

    (前提:世界排行写在主域,好友排行再子域)在代码中的逻辑:打开世界排行榜时首先关闭好友排行榜,再显示世界排行榜;打开好友排行榜时首先关闭世界排行榜,再显示好友排行榜。这样的逻辑看上去时完全正确的,但是存在一个很大的隐患,如果你多次连续点击好友列表,那么你回打开多个好友列表,当你再次打开世界排行时你回发先好友排行显示再世界排行里面了。

    主要代码如下:

    显示效果:

    那么我们如何处理这个问题呢,其实很简单,我们只需要在打开某个排行榜时先判断该排行榜是否已经显示,修改后的代码如下:

     7.数组报空

    有时候,游戏过程中我们可能会经常需要进行清空数组,赋值,清空,赋值。。。操作,你明明在声明数组的时候已经初始化了,但是在清空之后赋值会报如下错误:

    这个错误我不知道是怎么引起的,但是经过询问各路大神,我最终解决了,解决办法就是:避免在声明是赋值

  • 相关阅读:
    自定义TextInput中displayAsPassword的字符
    C#序列化与反序列化代码记录
    解决Discuz!NT"Code: 100, Message: 指定..."问题
    如何在asp.net项目开发的验证码图片和打印中区别0和O(零和字母O)
    "淘宝开放平台"可以成为程序员的摇钱树吗?
    Discuz!NT与asp.net整合集成实例教程
    最震撼的大片《2012》世界末日 电影 高画质 超DVD版清晰效果 在线视频播
    划时代的感人大片!《机器人总动员》(WALL.E) 在线播放
    从数据库某表转换并导入数据到另一表
    界面原型设计工具选择报告
  • 原文地址:https://www.cnblogs.com/shirln/p/9235247.html
Copyright © 2011-2022 走看看