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

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

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

论坛PSS专区

  编程向导之八:完成游戏

  本节将针对2D射击游戏完成前的内容进行说明。

  敌人、敌人子*弹、敌人管理

  那么,让我们来逐个实现游戏中所必须的角色类吧。可以通过实现星星和自机子*弹同样的方法来实现这些类。请打开sample/Tutorial/Sample08_01/Sample08_01.sln。

  Enemy类

  首先实现敌人类。

  从出现开始,经过60帧之后,敌人即开始朝自机发射子*弹。以direction=direction.Normalize()将方向矢量单位化。当敌人移出屏幕时,就给它设置一个死亡标记。

  EnemyBullet类

  接着实现敌人**类。

  用参数的方向矢量乘以速度计算出移动矢量,通过Update()函数累加每一帧的移动矢量。当子*弹移出屏幕时,就给它设置一个死亡标记。

  EnemyCommander类

  下面实现管理敌人出现的类。

  每隔30帧,从屏幕上方出现一次敌机。接着通过GameFrameworkSample.cs来配置如下演员树。

  那么运行一下试试看。

  敌人从屏幕上方出现,并且朝自机发射子*弹。因为还没有检测是否命中,所以子*弹直接穿过去了。

  碰撞检测和爆炸效果

  CollisionCheck

  下面设置一个碰撞检测,如果命中目标,则会产生一个爆炸效果。请打开sample/Tutorial/Sample08_01/Sample08_02.sln。
  sample/Tutorial/Sample08_02/CollisionCheck.cs

  为了执行碰撞检测,需要从演员树中开始搜索各演员的Manager类,并以foreach对各个坐标进行碰撞检测。通过Manager类的树状管理,那些不需要进行碰撞检测的演员(例如星星和爆炸效果等)从一开始就被排除在外了,所以会提高运行效率。如果碰撞检测为真,就为该演员设置一个死亡标记,并产生爆炸效果。产生爆炸效果的方法与其它演员类似。

  改造Player类

  顺便说一句,如果是在自机发生爆炸时和之后的无敌时间中,是无须进行碰撞检测的。为了提高效率,实现一个代表Player状态的变量,并在恰当的时候进行处理。
  sample/Tutorial/Sample08_02/Player.cs

  接着就要在碰撞检测时查看playerStatus,并进行处理。

  管理游戏进行的类

  GameManager

  接着,让我们来制作简单的开场画面、GameOver画面以及显示得分吧。下面我们来制作一个管理游戏进行的类。
  sample/Tutorial/Sample08_02/GameManager.cs

  GameManager类会以以下流程来进行游戏。
  ·在开场画面中,按键来开始游戏。
  ·游戏中,剩余机体为0时即为GameOver。
  ·在GameOver画面中经过一段时间之后,或者按键之后,就会再度回到开场画面中。
  演员树的最终形态如下所示。

  完成游戏

  游戏总算完成了,按F5执行以下看看吧。虽然只是个简单的游戏,但游戏进行的所有必要结构都一应俱全,之后也可以根据自己的喜好来进行各种修改。

 << 上一页  [9] [10] [11] [12] [13] [14] [15] [16] 下一页

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

相关推荐

评论