【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

发布时间:2012-05-08 14:55:32 网友评论0|进入论坛

  本文来源:PSS开发网,转载请注明出处!

  论坛讨论帖:http://bbs.duowan.com/thread-27455670-1-1.html

  Actor模型:

  让我们加入更多的游戏中需要的元素。

  ·星星
  ·你打出去的子弹
  ·敌人
  ·子弹打中时的爆炸效果

  如果上面提到的元素分开加入实现,程序将会变得越来越复杂。如果只是5种元素还是可以管理的,但是如果有一大堆元素,就不可能正常管理了。

  提取出游戏中元素之间共同部分,然后进行调用,会使得游戏管理变得简单。

  下面解释如何创建出一个基类,该基类包含其他元素中的共同元素。然后利用此基类来生成玩家,敌人,星星和子弹。

  打开Sample/Tutorial/Sample04_02.

  这部分用到的技术叫做Actor模型(actor model)。Actors充当玩家,敌人,星星,子弹的角色,他们会被赋予指令,程序就能执行了。

  在下面的程序中,定义了actor基类。

  Sample/Tutorial/TutoLib/Actor.cs

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

  关键点在于,每个函数前都有" virtual "声明,代表这个函数是一个虚函数。这就意味着,当子类覆盖了这个虚函数时,程序调用这个函数时,调用的就会是子类的函数。

  通过AddChild()函数,Actor可以添加一个子Actor。下面是AddChild()的图解。

  1. 首先,创建一个根actor(root actor)。

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

  2. 利用AddChild(player)添加一个玩家(player)。

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

  3. 利用root.AddChild(starManager)来添加星星管理器(starManager), 用来管理每个星星。

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

  4. 现在,将starManager作为父类,利用starManager.AddChild(star0)和starManager.AddChild(star1)方法,来添加star0和star1。

【PSS SDK官方教程文档翻译】(7)编程向导之四:面向对象_2

  针对actors制作一个树形结构,相比线性结构来说,使用起来会更方便。

  当root.Update()和root.Render()在Main()方法中的Update()和Render()方法调用时,程序将根据树图中所有actors的关系依次执行。

温馨提示:玩家可通过手机登陆tv.duowan.cn阅读多玩TVG新闻。 转帖到:
看完本文后有何评价? 已有0人评价,点选表情后可看到其他玩家的表态。
0
0
0
0
0
0
路过 期待 喜欢 讨厌 雷倒 泪奔

近期关注

  • 云玩游戏上线!3A大作免费“云玩”
  • 2018科隆游戏展透露开幕式内容 各大厂新作首爆
  • Twitch新竞争对手? Valve悄然上线“Steam TV”
  • 《刺客信条 奥德赛》新海战预告片 注重短兵相接
  • 《怪物猎人 世界》主机版8月17日活动列表更新
  • 《FF14》制作人吉田直树:WeGame版本不会变味
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6