人气 238

[游戏程序] XNA GSE入门(五) GameComponent [复制链接]

九艺网 2017-3-10 17:01:30

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
<DIV class=storycontent> 转自:http://ledgame.meibu.com/ge/?p=31
GameComponent是什么?
GameComponent在XNA中是实现可视化游戏编程的一个重要方式。从概念上说,GameComponent应该算是一种编程模式,只要按这种模式写出来的代码,就可以在其他XNA项目中重用。这种编程模式非常利于代码的分享,这和XNA定位于免费发放给游戏爱好者是相关的。
GameComponent有什么用?
任何一个GameComponent都派生于GameComponent 类,GameComponent类有3个函数可以覆盖(override)
Draw 添加新的绘图代码
Update 添加逻辑更新的代码
Start 添加在游戏初始化时候需要运行的代码
在VC# 2005 EE里面,我们可以通过选择Project->Add New Item添加新的GameComponent,并且向导会为我们生成这3个函数的覆盖(override)代码
Game类里面的DrawComponent函数会依次调用每一个注册过的GameComponent的Draw函数。UpdateComponent则调用注册过的GameComponent的Update函数。在一个Game类里面注册GameComponent,要通过调用Game 类成员变量GameComponents的Add函数,GameComponents是一个GameComponentsCollection的对象。例如:
this.GameComponents.Add(this.testComponent);
GameComponent一般用来封装一些用户操作,也可以用来管理用户界面,比如在3D游戏中对第一人称摄像机的控制代码封装在一个GameComponent中,那么其他人需要实现一个FPS游戏就可以直接用了,如果将一些GameComponent做成dll发布,并将这些GameComponent添加到ToolBox里面,还可以实现可视化的编程。也可以将GameComponent作为游戏中的对象,比如一个游戏中的3d人物,把3d人物更新代码和绘制代码都放入一个GameComponent。不过这种用法我觉得是不可取的,因为这已经失去GameComponent类设计本意了。目前老外已经发布了一些好用了GameComponent了,大家有兴趣可以收集来做备用。如果你写出来也个好用的GameComponent,也请和大家分享。我觉得很有可能以后有专门收集XNA GameComponent的网站:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-3-29 08:41 , Processed in 0.135382 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.