cocos2d小型工程的代码组织结构

一、小型工程通常只有一个Scene,所有的弹窗都在这一个Scene中弹出;

比如:从主菜单界面进入选关界面,点选关卡进入游戏,只是删除一个layer,加载了另一个layer,并没有多个Scene  replace

代码管理上,Scene中只负责弹出各种弹窗,不负责游戏逻辑。游戏逻辑在主游戏场景的Layer中实现。


二、所有子窗口或弹窗,初始化后就不再销毁,或retain后再销毁,目的是保证下次弹出时没有卡顿。如果第一次弹出时有卡顿,就要在Scene初始化时,把弹窗内容new()或create()一次,但不要作为child加到任何node 上去;或把弹窗的大背景图切为左右2半,只使用一半,复制另一半拼成全图,可使内存降低到1/4


但这样弹窗中的数据更新就不能在init中更新,必须在init之外另写数据更新的函数,且必须保证弹窗layer每次弹出时更新数据的函数都被调用,比如放在onEnter中执行。


三、Scene的次级弹窗layer,比如选关layer、玩家信息layer等,尽量使用同一模板作为共同父类使用,保证弹出、关闭的动画的一致性。


四、数据跨layer传输

同一种数据的更新,尽量使用数据监听函数统一监听数据变化,不要单独分别调用数据读取函数硬读。这样可以保证数据更新的一致性,不至于多生枝节。


五、状态机

游戏的核心逻辑使用状态机处理,总比分别使用各个按钮事件、滑屏事件链接基本逻辑要清晰有条理的多。


六、任务列表

每日任务之类,单纯保存离散的数据,复杂难记,处理既复杂又易出错;不如存储为任务列表,tablejson表,方便条件判断和数据存取(限于lua)。xcode c++/oc环境,整理为dictionary 存储到plist


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值