返回顶部
首页 > 资讯 > 精选 >如何进行Unity中FlyPin见缝插针小游戏的实现
  • 116
分享到

如何进行Unity中FlyPin见缝插针小游戏的实现

2023-06-26 04:06:29 116人浏览 薄情痞子
摘要

本篇文章为大家展示了如何进行Unity中FlyPin见缝插针小游戏的实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、简单介绍Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发

本篇文章为大家展示了如何进行Unity中FlyPin见缝插针小游戏的实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、简单介绍

Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便后期类似游戏开发的借鉴和复用。

本节介绍,FlyPin (见缝插针) 休闲小游戏快速实现的方法,希望能帮到你,若有不对,请留言。

二、FlyPin (见缝插针)游戏内容与操作

游戏开始,针 Pin 自动准备好,

鼠标点击左键发射 Pin,飞向目标,同时自动准备下一根针 Pin,并增加分数

针 Pin 插入目标后,会随之一起转动

当两个针 Pin 发生碰撞,则游戏结束

游戏结束动画完成后,自动重新开始游戏

三、游戏代码框架 

如何进行Unity中FlyPin见缝插针小游戏的实现

四、知识点

MonoBehaviour 生命周期函数:Awake,Start,Update,OnGUI

Input 按键的监控

GameObject.Instantiate 物体的生成,GameObject.Destroy 物体的销毁

Camera.orthographicSize 正交相机视口大小修改,Camera.backgroundColor 相机 SolidColor 背景色的修改

Rigidbody2D  取消重力效果,添加 Collider ,进行 Trigger 碰撞检测

GUIStyle GUI样式,GUI.Label 添加文字的功能使用

Vector3.Lerp 位移向量插值使用,Vector3.Distance 位置距离函数的使用

Mathf.Lerp ,Color.Lerp 数值和颜色插值计算的使用

TransfORM.Rotate 旋转使用

IEnumerator 协程 , StartCoroutine 开始协程 和 StopAllCoroutines 停止所有协程的使用

SimpleMessageCenter 简单的消息中心使用

Action<int> OnChangeValue 属性变化中委托的使用

Resources.Load<GameObject>() 代码加载预制体的使用

OnTriggerEnter2D 2D 碰撞检测的使用

SceneManager.LoadScene 加载,和 SceneManager.GetActiveScene() 当前场景的获取

等等

五、游戏效果预览

如何进行Unity中FlyPin见缝插针小游戏的实现

六、实现步骤

这是一个 2D 游戏,主要用到 SpriteRenderer 、2D Collider,2D Rigidbody,以及 TextMesh 等资源组件,所有资源都是Unity自带,没有导入其他外部贴图模型资源。

打开 Unity,创建工程

如何进行Unity中FlyPin见缝插针小游戏的实现

构建场景,添加 Pin 初始生成,准备和飞向的地方,以及旋转的目标圆,和显示分数的 3DText

如何进行Unity中FlyPin见缝插针小游戏的实现

ScoreText,创建是 3D Object - 3D Text,其中 根据 TextMesh的字体大小,根据 Character Size  和 Font Size 共同控制

如何进行Unity中FlyPin见缝插针小游戏的实现

如何进行Unity中FlyPin见缝插针小游戏的实现

如果 TextMesh 看起来很模糊,可以改小 Character Size ,放大 Font Size ,如图

如何进行Unity中FlyPin见缝插针小游戏的实现

如何进行Unity中FlyPin见缝插针小游戏的实现

TargetCircle 是 SpriteRenderer ,根据需要设置颜色,Sprite 是 Unity 自带的 Knob

说明,同时 TargetCircle  也是 Pin 飞向的目标体

如何进行Unity中FlyPin见缝插针小游戏的实现

如何进行Unity中FlyPin见缝插针小游戏的实现

PinSpawnPos 、PinReadyPos 是 针 Pin 生成的初始位置,和 准备好位置,PinSpawnPos 、PinReadyPos 下的 Cube 是便于观察位置设定的,确定好位置后,可以删掉或者隐藏 Cube

如何进行Unity中FlyPin见缝插针小游戏的实现

如何进行Unity中FlyPin见缝插针小游戏的实现

