小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了相关的知识,希望能为你提供帮助。
@TOC
?前言

  • 最近快要到国庆假期了,给大家整理出来一些个小游戏用来学习和娱乐
  • 人们一直都说学习和玩游戏不能兼顾,那我们就来边学习怎样制作游戏,边玩游戏不就兼得了嘛~ 我可真是一个小天才呢~
  • 所以本篇文章为大家带来一个 横版2D射击小游戏,游戏制作超级简单,玩法一学就会, 一起来看看吧!
    小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

    文章图片
? 横版2D射击小游戏 ?游戏画面展示【小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了】这款小游戏只用了两个UI界面,一个是菜单界面,另一个是战斗界面
菜单界面有三种模式,分别是一般困难地狱
战斗界面就是很简单的从两边刷野怪,然后主角开枪打死他们
UI搭建很简单,只有一张背景图使用Image,加上一个Text文本输入框,然后摆放一下位置即可!
< font color=#76eec6 size=4> 菜单界面如下< /font>
小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

文章图片

< font color=#76eec6 size=4> 战斗画面演示< /font>
小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

文章图片

?游戏代码解析
这款< font color=#ee82ee size=4> 横版2D射击小游戏< /font> ,核心部分只需要 < font color=#ff6e84 size=4> 两个脚本< /font> 就可以完成,一学就会,一起来看一下代码吧!
一个挂载到玩家身上的脚本PlayerMove,用于控制玩家的左右移动和跳跃
还有两种开枪的方法,分别是< font color=#0000ee size=4> 穿透和重击< /font> !当碰到怪物的时候就会掉血
当玩家血量低于0 的时候就跳出 游戏结束 的画面,非常简单清晰的逻辑!
代码如下,一个没有多少行,代码内容也是Unity最基础的知识点,相信稍微懂一点的人也都能看懂
PlayerMove代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class PlayerMove : MonoBehaviour {/// < summary> /// 生命值 /// < /summary> public int HP; public Slider hpUI; /// < summary> /// 动画组建 /// < /summary> public Animator _animator; /// < summary> /// 击杀 /// < /summary> public static int jisha; public Text jishaUI; public Text jishaUIEnd; /// < summary> /// 是否跳跃 /// < /summary> public bool isJump; /// < summary> /// 游戏结束UI /// < /summary> public GameObject ui; // Use this for initialization void Start () { Time.timeScale = 1; jisha = 0; hpUI.maxValue = https://www.songbingjia.com/android/HP; hpUI.value = HP; }// Update is called once per frame void Update () { if (Input.GetKeyDown (KeyCode.Escape)) { UnityEngine.SceneManagement.SceneManager.LoadScene("Menu"); } if (HP < = 0) { HP = 0; } jishaUI.text = "击杀:" + jisha; jishaUIEnd.text = "击杀:" + jisha; if (HP == 0) { ui.SetActive(true); Time.timeScale = 0; } hpUI.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3(0, 3, 0)); hpUI.value = https://www.songbingjia.com/android/HP; if (Input.GetKey (KeyCode.D)) { transform.localEulerAngles = new Vector3(0, 0, 0); transform.Translate(Vector3.right * Time.deltaTime * 7); _animator.SetBool("run", true); } else if (Input.GetKey(KeyCode.A)) { transform.localEulerAngles = new Vector3(0, 180, 0); transform.Translate(Vector3.right * Time.deltaTime * 7); _animator.SetBool("run", true); } else { _animator.SetBool("run", false); } if (Input.GetKeyDown (KeyCode.Space) & & !isJump) { GetComponent< Rigidbody2D> ().velocity = new Vector2(0, 30); } if (isJump) { _animator.SetBool("Jump", true); } else { _animator.SetBool("Jump", false); } if (Input.GetKeyDown (KeyCode.J)) { GameObject n = Instantiate(Resources.Load("a1"), transform.GetChild(0).position, transform.GetChild(0).rotation) as GameObject; n.name = "a1"; Destroy(n, 2); } if (Input.GetKeyDown(KeyCode.K)) { GameObject n = Instantiate(Resources.Load("a2"), transform.GetChild(0).position, transform.GetChild(0).rotation) as GameObject; n.name = "a2"; Destroy(n, 2); }} private void OnTriggerStay2D(Collider2D collision) { if (collision.name == "0") { isJump = false; } } private void OnTriggerExit2D(Collider2D collision) { if (collision.name == "0") { isJump = true; } } public void ReturnMenu() { UnityEngine.SceneManagement.SceneManager.LoadScene("Menu"); } }

还有一个Monster脚本,用于显示< font color=#ff6347 size=4> 怪物的生命、速度和攻击力< /font> 等
还有受到玩家打出的子弹就会掉血,很简单的方法就可以实现!
完整代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Monster : MonoBehaviour { /// < summary> /// 生命 /// < /summary> public int HP; /// < summary> /// 速度 /// < /summary> public float speed; /// < summary> /// 攻击力 /// < /summary> public int att; public Slider hpUI; // Use this for initialization void Start () { speed = Random.RandomRange(speed - 2, speed + 2); Destroy(gameObject, 10); GameObject n = Instantiate(Resources.Load("HP")) as GameObject; n.transform.SetParent(GameObject.Find("HPShow").transform); n.transform.localScale = Vector3.one; hpUI = n.GetComponent< Slider> (); hpUI.maxValue = https://www.songbingjia.com/android/HP; hpUI.value = HP; }// Update is called once per frame void Update () { if (HP < = 0) { HP = 0; PlayerMove.jisha++; Destroy(gameObject); } hpUI.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3 (0, 6, 0)); hpUI.value = HP; transform.Translate(Vector3.right * Time.deltaTime * speed); }private void OnTriggerEnter2D(Collider2D collision) { //撞到玩家生命值 if (collision.name =="Player") { collision.GetComponent< PlayerMove> ().HP -= Random.RandomRange(att - 2, att + 2); Destroy(gameObject); } //红色子弹伤害低,能够连续穿透射击多个目标 if (collision.name == "a1") { HP -= Random.RandomRange(8, 15); } //红色子弹伤害高,只能击中一个目标 if (collision.name == "a2") { HP -= Random.RandomRange(20, 40); Destroy(collision.gameObject); } }private void OnDestroy() { Destroy(hpUI.gameObject); } }

?游戏打包
这个小游戏只需要上面两个脚本差不多就算是完成了,然后还可以打包出来到电脑上面玩!
打包这个游戏也很简单,只需要在< font color=#ee0000 size=4> Build< /font> 下将下面几个场景添加进去直接< font color=#ee0000 size=4> Build< /font> 就好啦!
小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

文章图片

打包出来的文件夹是这个样子的,然后点击< font color=#ee82ee size=4> .exe文件< /font> 就可以直接在电脑上玩了!
小游戏 横版2D射击小游戏 效果展示+完整项目源码超级简单,自己也可以做游戏玩了

文章图片

?总结
  • 本篇文章分享了一个超级简单的横版2D射击小游戏,非常适合新手学习体验
  • 所见即所得,可以很快的体验 边做游戏边玩游戏的感觉!
  • 后面还会继续分享许多游戏,有跟本篇文章类似很简单的小游戏
  • 也会分享一些中大型游戏的源码等等 ,给大家提供学习参考!
  • 那本篇文章就到这里啦!点一波三连 咱们下次再见

    推荐阅读