达叔的游戏框架(二) 得到其他模块的方式
你是背包模块 想得到技能模块
怎么做?
以下是常见的三种方式
一 每个模块都用单例 用的时候自己 getInstance()
二 提前注册 然后根据字符串得到相应模块 类似puremvc
三 在框架里写一些特殊字符 类似robotlegs spring
个人以为这些都太麻烦 要手写很多代码
我的做法是 约定大于配置
在MyGameInit里注册session的时候
系统会默认给你个字符串key
这个key就是你的类名第一个字母小写
比如 ShopSession 的 key 就是 shopSession
然后在背包模块里 你只要声明一个属性 var shopSession:ShopSession;
系统会自动给你赋值
你压根不需要考虑去哪拿这个模块
节省了很多代码 超级方便
但是仅限于在session模块里 如果是其他模块需要手动调用一下injOne
/** 给obj对象的所有属性注入 */
public static function injOne(obj:Object):void {
for (var str:String in obj) {
if( obj[str] == null && injMap[str] ){
obj[str] = injMap[str];
}
}
}
其实原理很简单 就是遍历所有属性
符合要求的赋值即可
有同学担心性能问题
其实不可不必
session在游戏初始化的时候就赋值好了
达叔的游戏框架(二) 得到其他模块的方式相关推荐
- Unity 游戏框架搭建 (二十一) 使用对象池时的一些细节
上篇文章使用SafeObjectPool实现了一个简单的Msg类.代码如下: class Msg : IPoolAble,IPoolType{#region IPoolAble 实现public vo ...
- unity游戏框架学习-框架结构
转眼毕业三年了,算上实习差不多四年的游戏开发了,一直想自己鼓捣套框架,奈何能力太次,不知道从哪开始.但是万事开头难,总要踏出第一步,才会有后面的两步,三步- 我认为的unity游戏框架就是一整套的工具 ...
- 基于状态机的游戏框架
一 定义 有限状态机就是一个具有有限数量状态, 而且可以依据对应的操作从一个状态变换到还有一个状态. 而在同一时刻仅仅能处在一种状态下的智能体. 英文:Finite State Machine 简称: ...
- Unity3D 学习笔记4 —— UGUI+uLua游戏框架
Unity3D 学习笔记4 -- UGUI+uLua游戏框架 使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程 在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的 ...
- 《分布式虚拟现实系统(DVR)》(Yanlz+Unity+SteamVR+分布式+DVR+人工智能+边缘计算+人机交互+云游戏+框架编程+立钻哥哥+)
<分布式虚拟现实系统(DVR)> <分布式虚拟现实系统(DVR)> 版本 作者 参与者 完成日期 备注 YanlzVR_DVR_V01_1.0 严立钻 2019.07.11 # ...
- (五)通过pygame搭建游戏框架
python飞机大战系列文章(按顺序) (一)通过pygame 将自己的图像添加到游戏中 (二)通过pygame让游戏人物 动起来 (三)通过pygame处理用户的鼠标键盘操作(事件和监听 (四)详解 ...
- 使用Entitas构建游戏框架(一)
使用Entitas构建游戏框架之Entitas源码解读 前言 一.为什么要ECS 二.Entitas介绍 源码介绍与使用: 1. Component 2. Entity 3. Matcher 4. G ...
- 致敬达叔!Python带你回顾达叔出演过的作品与合作过的演员
大家好,说到吴孟达,他和周星驰的喜剧可是我们少时美好记忆里的不可或缺的一部分. 达叔 星爷已经转到幕后很久了,而达叔其实一直都有活跃在荧幕.2019年国产高票房科幻电影<流浪地球>里的姥爷 ...
- Android游戏框架AndEngine使用入门
项目站点:http://www.andengine.org 项目地址:http://code.google.com/p/andengine 示例地址:http://code.google.com/p/ ...
- 简单的android游戏框架——zgf
一.zgf是什么 我花了一周时间整理了以前写的代码,发现很多代码可以重用,于是就做了一个简单的android游戏开发框架,名字叫zxx43 game framework,简称zgf,这个游戏框架使用起 ...
最新文章
- DBCP数据库连接打满原因分析
- [k8s] 第三章 k8s 资源管理
- python编程中文版百度百科_1.2 搭建python+pycharm编程开发环境
- 给大家分享微信小说域名防封最新的解决方案
- 任正非谈鸿蒙系统失误,谷歌也没想到会来的这么快,任正非谈鸿蒙:系统不难,生态快完善...
- 当凡尔赛文学遇上产品经理
- cvAdd()和 cvAddS()函数的使用
- JAVA知识学习——类的修饰符
- 【转】第00课导读:生活中的设计模式——启程之前,请不要错过我
- 手机应用软件测试经验总结
- Galaxy Digital CEO:比特币应能守住4万美元关口
- EXCEL2016学生表两列名字按相同排序,对比期中期末考试选出进步学生
- CREO:CREO软件之零件【渲染】之对三维零件实现渲染图文教程之详细攻略
- 二叉树 二叉树遍历 通过二叉树遍历求得二叉树
- python 创业_如何在下午使用python和破折号创业
- 拿什么拯救你,我的大规模杀伤性武器--Nokia!
- 甘肃阿克塞百余只“岩壁精灵”雪中觅食
- Oracle DUL/AUL/ODU
- C++开发方向之windows驱动开发
- 烤仔万花筒 | 护航原创,DAO组织在行动
热门文章
- 【matplotlib】画图怎样将中文为宋体-英文为新罗马字体
- matlab画图时如何将坐标设置为中文宋体,英文新罗马字体
- 《R数据科学》学习笔记|Note2:使用ggplot2进行数据可视化(上)
- 无论用手工处理还是用计算机进行处理,会计电算化试卷
- Spring Cloud(十二):Spring Cloud Zuul 限流详解(附源码)(转)
- 应用软件设计不是CRUD:如何进行应用系统功能模块的耦合性设计
- 快速上云(手把手教你把项目同步上云)
- python从某行开始读_python 读取行
- YouTube上的版权保护
- GNS3中配置直连交换端口的路由器端口IP地址