[Unity3D]Unity3D游戏开发之回合制游戏原型的实现

       大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei

       今天呢,我们来说说回合制。博主曾经坦言自己是一个喜欢国产RPG游戏的人,《仙剑奇侠传》、《轩辕剑》、《古剑奇谭》等游戏都为博主带来了许多温暖的回忆。那么什么是回合制呢?让我们将视线转移到三足鼎立的三国时代,只见张飞挺着丈八蛇矛,大喝一声:三姓家奴休走,与我大战三百回合。布大怒,举起画戟,便要刺来。这是我们记忆中最原始的关于回合印象,可见这里的回合是指对战双方武将骑着马对冲,人随着马的惯性对打,如果双方都没有死,就调转马头,再来一次。这便是最初的回合的概念。而追朔到欧洲的燧石枪时代,对战双方则是按照各自阵营站成整齐的一排,听口令按次序互相击毙。当你打完后,就必须等待我开枪,这才是回合制的精髓,在《刺客信条》等游戏中我们可以一窥当年欧洲战场之宏伟壮观。同样地,当两个人要决斗时,就是拿着手枪挨个打,直到有人倒下为止,这就是回合制,伟大的诗人普希金就是这样死的。可见回合制是体现人文精神的、尊重规则、尊重原则的一种历史产物。而在我们的生活中,篮球、扑克、象棋、麻将都是回合制的,如果没有回合制,就将没有规则和秩序。真正的侠客不在于武,而在于适可而止,我们不是在战场上胡乱厮杀,而是而是冷静地停下来,安静地思考策略,谋划下一回合的进攻和防守。而这就是回合制,如果说回合制代表了人类最原始的一种文化形态,那么这种形态可能是一种落后的形态,

雪轻鸿 CSDN认证博客专家 .NET Python 伪·全栈攻城狮
谢谢你,在这世界的角落,找到我,一个即将进入而立之年的中年大叔,常年以 飞鸿踏雪 的花名混迹江湖。在现实生活中,我是一名 伪·全栈攻城狮,因为我觉得,什么都略懂一点,生活会更多彩一些。目前,主要关注.NET、.NET Core、Python、数据分析、微服务、Web 等技术方向。日常行为:读书、写作、电影、烹饪、洞箫等。喜欢看日剧/纪录片/科普、刷B站、刷LeetCode等。
已标记关键词 清除标记
代码如下: 玩家的 public class PlayerFight : MonoBehaviour { public static PlayerFight _instance; //单例 public PlayerAnimState State = PlayerAnimState.Atk; //玩家默认状态 private Vector3 targetPos; //目标位置坐标 private Transform target; //目标 // public Text huiheshuText; //获取回合数 private float PlayerSpeed = 2.0f; public GameObject XuanXiang; //选择页面 private bool isDie = false; //是否死亡 public bool isBoutOver = false; //回合是否结束 private bool isShowControlPanel=false; //是否显示选择页面 private bool isAtk=false; //是否攻击过 private Vector3 StartPos; //玩家初始位置 private Vector3 StartRot; //玩家初始角度 private Transform PlayerPos; public Scrollbar actionBarPre; //行动条的预制体 public GameObject actionBar; public GameObject SkillEffect1; //技能1特效 public GameObject SkillEffect2; //技能2特效 public GameObject SkillEffect3; //技能3特效 public GameObject SkillEffect4; //技能4特效 // private EnemysFigth EnemySpeed; public float speed = 3f; //玩家速度 public float HP = 200; //玩家血量 public int atk = 20; //玩家普通攻击攻击力 //public float BarSpeed = 1; //进度条速度 private CharacterController controller; //游戏控制器 private Animation anima; //动画系统 public string animName_Idle; //站立 public string animName_Run; //奔跑 public string animName_Bruise; //受伤 public string animName_Atk; //普通攻击 public string animName_Skill1; //技能1攻击 public string animName_Skill2; //技能2攻击 public string animName_Skill3; //技能3攻击 public string animName_Skill4; //技能4攻击 public string animName_Die; //死亡 public float atkTimer; //攻击动画显示时间 public void Awake() { _instance = this; } // Use this for initialization void Start () { // EnemySpeed = GameObject.FindGameObjectWithTag("Enemy").GetComponent<EnemysFigth>(); target = GameObject.FindGameObjectWithTag("Player").transform; //获取玩家坐标 XuanXiang.SetActive(false); //控制也面开始为显示状态 StartPos = transform.position; //储存玩家开始的位置,为以后做准备 StartRot = transform.localEulerAngles;//储存玩家开始角度 targetPos = StartPos; controller = transform.GetComponent<CharacterController>(); //获取玩家控制组件 anima = transform.GetChild(0).GetComponent<Animation>(); //获取玩家动画组件 } // Update is called once per frame void Update () { if(isDie) { } else { if (isShowControlPanel==false) { FightManager._instance.state = FightState.Player;//整个游戏的战斗状态为玩家控制 if (isShowControlPanel == false)//如果战斗菜单没有显示 { isShowControlPanel = true;//显示战斗菜单 XuanXiang.SetActive(true); } } if (FightManager._instance.state != FightState.Player)//当整个游戏战斗状态不是玩家控制,则要隐藏战斗菜单 { XuanXiang.SetActive(false); } else { //if (State) //{ //} //State = PlayerAnimState.Idle; State = PlayerAnimState.Atk; FightManager._instance.state = FightState.Player; if (isShowControlPanel==false) { isShowControlPanel = true; XuanXiang.SetActive(true); } } if (FightManager._instance.state != FightState.Player) { XuanXiang.SetActive(false); } switch (State) { case PlayerAnimState.Idle: PlayerAtk1(); break; case PlayerAnimState.Atk: { PlayerAtk(); break; } case PlayerAnimState.Skill1: PlayerSkill1(); break; case PlayerAnimState.Skill2: PlayerSkill2(); break; case PlayerAnimState.Skill3: PlayerSkill3(); break; case PlayerAnimState.Skill4: PlayerSkill4(); break; case PlayerAnimState.Die: break; default: break; } } } public void OnAttack() { State = PlayerAnimState.Atk; isAtk = false; } //对外接口&mdash;&mdash;技能攻击 public void OnSkill() { switch (State) { case PlayerAnimState.Skill1: PlayerSkill1(); break; case PlayerAnimState.Skill2: PlayerSkill2(); break; case PlayerAnimState.Skill3: PlayerSkill3(); break; case PlayerAnimState.Skill4: PlayerSkill4(); break; case PlayerAnimState.Die: break; default: break; } isAtk = false; }
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值