运用EntityComponent架构的游戏引擎快速开发HTML5游戏

运用EntityComponent架构的游戏引擎快速开发HTML5游戏

ID:42728320

大小:830.24 KB

页数:31页

时间:2019-09-21

运用EntityComponent架构的游戏引擎快速开发HTML5游戏_第1页
运用EntityComponent架构的游戏引擎快速开发HTML5游戏_第2页
运用EntityComponent架构的游戏引擎快速开发HTML5游戏_第3页
运用EntityComponent架构的游戏引擎快速开发HTML5游戏_第4页
运用EntityComponent架构的游戏引擎快速开发HTML5游戏_第5页
资源描述:

《运用EntityComponent架构的游戏引擎快速开发HTML5游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、@原木博皞运用Entity/Component架构的游戏引擎快速开发HTML5游戏AboutMe唐博皞BoydTang@原木博皞Startuper/原木游戏工作室Co-Founder独立游戏开发者折腾Flash/HTML5游戏高端骨灰级游戏玩家(高玩,恩=-=)Outline游戏编程的演变–从数据驱动的GameObject结构再到Entity/Component架构架构思路-Entity/Component的实现特点CraftyJS-HTML5中的ComponentBased游戏引擎Demo/Practice–HTML

2、5CodeJam48小时作品如果要做一个游戏,你会怎么写?有一个Main函数functionmain(){ while(/*游戏没结束*/){/*在循环里写游戏更新逻辑*/} /*游戏结束出现游戏结果*/}更新逻辑是啥?一个player和一堆monsterplayer.update();//player需要不断更新for(vari=0;i

3、界中所有的物体都是GameObject角色,怪物,环境障碍,车辆,子弹,摄像头,触发器,灯光现在在Main函数中怎么写?for(vari=0;i

4、igger如果想在GameObject结构下添加功能呢?GameObjectDrawableStaticSimulatedAnimatedPlayerMonsterTrigger更复杂的情况呢…GameObjectDrawableStaticSimulatedAnimatedPlayerMonsterTriggerPhysics?经典GameObject结构的问题很多功能无法单纯靠继承实现,最终的代码结构并不是一个有向无环图类继承导致难以轻易改变结构功能全都向上依赖子类的数据爆炸,大量冗余数据和方法并导致内存消耗过大那

5、神马是Entity/Component架构?从GameObject到GameEntity游戏中所有的Object都是GameEntityGameEntity只是一个容器GameEntity里含有一堆独立功能的ComponentsComponent之间的互相访问,通过GameEntity传递Component可以实时增减,动态为GameEntity增减功能现在的GameEntity结构PlayerDrawableUpdateAnimatedPositionPhysicsMonsterDrawableUpdatePosit

6、ionPhysicsPropsDrawableAnimatedPositionPhysicsTriggerUpdateEntity/Component架构的实现特点GameEntity是一个容器,其主要功能仅仅是增减Components组件(Component)才是功能的携带者,组件可以有一定依赖关系。例如:Animated组件依赖于Drawable组件属性(Property)是组件间互相访问的主要实现方法。属性由特定组件具有的一系列提供setter和getter方法。例如:Position组件提供x,y属性,Upda

7、te组件进行修改。一些关于Entity/Component的常见问题一个GameEntity可以有多个相同的Component么?是的,理论上是可以的。一般GameEntity的实现可以根据Component的ClassName来进行hash,也可以通过给Component实例设置Name进行hash。如果需要避免冲突,可以选择根据ClassName来实现。传统的GameObject有个统一的update,GameEntity的update呢,是一个Component嘛?其实并不是这样的,GameEntity的upda

8、te可以是interface,当Component实现此interface后,即具备了update功能。也可以是事件驱动下,Component监听发到GameEntity的update事件。整个游戏世界中GameEntity是全都是同级的么?GameEntity的实现时,可以增加GameEntityGroup的实现()。这样就可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。