- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity高级项目实战课件01点击动作游戏讲述
攻击的碰撞检测的执行时间,会比攻击动作的播放时间稍微长一些。如果提前按下鼠标按键,怪物就将进入上面所说的碰撞检测的球体中,这就意味着攻击成功(图)。格斗游戏中常常有“预判断”的说法。像这种敌人朝着玩家快速扑来的游戏,加人这种机制后会让游戏变得更容易上手。 * 7.2武士的攻击判定 7.3判断在多近的距离斩杀 通过提前进行碰撞检测和延长检测的时间,就可以应对怪物快速运动的情况。那么,现在让我们回到主题,看看如何才能计算出. “武士在多近的距离斩杀了怪物”。“要计算武士在多近的距离斩杀了怪物,看看怪物和武士之间的距离不就行了吗?” * 我们用脚本PlayerControl.cs来管理攻击判定开始后的时间。 其中,attack_timer是用来记录攻击判定持续时间的计时器。在按键被按下的瞬间会用一个特定的值对它进行初始化,随着时间的减少,当它的值变为0时,则意味着攻击判定执行结束。 * 7.3判断在多近的距离斩杀 attack_timer表示的只是攻击判定的“剩余时间”,为了获得被用于判段“在多近的距离斩杀”的“经过时间”,我们还需要准备一个叫作GetAttackTimer的方法。 SceneControl.cs的AddDefeatNum方法在武士攻击命中怪物时被执行。 * 7.3判断在多近的距离斩杀 最后,设定用于度量经过时间和得分高低关系的ATTACK_TIME_GREAT和ATTACK_TIME_GOOD的值。如果经过时间小于ATTACK_TIME_GREAT并在足够近的距离内斩杀了怪物则判定为GREAT,若时间比ATTACKJIME_GOOD短则判定为GOOD,除此之外在远距离斩杀怪物的情况则判定为。KAY。每次攻击后都记录下判定的结果,在游戏结束后再通过这些结果来决定玩家的总体成绩。 * 通过改变用于衡量得分高低的经过时间的阂值(ATTACK_ TIME_ GREAT和ATTACK_TIME_GOOD ),可以调整游戏中获得高分的难度。比起制作程序本身,有时候调整这些数值反而更花时间。但由于这些数值是决定游戏平衡性的重要因素,因此建议读者通过对照效果调整出最合适的数值。 * 7.4小结 8使被砍中的怪物向四处飞散 8.1概要 被武士砍中后,怪物将向四面八方飞散。 动作的不同将导致攻击力度的强弱表现不同,被攻击的各个对象的反应也有很大差异。在格斗游戏中,对对手一顿拳打脚踢之后,看到其步履蹄姗的样子,往往可以感受到他的疼痛。相反如果对手显得从容不迫,即使动作再华丽也只能给人一种攻击力很弱的印象。 有时候我们常常听到“攻击反馈”的说法。在玩游戏时大家应该都有过感觉按键和摇杆好像变重了的经历吧?可以说这种游戏通过视觉和听觉把攻击反馈非常完美地呈现了出来。 我们将通过怪物的四处飞散来表现武士的攻击强度。另外,我们也将实现上节提到的靠近斩杀怪物会获取高分的规则,并使“在多近的跟离斩杀了怪物”影响怪物的飞散方式。 不过每次都采用同样的方式飞散开未免有些单调,因此我们会调整飞散的方向使每次的效果都略有不同。 * 8.2想象一下“圆锥体” 在考虑实现方法之前,我们首先整理一下“需要做什么”。用专业术语来说这叫作需求分析。 要让怪物华丽地四处飞散 让每次的动作都各不相同 “华丽”这种描述对于编程来说是一个比较暖昧的说法。应该描述得更为具体一些。 前面我们已经提到过把若干个怪物编成一个刁、组,并通过这个小组来执行被攻击判定。受到攻击时小组内的所有怪物都将四处飞散。而如果怪物们都向着同样的方向飞去,将毫无“华丽”可言。换句话说,所谓的“华丽”,应该是这些怪物尽量朝着不同的方向飞散开来。 这个被刀砍中然后各自飞散开的过程,更类似于炸弹爆炸的画面。由于怪物被刀砍中时受到了某一方向的作用力,因此往相反的一侧飞出才显得自然。武士具有右斩、左斩的动作。每个动作都将令怪物向反方向飞出。 “靠近斩杀时怪物将更华丽地飞散开’,这个要素也是必要的。虽然单纯改变速度也能达到类似的效果,但为了让玩家更容易地了解是否完美地砍中了怪物,我们将飞散的方向改为前后方向。如果从前面飞来的怪物都按照相同的方向弹开,就能让玩家强烈地感受到攻击的力度那么我们再次细化需要完成的工作。 * 怪物朝不同方向飞出 根据动作的不同往左或往右飞出 根据斩杀时距离的远近调整为前后方向 每次飞出的方式都有变化 要是每次一飞出的方式都不一样,很多读者可能会想到使用随机数。不过如果仅对飞出的方向和速度进行随机化处理,虽然可以改变飞出的方向,但是不能够保证怪物会按我们期待的方向飞出。 像这样“想在随机化的同时进行某种程度的倾向控制”的时候,解决问题的关键就是先确定好关键性的原则,再使用随机数改变细节参数。
文档评论(0)