Soumettre la recherche
Mettre en ligne
Hxhsm——取代mvc的状态机框架
•
Télécharger en tant que PPT, PDF
•
4 j'aime
•
1,338 vues
Tencent
Suivre
by atry
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 24
Télécharger maintenant
Recommandé
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Twitter bootstrap2.0 taste
Twitter bootstrap2.0 taste
Tencent
Viny storage—网络游戏数据存储的终极解决方案
Viny storage—网络游戏数据存储的终极解决方案
Tencent
Web开发人员之路
Web开发人员之路
Tencent
Qt 基础
Qt 基础
Tencent
Flask With Server-Sent Event
Flask With Server-Sent Event
Tencent
Meteor
Meteor
Tencent
Introduction to hubot
Introduction to hubot
Tencent
Recommandé
Unity遊戲程式設計 - 2D移動與碰撞處理II
Unity遊戲程式設計 - 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Twitter bootstrap2.0 taste
Twitter bootstrap2.0 taste
Tencent
Viny storage—网络游戏数据存储的终极解决方案
Viny storage—网络游戏数据存储的终极解决方案
Tencent
Web开发人员之路
Web开发人员之路
Tencent
Qt 基础
Qt 基础
Tencent
Flask With Server-Sent Event
Flask With Server-Sent Event
Tencent
Meteor
Meteor
Tencent
Introduction to hubot
Introduction to hubot
Tencent
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
John L Chen
component based html5 game engine
component based html5 game engine
hbbalfred
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
为独立工作室构建跨平台引擎
为独立工作室构建跨平台引擎
Coconut Island
Introduction of Reverse Engineering
Introduction of Reverse Engineering
YC Ling
AngularJS training in Luster
AngularJS training in Luster
Jason Chung
腾讯大讲堂44 qq game后台开发介绍
腾讯大讲堂44 qq game后台开发介绍
George Ang
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
PMCamp
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
areyouok
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
Fred Chien
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
amd6400
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
amd6400
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
宗凡 楊
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
hydai
Graphic programming in js
Graphic programming in js
jay li
資工人的學習成長之路
資工人的學習成長之路
Murphy Chen
Tcfsh bootcamp day2
Tcfsh bootcamp day2
Xatierlike Lee
香港六合彩
香港六合彩
香港六合彩 香港六合彩
六合彩
六合彩
香港六合彩
Contenu connexe
Similaire à Hxhsm——取代mvc的状态机框架
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
John L Chen
component based html5 game engine
component based html5 game engine
hbbalfred
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
zhangsuoyong
为独立工作室构建跨平台引擎
为独立工作室构建跨平台引擎
Coconut Island
Introduction of Reverse Engineering
Introduction of Reverse Engineering
YC Ling
AngularJS training in Luster
AngularJS training in Luster
Jason Chung
腾讯大讲堂44 qq game后台开发介绍
腾讯大讲堂44 qq game后台开发介绍
George Ang
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
PMCamp
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
areyouok
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
Fred Chien
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
amd6400
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
amd6400
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
宗凡 楊
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
hydai
Graphic programming in js
Graphic programming in js
jay li
資工人的學習成長之路
資工人的學習成長之路
Murphy Chen
Tcfsh bootcamp day2
Tcfsh bootcamp day2
Xatierlike Lee
香港六合彩
香港六合彩
香港六合彩 香港六合彩
六合彩
六合彩
香港六合彩
Similaire à Hxhsm——取代mvc的状态机框架
(20)
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
component based html5 game engine
component based html5 game engine
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
为独立工作室构建跨平台引擎
为独立工作室构建跨平台引擎
Introduction of Reverse Engineering
Introduction of Reverse Engineering
AngularJS training in Luster
AngularJS training in Luster
腾讯大讲堂44 qq game后台开发介绍
腾讯大讲堂44 qq game后台开发介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
腾讯大讲堂51 游戏产品运营事故案例介绍
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
Graphic programming in js
Graphic programming in js
資工人的學習成長之路
資工人的學習成長之路
Tcfsh bootcamp day2
Tcfsh bootcamp day2
香港六合彩
香港六合彩
六合彩
六合彩
Hxhsm——取代mvc的状态机框架
1.
hxhsm 取代 MVC 的状态机框架
杨博 @ 葡萄藤 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
2.
目录
• 为什么要用 HSM ? • 什么是 HSM ? • Haxe 的 HSM 实现—— hxhsm Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
3.
为 什么 要用
HSM ? Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
4.
为 什么 要用
HSM ? 网 • 显示 页 – Flash Player 已经封装了底层操作 游 – UI 框架成熟 戏 最 • 网络 难 – 多种成熟解决方案 的 • Protobuf 、 AMF…… 是 什 • 业务逻辑 么 – 占用游戏大部分代码量 ? – 需要控制其他所有模块:显示、网络…… – 不同于“领域逻辑” • 无法提取简单正交的接口 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
5.
为 什么 要用
HSM ? 策 1. 行走结束,等待玩家操作 a. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束交互逻辑。 划 b. 玩家点击一张可用占地卡且无需消耗额外卡牌,那么放置该占地生物并结 描 束交互逻辑。 c. 玩家点击一张可用占地卡且需要消耗额外卡牌,那么等待玩家点击消耗的 述 卡牌: 的 a. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束交互逻辑 b. 玩家点击要消耗的卡牌,那么放置占地生物、两张卡牌都消耗并结束交互逻辑。 交 c. 玩家点击取消按钮,那么,返回步骤 1. d. 玩家点击刚才经过移动时经过的己方生物,弹出土地操作菜单: 互 a. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束交互逻辑 逻 b. 玩家选择潜在能力,并且该潜在能力可以直接使用,那么使用潜在能力并结束交互逻 辑 辑 c. 玩家选择潜在能力,并且该潜在能力需要对另一玩家使用,那么: I. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束交互逻辑 II. 玩家点击玩家头像,那么使用潜在能力并结束交互逻辑 III. 玩家在地图上点击玩家,那么使用潜在能力并结束交互逻辑 IV. 玩家点击取消按钮,那么,返回步骤 1. d. 玩家选择潜在能力,并且该潜在能力需要对另一地块使用,那么: 1. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束交互逻辑 a. 玩家在地图上点击地块,那么使用潜在能力并结束交互逻辑 b. 玩家点击取消按钮,那么,返回步骤 1. 其他情形…… 其他情形…… Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
6.
为 什么 要用
HSM ? class WalkCompleteCommand extends Command 面 { public static const STATE_WAIT:String = "wait"; 向 public static const STATE_CARD_SELECTED:String = "cardSelected"; public static const STATE_DONE:String = "done"; 对 // ...... private var state:String; 象 private function card_clickHandler(event:MouseEvent):void 风 { switch (state) 格 { case STATE_WAIT: 的 { state = STATE_CARD_SELECTED; 逻 // ...... break; 辑 } case STATE_CARD_SELECTED: { 代 // ...... break; 码 } // ...... } } } Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
7.
为 什么 要用
HSM ? const effect1:DisplayObject = 异 playOnce(movieCache,effectPath,function():void 步 { 风 const effect2:DisplayObject = playOnce(movieCache,effectPath,function():void 格 { 的 // ... const battleEffect:DisplayObject = 逻 playOnce(moviecache,battleeffectpath,function():void 辑 { const battleCtrl:BattleCtrl = new BattleCtrl(); 代 battleCtrl.addEventListener(Event.CLOSE, 码 function(event:Event):void { callback(); }) battleCtrl.initialize(move.new_position, creature,creatureData); }); }); }); Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
8.
为 什么 要用
HSM ? 状 态 机 风 格 的 逻 辑 代 码 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
9.
为 什么 要用
HSM ? 层 级 状 态 机 ( HSM ) 的 逻 辑 代 码 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
10.
为 什么 要用
HSM ? 1. 行走结束,等待玩家操作 a. 玩家长时间不操作,超过时限,那么,跳过玩家操作并 结束交互逻辑。 b. 玩家点击一张可用占地卡且无需消耗额外卡牌,那么放 置该占地生物并结束交互逻辑。 c. 玩家点击一张可用占地卡切勿要消耗额外卡牌,那么等 待玩家点击消耗的卡牌: a. 玩家长时间不操作,超过时限,那么,跳过玩家操作 并结束交互逻辑 b. 玩家点击要消耗的卡牌,那么放置占地生物、两张卡 牌都消耗并结束交互逻辑。 c. 玩家点击取消按钮,那么,返回步骤 1. d. 玩家点击刚才经过移动时经过的己方生物,弹出土地操 作菜单: a. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结束 交互逻辑 b. 玩家点击取消按钮,那么,土地菜单消失,回到步骤 1. c. 玩家选择潜在能力,并且该潜在能力可以直接使用,那么使 用潜在能力并结束交互逻辑 d. 玩家选择潜在能力,并且该潜在能力需要对另一玩家使用, 那么: I. 玩家长时间不操作,超过时限,那么,跳过玩家操作并结 束交互逻辑 II. 玩家点击玩家头像,那么使用潜在能力并结束交互逻辑 III. 交互逻辑描述和状态机结构一一对应 玩家在地图上点击玩家,那么使用潜在能力并结束交互逻 辑 IV. 玩家点击取消按钮,那么,返回步骤 1. 其他情形…… 其他情形…… Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
11.
什么 是 HSM
? Hierarchical State Machines 层级状态机 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
12.
什么 是状态 机 •
状态机是有向图 – 状态节点 – 状态转移函数 • 状态转换函数 State(S) × Event(E) -> Actions(A), State(S') Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
13.
状态图 vs 流程图
状态图 流程图 操作执 行过 程 线 节点 事件 线 无 状态 (等待下一事件) 节点 无 执 行分支 隐含在线中 条件节点 编 程模型 事件驱动 结构化 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
14.
什么 是 HSM •
全称 – Hierarchical State Machines (层级状态机) • 层级状态机 = 有限状态机 + Slave/Master 职责链 • 特别适用于游戏 – 交互逻辑 – AI – 动作控制 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
15.
hxhsm Haxe
的 HSM 实现 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
16.
hxhsm 特
• 简单:只需编写 PureMVC 五分之一的代码 点 • 规范: – 策划:自动根据状态机定义绘制状态图 – 程序:自动生成程序代码;静态类型检查 – QA :提供基于状态机的录像 • 跨平台: HTML5 、 Flash 、 Android 、 iOS 、 Window s 、 Linux 、 Mac OS X Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
17.
hxhsm 用法 步 骤 一 状 态 定 义
Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
18.
hxhsm 用法 步 骤 一 状 态 定 义
Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
19.
hxhsm 用法 步 骤 二 自 动 生 成 主 程 序
Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
20.
hxhsm 用法 步 骤 三 人 工 编 写 钩 子
Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
21.
hxhsm 用法 步 骤 四
(完) 发 布 游 戏 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
22.
广告
• 提供 VinyCross 引擎授权 • 招募创业伙伴 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
23.
One More Thing
事件录像 Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
24.
参考
• 维基百科:内聚的类型 • PureMVC • Haxe • 维基百科:层级状态机 • 讲师 杨博(邮箱 ·Github·Google Code· 博客) Copyright © 2013 深圳市葡萄藤网络科技有限公司 版权所有
Télécharger maintenant