电玩巴士 > PSV > 软件教程 > 正文

PS Suite SDK官方开发帮助文档完整中文翻译

发布时间:2012/5/29 16:33:44 来源:电玩巴士 作者:天楼神威

论坛PSS专区

  编程向导之四:面向对象(下)

  该文档讲述的是面向对象的技术。

  演员模型

  让我们来实现一个游戏所必须的更多角色。
  ·星星:自己发出的子*弹
  ·敌人:子*弹命中时的爆炸

  如果分别实现上述特征,那么程序将逐渐变得繁杂起来。如果只有5种还好,但如果种类大量增加,程序的管理就变得难以收拾了。提取游戏中所使用的通用要素的话,会使管理变得更加方便。下面解释如何通过获取通用要素来创建基类,并派生出玩家、敌人、星星和发出的子*弹等内容。

  请打开"Sample/Tutorial/Sample04_02"。这里使用了被称为“演员模型”的技术。玩家、星星、**逐个被选为演员,然后程序将对它们实施命令。下面的程序将定义演员基类。
  Sample/Tutorial/TutoLib/Actor.cs

  关键点是通过virtual将每个函数都实现为一个虚函数。继承类将重写虚函数,重写的方法将被调用。演员可以通过调用AddChild()函数来添加子演员。AddChild()如下图所示。

  1、首先创建一个作为根节点(源头)的演员。

  2、调用root.AddChild(player)来添加一个player。

  3、调用root.AddChild(starManager)来添加一个用来分别管理星星的starManager。

  4、这次将starManager作为父节点,然后通过starManager.AddChild(star0)来添加star0,并通过starManager.AddChild(star1)来添加star1。

  由于演员是呈树状结构的,所以比单纯的线型连接更加方便。当Main()中的Update()调用root.Update()和Render()调用root.Render()时,那么所有属于树结构中的演员将执行处理。

  制作Actor类的派生类

  框架的引用

  由于演员会经常和框架打交道,所以要保存一个框架的引用。在下面的程序里将定义Actor的派生类GameActor。
  Sample/Tutorial/Sample04_02/GameActor.cs

  追加类成员GameFrameworkSample gs和SimpleSprite sprite,游戏中所使用的角色演员都是通过GameActor类派生出来的。

  Player类

  在下面的程序中,定义的Player类是从GameActor类中继承而来的。
  Sample/Tutorial/Sample04_02/Player.cs

  虽然来自控制器的输入和以前一样,不过玩家无法移动出屏幕了。注意别忘记调用base.Update()和base.Render(),如果忘记调用,它们的子节点则不会被处理。

  条件编译

  #if DEBUG~#endif之间是用来显示玩家坐标的。只有当生成选项是Debug时,这些位置的代码才会有效。当生成选项是Release时,这些位置的代码则不会显示,因此只想在开发期间显示的Debug,这样写会更加方便。

  定义Star类

  接下来将定义Star类,做法和Player类一样。
  Sample/Tutorial/Sample04_02/Star.cs

  用Update()给每一帧加算speed来更新坐标,由此来实现星星从上向下移动。当移动到屏幕外时,将星星的Y坐标设置为0.0,这时将随机给定一个X坐标,使其再次从屏幕上方出现。

  注册演员

  创建已经定义的类的实例,并通过root.AddChild()注册演员树,代码如下。
  Sample/Tutorial/Sample04_02/GameFrameworkSample.cs

  通过以上代码,演员树将如下图所示。

  如果调用root.Update()和root.Render(),所有已注册的演员将被处理。
  Sample/Tutorial/Sample04_02/GameFrameworkSample.cs

  与之前的代码相比更加流畅,书写简洁的代码在大型程序项目中是十分重要的。让我们试着生成并运行程序,屏幕上出现了星星。

  运行时会发现:

  ·Player类中定义的Update()调用时,通过玩家坐标来反映控制器的输入。
  ·Star类中定义的Update()调用时,会使星星自上而下移动。
  这种操作在面向对象中被称为“多态性”。

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  ... 下一页  >> 

提示:支持键盘“← →”键翻页 阅读全文

相关推荐

评论