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.数组报空
有时候,游戏过程中我们可能会经常需要进行清空数组,赋值,清空,赋值。。。操作,你明明在声明数组的时候已经初始化了,但是在清空之后赋值会报如下错误:
这个错误我不知道是怎么引起的,但是经过询问各路大神,我最终解决了,解决办法就是:避免在声明是赋值
Egret白鹭开发小游戏中容易犯的错的更多相关文章
- Egret白鹭开发小游戏之自定义load加载界面
刚接触不久就遇到困难------自定义loading.想和其他获取图片方式一样获取加载界面的图片,结果发现资源还没加载就需要图片,在网上百度了许多,都没有找到正确的方式,通过自己的摸索,终于,,,我成 ...
- Egret白鹭H5小游戏开发入门(二)
前言: 昨天的文章中简单的介绍了Egret白鹭引擎从安装到基本的使用配置等问题,今天着重介绍H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明,开始布局等等. 整体概况: 根据上一篇 ...
- Egret白鹭H5小游戏开发入门(三)
前言: 在上一篇文章中着重介绍了H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明等等,那么今天主要是涉及到场景的创建,loading的修改等等的代码编写. 对于这一节,我在讲解的过 ...
- Egret白鹭H5小游戏开发入门(一)
前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJS,玩得了Egret,又学过PIXI.js. ...
- Egret白鹭开发微信小游戏排行榜功能
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 最近事情特别多,今天终于实现了排行榜功能,记录下来大家一起学习学习. 一.调用默认排行榜 首先我们需要了解: 1.白鹭开 ...
- Egret白鹭开发微信小游戏分享功能
今天给大家分享一下微信分享转发功能,话不多说,直接干 方法一: 1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴) /** * 平台数据接口. * 由于每款游 ...
- Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)
假设我们要实现的功能是从小游戏A跳转到小游戏B 对于小游戏A: (1)在platform.ts中添加代码如下: /** * 平台数据接口. * 由于每款游戏通常需要发布到多个平台上,所以提取出一个统一 ...
- egret引擎中使用tiled运行在微信小游戏中
egret的官方文档,对tiled的介绍不是很细致,很多东西都需要摸索.现在把踩的坑记录下来.作为一个备忘 引用tiledmap的库 在GitHub上下载egret的tiledmap支持库:https ...
- Java开发小游戏 用键盘控制精灵在游戏中上下左右跑动 窗体小游戏可打包下载,解压后双击start运行
package com.swift; import java.awt.Point; import java.awt.event.KeyEvent; import com.rupeng.game.Gam ...
随机推荐
- 学习16内容# 1.自定义模块 # 2.time # 3.datetime # 4.random
模块的定义与分类 模块是什么? 这几天,我们进入模块的学习.在学习模块之前,我们首先要知道,什么是模块? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先不考虑面向对象).比如 ...
- CF175C Geometry Horse(贪心)
CF175C 贪心,注意有不少细节,很容易死循环TLE 贪心是显而易见的,每次枚举价值最小的物品,进行销毁操作 朴素的枚举每一件物品复杂度为\(O(\sum k_i)\),明显超时 我们注意到朴素的+ ...
- CentOS EPEL yum源
CentOS EPEL yum源 用yum安装软件时,经常发现我们的yum源里面没有该软件,比如htop.网上查到的一个方案是需要自己去wget源码,然后configure,make,make ins ...
- 执行shell脚本的四种方式
这篇文章主要介绍了Linux中执行shell脚本的4种方法,即总结在Linux中运行shell脚本的4种方法. 前提:bash shell 脚本的方法有多种,假设我们编写好的shell脚本的文件名为h ...
- 【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常
这两天照书上的例子写代码时,出现了这个异常. 上网查了不少,有人说链接失效什么的……但发现都不是那些原因,问题出现在下面这句代码: [[NSBundle mainBundle] loadNibName ...
- CTF杂项题解题思路
下载压缩包解压 如果是图片就先查看图片信息 没有有用信息查看图片看是否是一个图片 如果不是图片就将文件进行还原 从还原文件中查找有用信息 例:这是一张单纯的图片 http://123.206.87.2 ...
- codeforces 339 D.Xenia and Bit Operations(线段树)
这个题目属于线段树的点更新区间查询,而且查的是整个区间,其实不用写query()函数,只需要输出根节点保存的值就可以了. 题意: 输入n,m表示有2^n个数和m个更新,每次更新只把p位置的值改成b,然 ...
- Tomcat源码分析 (二)----- Tomcat整体架构及组件
前言 Tomcat的前身为Catalina,而Catalina又是一个轻量级的Servlet容器.在美国,catalina是一个很美的小岛.所以Tomcat作者的寓意可能是想把Tomcat设计成一个优 ...
- Xamarin Android 监听音量键(下)
上篇在 MainActivity 中重写了按键事件(OnKeyDown),获取了音量键键值并打印了出来,当然,手机物理按键和虚拟按键(音量键.返回键.菜单键等)均可通过该按键事件被捕获. 但是,按键重 ...
- elk系列教程:docker中安装配置elk
elasticSearch Docker安装elasticsearch: docker pull docker.io/elasticsearch:7.2.0 启动: docker run -p 920 ...