注意 ScoreText 、TargetCircle、PinSpawnPos、PinReadyPos,Position.z 都是 0,为了保证实在同一个平面上,满足2D 游戏要求

如何进行Unity中FlyPin见缝插针小游戏的实现

Main Camera,设置如图,ClearFlags 为 Solid Color ,Background 颜色根据需要设定,Projection 为 Orthographic 正交(2D游戏设置相机),Size 为 5 ,你可以根据自己需要设置

如何进行Unity中FlyPin见缝插针小游戏的实现

最后,效果如图

如何进行Unity中FlyPin见缝插针小游戏的实现

Pin 预制体,包含PinHead 和 PinBody

如何进行Unity中FlyPin见缝插针小游戏的实现

Pin 的 PinHead ,SpriteRenderer 的 Sprite 自带的 Knob, 颜色根据自己需要设定,添加 CircleCollider2D 碰撞体,并且勾选 IsTrigger(避免发生碰撞,产生碰撞效果,不勾选则会有碰撞的物理效果),CircleCollider2D的大小可以根据实际情况调整(一般Unity会自动根据Renderer 大小设置默认大小);添加 Rigidbody2D (发生碰撞的必需条件之一),并且BodyType设置为 Kinematic 可以不受重力下坠(或者 BodyType 为 Dynamic ,把 Gravity Scale 设置 为 0 ,也可以不受重力影响)

如何进行Unity中FlyPin见缝插针小游戏的实现

Pin 中的 PinBody,SpriteRenderer 中 Sprite 自带的 Background ,颜色自选,Order in Layer 默认是 0 ,设置为 -1,是为针插入 TargetCircle 效果,Scale 设置为 (1,15,1),是为了细长如针的效果

如何进行Unity中FlyPin见缝插针小游戏的实现

如何进行Unity中FlyPin见缝插针小游戏的实现

至于 Pin ,放置在 Resources 文件夹下的Prefabs 文件夹,是为了使用 Unity 中 Resources.Load 代码加载预制体,不需要手动挂载预制体,而 Resources.Load 加载就要求把预制体放在 Resources 文件夹下

如何进行Unity中FlyPin见缝插针小游戏的实现

PinHead 类 监听两个针是否插在靠近位置相撞,相撞则发送游戏结束消息

如何进行Unity中FlyPin见缝插针小游戏的实现

PinHead中的 OnTriggerEnter2D(Collider2D collision) 见监听碰撞进入,碰撞则发送游戏借宿消息

       /// <summary>       /// 监听两个针是否插在靠近位置相撞       /// 相撞则发送游戏结束消息       /// </summary>       /// <param name="collision"></param>        private void OnTriggerEnter2D(Collider2D collision)        {            // 两个 PinHead 是否碰撞            if (collision.name.Equals(ConstStr.PIN_HEAD_NAME))            {                // 相撞则发送游戏结束消息                SimpleMessageCenter.Instance.SendMsg(MsgType.GameOver);            }        }

Pin 类,管理 针 Pin 的状态和运动

如何进行Unity中FlyPin见缝插针小游戏的实现

Pin 类,Init 初始化函数,得到相关位置和 PinHead 脚本的挂载到 Pin 的 PinHead 物体上

参数说明:

        // Pin 准备好的位置        private Vector3 m_PinReadyPos;        // Pin 飞行的目标位置        private Vector3 m_PinFlyTargetPos;        // Pin 插入目标位置的距离间隔        private float m_PinFlyTargetPosDistance;        // Pin 的移动速度        private float m_PinMoveSpeed;        // Pin 飞到目标位置的 Transfrorm        private Transform m_PinTargetParentTrans;        // PinHead        private PinHead m_PinHead;
/// <summary>/// 初始化函数,得到相关位置和 PinHead/// </summary>/// <param name="pinsManager"></param>/// <param name="pinReadyPos"></param>/// <param name="flyTargetPos"></param>/// <param name="flyTargetPosDistance"></param>/// <param name="pinMoveSpeed"></param>/// <param name="pinTargetParentTrans"></param>public void Init(PinsManager pinsManager,  Vector3 pinReadyPos, Vector3 flyTargetPos, float flyTargetPosDistance, float pinMoveSpeed, Transform pinTargetParentTrans) {m_PinsManager = pinsManager;m_PinReadyPos = pinReadyPos;m_PinFlyTargetPos = flyTargetPos;m_PinFlyTargetPosDistance = flyTargetPosDistance;m_PinMoveSpeed = pinMoveSpeed;m_PinTargetParentTrans = pinTargetParentTrans;// PinHead 子物体添加PinHead脚本m_PinHead = transform.Find(ConstStr.PIN_HEAD_NAME).gameObject.AddComponent<PinHead>() ;// 设置状态为准备状态m_CurPinState = PinState.Readying;}

