Egret社区
本帖最后由 ztxxxx 于 2014-9-5 18:26 编辑

今天周五了,明天就过中秋节了。在这里祝大家中秋节快乐,同时推出一款我的第二个egret游戏【熊猫追月】。欢迎大家来玩。游戏UI设计为原创,禁止抄袭哦。

这次游戏开发学习到的知识总结:
1,学习到了JS随机永不重复的数组方法(随机左右月饼,同时随机月饼上中下3个位置)
js随机永不重复数详情:http://blog.sina.com.cn/s/blog_4e8612fb0100av4i.html  我用的是方案三,sort方法。公共方法写在了GameUtil.ts里。[mw_shl_code=javascript,true]export function shuffleArr(arr:any[])
    {
        return arr.sort(function(){ return 0.5 - Math.random(); });
    }[/mw_shl_code]用的方法:[mw_shl_code=java,true]var mooncakeArr:any[]=shuffleArr([0,1,2]);
for(var i:number=0;i<2;i++) {
var mooncakeYnum:any[] = [- 170, - 300, - 450];//记录月饼上下Y位置
theMooncake.y = mooncakeYnum[mooncakeArr];this.addChild(theMooncake);
}[/mw_shl_code]

这样就能每次生成月饼Y的位置时候,数值就不会重复了。

2,事件的发送与管理。例如:当树枝随机出现左右两边时,抛送当前Y值事件。  GameContainer接收事件,根据Y值设置月饼位置以及撞击Mc位置。。@白菜 的全局类。
发送:
[mw_shl_code= javascript,true]//随机到 左右 树枝,发送并携带当前随机的参数this.mathNum   1=出现右边竹子  2=左边
            var isRightEvent:panda.GlobalEvent=new panda.GlobalEvent("isRightEvent",this.mathNum);
            panda.GlobalListener.getInstance().dispatchEvent(isRightEvent);[/mw_shl_code]
接收:
[mw_shl_code= javascript,true]panda.GlobalListener.getInstance().addEventListener("isRightEvent",this.onIsRightEvent,this);

//接受左右树叶发送事件  携带参数,判断树叶在左右两边
        private onIsRightEvent(event:panda.GlobalEvent)
        {
            //  event.parm=1在右边  = 2在左边this.isRightNum=Number(event.param);
        }[/mw_shl_code]

3,根据触摸点,加载两只movieclip熊猫动画。(太可爱了,暴走熊猫,哈哈)

4,其实游戏有个bug,目前还没解决。可能是我太笨了。@白菜 是全局事件的发送接收延时造成的吗?
bug描述:游戏结束时们再次点击开始,前三个树枝携带的Y值,没有及时传到Gamecontainer里,只有最下面的树枝移除舞台时,再次添加到舞台携带的Y值才被捕捉到了。因为我是根据树枝的Y值来生成透明碰撞MC的,所以重新开始游戏之后前三个树枝是可以碰撞的。
我的解决方法:(在各位大神面前,都不好意思说了) 设置了ready go!字样提示用户游戏准备开始了。好让用户准备一下。当Go移除舞台时就到了第四个树枝添加的时候了,这样就能捕捉到Y值。

5,我用的是Enterframe事件,在安卓里会掉帧严重,魅族X3掉到了20FPS。所以安卓的中低配手机,会很卡,因为我有设置根据fps缓慢,加速运动。保证游戏性。

6,当离开屏幕一段时间或屏幕黑屏后,再次回到游戏页面,舞台出现N多元素,游戏也并未结束。请教一下,是Enterframe事件造成的吗?
egret能捕捉到用户黑屏时候的参数吗?捕捉到黑屏参数就暂停游戏。

这次就写这么多了!辛苦各位看官了!
游戏链接。

二维码

二维码



游戏流程展示:

游戏流程

游戏流程
参与人数 1贡献 +1 收起 理由
houhou + 1

查看全部评分

分享到 :
2 人收藏

10 个回复

倒序浏览
Wander  官方团队 | 2014-9-5 18:10:46
6,当离开屏幕一段时间或屏幕黑屏后,再次回到游戏页面,舞台出现N多元素,游戏也并未结束。请教一下,是Enterframe事件造成的吗?
egret能捕捉到用户黑屏时候的参数吗?捕捉到黑屏参数就暂停游戏。


这个问题 Egret 1.1 会添加一个 事件来处理这个问题,事件名和 flash 一样, Event.ACTIVITY ( 好像叫这个)

1.1 照例会在下周五发布,敬请关注
ztxxxx  登堂入室 | 2014-9-5 18:15:14
Wander 发表于 2014-9-5 18:10
6,当离开屏幕一段时间或屏幕黑屏后,再次回到游戏页面,舞台出现N多元素,游戏也并未结束。请教一下,是En ...

感谢弯弯大的指教!
7yue  官方团队 | 2014-9-6 07:46:00
这是中秋节带给开发者最好的礼物!
codefish  圆转纯熟 | 2014-9-7 00:07:28
7yue 发表于 2014-9-6 07:46
这是中秋节带给开发者最好的礼物!

七月,不要把菊花暴露给别人
王浩1991  登堂入室 | 2014-9-7 10:45:17
不错,你学了多久了!!
change  斑竹 | 2014-9-9 10:58:42
  赞!赞!赞!
ztxxxx  登堂入室 | 2014-9-9 12:49:19
王浩1991 发表于 2014-9-7 10:45
不错,你学了多久了!!

学习了大概半个月左右吧,这是第二个小游戏,纯粹为了好玩才学习。哈哈
ztxxxx  登堂入室 | 2014-9-9 12:49:42

谢谢捧场!
ztxxxx  登堂入室 | 2014-9-9 12:50:37
codefish 发表于 2014-9-7 00:07
七月,不要把菊花暴露给别人

这也让您发现了!哈哈。。。太邪恶了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部