引言
大鱼吃小鱼是我们童年时代十分出名并且有趣的一款游戏,玩家可以通过操控一只小鱼来捕食比自己更小的鱼从而一次来获得游戏的胜利。博主在网上浏览时意外发现了这款个人开发的大鱼吃小鱼游戏,在体验的过程中博主发现程序仍然有一些问题。
运行逻辑
在游戏中,玩家将控制一条小鱼(player)上下左右移动,背景(background)中会有五种不同大小的小鱼(prefab)从背景中随机刷出,当玩家碰到比自己小的时,会吃掉小鱼,自身体型会增大,当玩家碰到比自己大的鱼时,会判定游戏直接结束。
代码组成
1玩家代码(PlayerController):管理玩家角色的控制,生长。
2小鱼代码(Fish):管理游戏中npc的随机生成。
3游戏控制代码(GameManager):游戏中背景等底层元素。
运行演示

原程序流程图

改进方案
1.为游戏背景添加了边界,从而优化了角色丢失的问题

2.增加了游戏得分的功能,在吃鱼后根据鱼的大小增加相应的分数

点击查看代码
 void Grow(float value)
    {
        fishScale += value / 20f;
        transform.localScale = Vector3.one * fishScale;

        FindObjectOfType<GameManager>().GainScore((int)(value * 100));
    }

  public void GainScore(int amount)
    {
        score += amount;
        string zero = "000000";
        scoreText.text = zero.Substring(0, zero.Length - score.ToString().Length) + score;

    }
3.优化了角色死亡后无法继续进行的问题,添加了重新开始选项
点击查看代码
using UnityEngine.SceneManagement;

 public GameObject gameOverPanel;

 public void ReloadScene()
    {
        SceneManager.LoadScene(0);
    }

改进后流程图

总结
通过本次对经典“大鱼吃小鱼”游戏的二次开发,我深刻体会到了游戏开发的魅力与挑战。在二次开发过程中,我遇到了许多技术上的挑战,但通过不断尝试、查阅资料、请教他人,我最终成功地解决了这些问题。这让我意识到,面对困难时,要勇于挑战自己,积极寻求解决方案。