Pin 类,UpdatePinState(),Pin 的状态监听

/// <summary>/// 状态监听/// </summary>        void UpdatePinState() {            switch (CurPinState)            {                case PinState.Idle:                    break;                case PinState.Readying:Readying(); break;case PinState.ReadyOK:m_PinsManager.CurPin = this;break;case PinState.Fly:Fly();m_PinsManager.CurPin = null; break;                default:                    break;            }        }

Pin 类,Readying() 正在准备的状态函数,Fly() 飞行目标位置状态,包含 Pin真正的运动(Vector3.Lerp),和满足条件(Vector3.Distance)对应的状态切换(注意:把 Pin 实体至于 TargetCircle 即可以 使 Pin 随 TargetCircle 一起转动 (this.transform.SetParent(m_PinTargetParentTrans);))

/// <summary>/// 正在准备的状态函数/// </summary>void Readying() { // 移动到准备位置transform.position = Vector3.Lerp(transform.position, m_PinReadyPos, Time.deltaTime * m_PinMoveSpeed);// 判断是否到达准备位置            if (Vector3.Distance(transform.position, m_PinReadyPos)<=0.1f)            {transform.position = m_PinReadyPos;// 到达后切换状态CurPinState = PinState.ReadyOK;}}  /// <summary>/// 飞行目标位置状态/// </summary>void Fly(){// 移动到目标位置transform.position = Vector3.Lerp(transform.position, m_PinFlyTargetPos, Time.deltaTime * m_PinMoveSpeed);if (Vector3.Distance(transform.position, m_PinFlyTargetPos) <= m_PinFlyTargetPosDistance){// 到达后切换状态,并且置于 飞到的目标下,使之随目标一起转动CurPinState = PinState.Idle;this.transform.SetParent(m_PinTargetParentTrans);}}

PinsManager  Pins 管理类,主要管理 Pin 的生成和 发射 Fly

如何进行Unity中FlyPin见缝插针小游戏的实现

PinsManager  Pins 管理类,构造函数 PinsManager(),Resources.Load 获取预制体 Pin 预制体,和参数赋值

参数说明:

        // Pin 预制体        private GameObject m_PinPrefab;        // Pin 生成位置        private Vector3 m_PinSpawnPos;        // Pin 准备位置        private Vector3 m_PinReadyPos;        // Pin 飞向目标位置        private Vector3 m_PinFlyTargetPos;        // Pin 飞向目标插入间距        private float m_PinFlyTargetPosDistance;        // Pin 移动速度        private float m_PinMoveSpeed;        // Pin 飞向目标实体        private Transform m_PinTargetParentTrans;
/// <summary>/// 构造函数/// </summary>/// <param name="pinSpawnPos"></param>/// <param name="pinReadyPos"></param>/// <param name="flyTargetPos"></param>/// <param name="flyTargetPosDistance"></param>/// <param name="pinMoveSpeed"></param>/// <param name="pinTargetParentTrans"></param>public PinsManager(Vector3 pinSpawnPos, Vector3 pinReadyPos,Vector3 flyTargetPos,float flyTargetPosDistance, float pinMoveSpeed,Transform pinTargetParentTrans) { // 获取预制体m_PinPrefab = Resources.Load<GameObject>(ConstStr.RESOURCES_PREFABS_PIN_PATH); // 参数赋值m_PinSpawnPos = pinSpawnPos;m_PinReadyPos = pinReadyPos;m_PinFlyTargetPos = flyTargetPos;m_PinFlyTargetPosDistance = flyTargetPosDistance;m_PinMoveSpeed = pinMoveSpeed;m_PinTargetParentTrans = pinTargetParentTrans;}

PinsManager  Pins 管理类,SpawnPin() 根据条件 生成准备的 Pin

