今天心血来潮,想搞个小游戏demo,就那种最老套的回合制,你打我一下,我打你一下的那种。以前也做过一些,但没怎么好好记录,这回准备从头到尾好好理一理。
搞起!
先打开Unity,建个新项目,取个名字就叫"RoundFight"。然后捏两个方块,一个当玩家,一个当敌人,染个色,红的是玩家,蓝的是敌人,就位!
然后就开始写代码。回合制嘛最关键的就是个你来我往的过程。我琢磨着,得有个东西来管这个流程,就建个脚本叫“GameManager”。
先定义几个变量:
- 玩家的血量,
playerHP
- 敌人的血量,
enemyHP
- 当前是谁的回合,用个布尔值
isPlayerTurn
,true就是玩家回合,false就是敌人回合
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
开始的时候,肯定是玩家先动手,所以isPlayerTurn
上来就给个true。
然后写个函数叫ChangeTurn()
,用来切换回合。每次切换,就把isPlayerTurn
反过来。true变false,false变true。
再写个函数,叫PlayerAttack()
,玩家攻击敌人。这里面,敌人血量enemyHP
就得减掉点具体减多少,看你心情,我这里随便写个10。然后,调用ChangeTurn()
,轮到敌人。
敌人攻击也一样,写个EnemyAttack()
,玩家血量playerHP
减掉点我也写个10。再调用ChangeTurn()
,又轮到玩家。
逻辑写好,咋触发?
我这里就偷个懒,直接在Update()
里面判断。如果现在是玩家回合(isPlayerTurn
是true),按下空格键,就执行PlayerAttack()
。
如果现在是敌人回合(isPlayerTurn
是false),就让它等一秒,然后执行EnemyAttack()
。这里用Invoke()
函数来延迟执行,简单粗暴。
把GameManager脚本挂到场景里的一个空物体上,就叫它"GameManager"。
运行!
按下空格,敌人掉血,然后过一秒,玩家掉血,再按空格,敌人再掉血……循环往复,回合制的感觉就出来!
这只是个最最最简单的架子,连个UI都没有,简陋的很。后面还可以加很多东西,比如:
- 用个UI显示血条,看起来更直观。
- 攻击力、防御力啥的,都可以加进去,让战斗更丰富。
- 加点技能,比如玩家可以放个火球,敌人可以加个盾,更有意思。
- 甚至可以加点随机性,比如暴击、闪避啥的。
- 我找到一些回合制游戏,像什么《动物历险记》、《奥拉星》、《长安幻想》、《女神异闻录:夜幕魅影》等等,都可以参考参考。
今天就先到这儿,以后慢慢完善!