/// <summary>/// 生成准备的 Pin/// </summary>public void SpawnPin() { // 生成准备的 Pinif (m_PinPrefab!=null && m_ReadyPin == null)            {GameObject pinGo = GameObject.Instantiate(m_PinPrefab);// 设置生成位置pinGo.transform.position = m_PinSpawnPos;// 添加 Pin 脚本m_ReadyPin = pinGo.AddComponent<Pin>();// Pin 脚本 初始化m_ReadyPin.Init(this,m_PinReadyPos,m_PinFlyTargetPos,m_PinFlyTargetPosDistance,m_PinMoveSpeed,m_PinTargetParentTrans); // 添加到集合中m_PinsList.Add(pinGo); }}

PinsManager  Pins 管理类,FlyPin() 根据条件 让当前 Pin 飞向目标位置,返回是否有可飞行的 Pin,有则 true,DestroyAllPins() 销毁清空 Pins 集合

/// <summary>/// 让当前 Pin 飞向目标位置/// 返回是否有可飞行的 Pin /// </summary>/// <returns>true : 有可飞行 Pin </returns>public bool FlyPin() {            if (CurPin!=null)            {m_ReadyPin = null; if (CurPin.CurPinState==PinState.ReadyOK)                {CurPin.CurPinState = PinState.Fly; }return true;} return false;} /// <summary>/// 销毁清空 Pins 集合/// </summary>public void DestroyAllPins() {            for (int i=m_PinsList.Count-1; i >= 0 ; i--)            {GameObject.Destroy(m_PinsList[i]);            } m_PinsList.Clear();}

TargetCircleManager Pin 飞向目标圆管理类

如何进行Unity中FlyPin见缝插针小游戏的实现

TargetCircleManager Pin 飞向目标圆管理,TargetCircleManager()构造函数 获取设置 旋转的实体和旋转速度

参数说明:

        // 实体Transform        Transform m_TargetCircleTrans;        // 转动速度        float m_Speed;        // 是否开始转动        bool m_IsRotated = false;
/// <summary>/// 构造函数/// </summary>/// <param name="target">目标实体</param>/// <param name="rotSpeed">旋转速度</param>public TargetCircleManager(Transform target, float rotSpeed) {m_TargetCircleTrans = target;m_Speed = rotSpeed;m_IsRotated = false;}

TargetCircleManager Pin 飞向目标圆管理, void UpdateRotateSelf()  更新自身旋转,StartRotateSelf() 开始旋转,StopRotateSelf() 停止旋转

/// <summary>/// 更新自身旋转/// </summary>public void UpdateRotateSelf() {            if (m_TargetCircleTrans != null && m_IsRotated==true)            {m_TargetCircleTrans.Rotate(Vector3.forward,Time.deltaTime * m_Speed * -1);  // -1 是让其反向旋转            }} /// <summary>/// 开始旋转/// </summary>public void StartRotateSelf(){m_IsRotated = true;} /// <summary>/// 停止旋转/// </summary>public void StopRotateSelf() {m_IsRotated = false;}

ScoreManager  分数管理类,管理分数,和分数变化更新的委托事件

如何进行Unity中FlyPin见缝插针小游戏的实现

public int Score { get { return m_Scroe; }set {// 判断分数是否更新,更新则触发更新事件                if (m_Scroe!=value)                 {m_Scroe = value;                    if (OnChangeValue!=null)                     {OnChangeValue.Invoke(value); }                }}} // 分数变化委托public Action<int> OnChangeValue;

SimpleMessageCenter 简单消息中心,管理消息的注册,触发,和清空,并且设置静态单例(static SimpleMessageCenter Instance),方便被访问使用

如何进行Unity中FlyPin见缝插针小游戏的实现

SimpleMessageCenter 简单消息中心, ReGISterMsg()注册消息,SendMsg()发送消息,ClearAllMsg() 清空消息

/// <summary>/// 注册消息/// </summary>/// <param name="msgType"></param>/// <param name="action"></param>public void RegisterMsg(MsgType msgType, Action action) {if (m_MsgDict.ContainsKey(msgType) == true){m_MsgDict[msgType] += action;}else {m_MsgDict.Add(msgType,action);}} /// <summary>/// 发送消息/// </summary>/// <param name="msgType"></param>public void SendMsg(MsgType msgType){if (m_MsgDict.ContainsKey(msgType) == true){m_MsgDict[msgType].Invoke();}} /// <summary>/// 清空消息/// </summary>public void ClearAllMsg() { m_MsgDict.Clear();}

ConstStr 统一管理一些不可变的常量字符串

如何进行Unity中FlyPin见缝插针小游戏的实现

/// <summary>/// 不可变字符串/// </summary>public class ConstStr {// Pin 飞行目标圆 名字路径public const string WORLD_TARGETCIRCLE_NAME_PATH = "World/TargetCircle"; // Pin Resources 预制体路径public const string RESOURCES_PREFABS_PIN_PATH = "Prefabs/Pin"; // Pin Head 名字public const string PIN_HEAD_NAME = "PinHead";}

Enum 统一管理枚举类型

如何进行Unity中FlyPin见缝插针小游戏的实现

/// <summary>/// Pin 状态/// </summary>public enum PinState{Idle = 0,// 闲置状态Readying,// 正在准备状态ReadyOK,// 装备好状态Fly,// 飞向目标状态}  /// <summary>/// 消息类型/// </summary>public enum MsgType{GameOver = 0, // 游戏结束}

GameManager 游戏管理类 ,直接挂载到场景中,获取一些场景游戏实体,并管理一些游戏逻辑的初始化等

如何进行Unity中FlyPin见缝插针小游戏的实现

GameManager 游戏管理类 ,Awake() 和Start() Unity自带函数,初始化变量和类,以及启动游戏,TargetCircle 开始旋转,Pin 开始准备,在简单消息中心注册监听游戏结束事件,设置 分数变化更新到 TextMesh 上,等等

        private void Awake()        {            // 初始化参数值            m_MainCamera = Camera.main;            m_IsGameOver = false;            Transform targetCircleTrans = GameObject.Find(ConstStr.WORLD_TARGETCIRCLE_NAME_PATH).transform;            m_TargetCircleManager = new TargetCircleManager(targetCircleTrans, RotateSpeed);            m_PinsManager = new PinsManager(m_PinSpawnPos.position,m_PinReadyPos.position, targetCircleTrans.position,                m_PinFlyTargetPosDistance,m_PinMoveSpeed,targetCircleTrans);            m_ScoreManager = new ScoreManager();        }         private void Start()        {            // 开始TargetCircle旋转            m_TargetCircleManager.StartRotateSelf();            // 生成第一个 Pin             m_PinsManager.SpawnPin();            // 注册监听游戏结束消息            SimpleMessageCenter.Instance.RegisterMsg(MsgType.GameOver,ToGameOver);            // 初始化分数 0            m_ScoreManager.Score = 0;            // 分数更新事件,更新 UI            m_ScoreManager.OnChangeValue += (score)=> { ScoreText.text = score.ToString(); };        }

GameManager 游戏管理类 ,Update() Unity自带函数,游戏未结束,TargetCircle 每帧转动,并监听鼠标左键按下,Fly Pin 和生成下一个 Pin 准备

        private void Update()        {            // 游戏结束            if (m_IsGameOver == true)            {                return;            }            // TargetCircle 更新旋转            m_TargetCircleManager.UpdateRotateSelf();             // 监听鼠标左键按下            if (Input.GetMouseButtonDown(0))            {                // Pin 飞向目标,则增加分数,并且生成下一个 Pin                bool isFly = m_PinsManager.FlyPin();                if (isFly==true)                {                    m_ScoreManager.Score++;                    m_PinsManager.SpawnPin(); // 生成下一个                }                           }        }

GameManager 游戏管理类 ,OnDestroy() 在游戏重新加载销毁时,进行一些数据清理置空,并停止可能的所有协程(不阻碍主程运行的小程序),OnGUI() 做一些游戏操作说明

        private void OnDestroy()        {            // 销毁所有 Pin            m_PinsManager.DestroyAllPins();            // 清空消息中心            SimpleMessageCenter.Instance.ClearAllMsg();            // 置空分数更新事件            m_ScoreManager.OnChangeValue = null;            // 置空相关参数            m_PinsManager = null;            m_TargetCircleManager = null;            m_ScoreManager = null;            // 停止所有协程            StopAllCoroutines();        }         // Unity 周期函数 每帧调用        private void OnGUI()        {            // 游戏操作说明            GUIStyle fontStyle = new GUIStyle();            fontStyle.normal.background = null;    //设置背景填充            fontStyle.normal.textColor = new Color(1, 0, 0);   //设置字体颜色            fontStyle.fontSize = 40;       //字体大小            GUI.Label(new Rect(10, 10, 200, 200),                "操作说明:\n1、点击鼠标左键发射球体;\n2、两针 Pin 碰撞会自动触发重新开始游戏;",                fontStyle);         }

GameManager 游戏管理类 ,ToGameOver()游戏结束事件,停止旋转,开启协程,进行游戏结束特效处理,然后自动重新加载当前场景,重新开始游戏

        /// <summary>        /// 游戏结束        /// </summary>        void ToGameOver() {            // 游戏结束            if (m_IsGameOver==true)            {                return;            }            // 游戏结束            m_IsGameOver = true;            // 停止目标旋转            m_TargetCircleManager.StopRotateSelf();            // 开始结束协程            StartCoroutine(GameOver());        }         /// <summary>        /// 游戏结束协程        /// </summary>        /// <returns></returns>        IEnumerator GameOver() {            while (true)            {                // 等待帧最后                yield return new WaitForEndOfFrame();                 // 更新主Camera 视口                m_MainCamera.orthographicSize = Mathf.Lerp(m_MainCamera.orthographicSize, m_OrthographicSize,Time.deltaTime * 10);                // 更新主Camera 背景色                m_MainCamera.backgroundColor = Color.Lerp(m_MainCamera.backgroundColor, Color.red,Time.deltaTime * 5);                // 更新主Camera 视口 到位,跳出循环                if ((m_MainCamera.orthographicSize - m_OrthographicSize)<0.01f)                {                    break;                }            }             // 加载当前场景            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);        }

把 GameManager 挂载到场景中,根据 GameManager 参数说明赋值,一些速度等可以根据实际需要修改

如何进行Unity中FlyPin见缝插针小游戏的实现

运行场景, Pin 自动准备好,游戏就开始了

如何进行Unity中FlyPin见缝插针小游戏的实现

点击鼠标左键,即可发射Fly,如图

如何进行Unity中FlyPin见缝插针小游戏的实现

七、工程源码地址

GitHub 地址:gitHub - XANkui/UnityMiniGameParadise: Unity 游戏开发集合代码集

八、延伸扩展

游戏的好不好玩,趣味性,视觉化等诸多因素影响,下面简单介绍几个方面拓展游戏的方向,仅做参考

可以根据自己需要修改游戏资源,换肤什么的等

可以根据需要添加撞击特效,音效等

添加 UI 面板等,美化游戏

上述内容就是如何进行Unity中FlyPin见缝插针小游戏的实现,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何进行Unity中FlyPin见缝插针小游戏的实现

本文链接: https://lsjlt.com/news/306747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行Unity中FlyPin见缝插针小游戏的实现
    本篇文章为大家展示了如何进行Unity中FlyPin见缝插针小游戏的实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、简单介绍Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发...
    99+
    2023-06-26
  • Unity实战之FlyPin(见缝插针)小游戏的实现
    目录一、简单介绍二、FlyPin (见缝插针)游戏内容与操作三、游戏代码框架 四、知识点五、游戏效果预览六、实现步骤七、工程源码地址八、延伸扩展一、简单介绍 Unity 游...
    99+
    2024-04-02
  • Python+Pygame实现之见缝插针游戏的实现
    目录前言​一、运行环境二、代码展示三、效果展示​总结前言 姥姥说: 炎炎夏日热浪来袭。 有点让人无法忍受。。。 一动就是一身汗。。。。。 想玩点小游戏都没地方玩了。。。 《见缝插针...
    99+
    2024-04-02
  • 基于C语言实现见缝插针游戏的示例代码
    目录游戏说明亮点期待效果图代码游戏说明 使用鼠标左键点击发射针,当两个针的夹角小于一定限制时,游戏结束。 亮点 这个游戏比较创新的地方就是可以用鼠标控制一个动态的过程,在循环中使用鼠...
    99+
    2022-11-13
    C语言 见缝插针游戏 C语言见缝插针 C语言 游戏
  • Unity如何实现射击小游戏
    这篇文章主要为大家展示了“Unity如何实现射击小游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unity如何实现射击小游戏”这篇文章吧。游戏画面展示这款小游戏只用了两个UI界面,一个是菜单...
    99+
    2023-06-29
  • 如何在PHP中进行微信小游戏开发?
    随着移动互联网的快速发展,微信小游戏已成为很多人的娱乐选择。而在PHP开发方面,如何开发微信小游戏?本文将从以下几个方面介绍。一、开发环境准备微信小游戏的开发需要使用微信开发者工具,而这个工具只支持Windows和Mac平台。因此,在进行开...
    99+
    2023-05-20
    开发 PHP 微信小游戏
  • C#如何实现简单的飞行棋小游戏
    这篇文章主要介绍了C#如何实现简单的飞行棋小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下玩家姓名的输入对屏幕进行清屏初始化地图玩家A和玩家B玩游戏using...
    99+
    2023-06-21
  • C#如何实现控制台飞行棋小游戏
    这篇文章将为大家详细讲解有关C#如何实现控制台飞行棋小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下using&nbs...
    99+
    2023-06-20
  • Python中turtle如何实现球类小游戏
    1. 前言turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI程序。本文使用 turtle 模块编写一个简单的小游戏,通过此程序...
    99+
    2023-05-15
    Python turtle
  • Python如何实现我的世界小游戏
    小编给大家分享一下Python如何实现我的世界小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我的世界小游戏使用方法:移动前进:W,后退:S,向左:A,向右:...
    99+
    2023-06-06
  • 如何进行C++智能指针的实现
    本篇文章为大家展示了如何进行C++智能指针的实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。自己根据http://blog.csdn.net/lf_2016/article/details/524...
    99+
    2023-06-06
  • Linux系统中如何实现命令行游戏
    这篇文章主要介绍了Linux系统中如何实现命令行游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、网络黑客网络黑客于1987年首次发布,这款游戏还在一直在不停的开发中(3...
    99+
    2023-06-15
  • C#如何用代码实现飞行棋简单小游戏
    本篇内容主要讲解“C#如何用代码实现飞行棋简单小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何用代码实现飞行棋简单小游戏”吧!目标:实现飞行棋游戏基础功能玩家在地图触发道具:获得道具...
    99+
    2023-06-14
  • C#如何实现简单的飞行棋游戏
    这篇文章主要为大家展示了“C#如何实现简单的飞行棋游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#如何实现简单的飞行棋游戏”这篇文章吧。下面展示 完整代码:namespace 飞...
    99+
    2023-06-20
  • Python+Pygame如何实现简单的射击小游戏
    本文小编为大家详细介绍“Python+Pygame如何实现简单的射击小游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python+Pygame如何实现简单的射击小游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-30
  • HTML5+lufylegend如何实现游戏中的卷轴
    这篇文章将为大家详细讲解有关HTML5+lufylegend如何实现游戏中的卷轴 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 lufyl...
    99+
    2024-04-02
  • 如何在android中利view实现一个推箱子小游戏
    如何在android中利view实现一个推箱子小游戏?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。自定义view:package com.jisai.materialdes...
    99+
    2023-05-31
    android view roi
  • 如何用PHP实现微信小程序的游戏功能?
    如何用PHP实现微信小程序的游戏功能?随着微信小程序的兴起,越来越多的开发者开始关注如何在小程序中实现游戏功能。PHP作为一种流行的后端语言,可以很好地与小程序进行搭配,实现游戏功能。下面将介绍如何使用PHP来实现微信小程序的游戏功能,并提...
    99+
    2023-10-28
    微信小程序 游戏功能 PHP实现微信小程序
  • 如何在python中利用pygame实现一个愤怒的小鸟游戏
    这篇文章将为大家详细讲解有关如何在python中利用pygame实现一个愤怒的小鸟游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码展示import pygame,syspyg...
    99+
    2023-06-06
  • html5中如何使用63行代码实现贪吃蛇游戏
    这篇文章主要介绍html5中如何使用63行代码实现贪吃蛇游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 代码如下:<!DOCTYPE HTML> <...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作