RPG游戏《黑暗之光》流程介绍与代码分析之(十五):主角受攻击效果以及场景切换
十五章:主角受攻击效果以及场景切换
15.1 主角的受攻击效果
public float missRate = 0.25f;public GameObject HUDTextPrefab;private GameObject HUDTextGO;public GameObject playerHUDTextGO;private HUDText showText;private UIFollowTarget followTarget;public AudioClip missSound;public void BeDamage(int attackValue){int defence = Equipment._instance.defense + ps.defense + ps.defense_plus;float damage = attackValue * (200 - defence)/200 ;//float damage = int.Parse (temp);if (damage <= 1){damage = 1;}float value = Random.Range (0f, 1f);if (value < 0.5){//damage }else{//missAudioSource.PlayClipAtPoint(missSound,transform.position);showText.Add("Miss",Color.blue,1);}}
![](/assets/blank.gif)
public GameObject playerBody; //指定角色bodyprivate Color normalColor;void Awake(){normalColor = playerBody.renderer.material.color;}if (value < 0.5){//damage showText.Add("-" + damage,Color.black,1);ps.hp_remain -= damage;StartCoroutine (ShowPlayerRed ());}IEnumerator ShowPlayerRed(){playerBody.renderer.material.color = Color.red;yield return new WaitForSeconds (0.5f);playerBody.renderer.material.color = normalColor;}
15.2 主角的受伤和死亡效果
public enum PlayerState{normalWalk,normalAttack,skillAttack,Death //死亡状态
}
if(ps.hp_remain <= 0){state = PlayerState.Death;}
else if(state == PlayerState.Death){animation.CrossFade(aniName_death);}
if(aniName_nowAttack == aniName_normalAttack){if(attackTimer >= normalAttackTime){ target.GetComponent<PlayerAttack>().BeDamage(attackValue); //访问Bedamage造成伤害aniName_nowAttack = aniName_idle;animation.CrossFade(aniName_idle);}}else if(aniName_nowAttack == aniName_crazyAttack){if(attackTimer >= crazyAttackTime){target.GetComponent<PlayerAttack>().BeDamage(attackValue);aniName_nowAttack = aniName_idle;animation.CrossFade(aniName_idle);}}
![](/assets/blank.gif)
FaceUI._instance.SetFaceProperty ();
PlayerState playerAttackState = target.GetComponent<PlayerAttack> ().state; //用playerAttackState,避免与state重名if (playerAttackState == PlayerState.Death){target = null;state = WolfBabyState.Idle;return;}
if (pa.state == PlayerState.Death) return;
15.3场景间的切换
![](/assets/blank.gif)
public void PressNewGame(){ PlayerPrefs.SetInt("dataFromSave",0);Application.LoadLevel (1); //加载上图红框中的1场景}
public void PressConfirmButton(){PlayerPrefs.SetString ("storeName", nameInput.value); //存储名字PlayerPrefs.SetInt ("storeCurrentIndex", selectedIndex); //存储角色 Application.LoadLevel (2); //加载下一个场景}
public class LoadRole : MonoBehaviour {public GameObject magicianPrefab; //获取两个角色的prefabpublic GameObject swordmanPrefab;void Awake(){int index = PlayerPrefs.GetInt ("storeCurrentIndex"); //得到输入的名字和角色string name = PlayerPrefs.GetString ("storeName");GameObject playerGO = null;if(index == 0){playerGO = GameObject.Instantiate(magicianPrefab) as GameObject; //实例化}else if(index == 1){playerGO = GameObject.Instantiate(swordmanPrefab) as GameObject;}playerGO.GetComponent<PlayerStatus> ().name = name; //通过实例化的 playerGO修改名字信息}}
![](/assets/blank.gif)
RPG游戏《黑暗之光》流程介绍与代码分析之(十五):主角受攻击效果以及场景切换相关推荐
- RPG游戏《黑暗之光》流程介绍与代码分析之(五):背包系统的实现(上)
第五章:背包系统 背包系统作为游戏中的一个重要功能,与游戏存在着诸多的交互性,购买商品.怪物掉落等各种情形都需要访问背包系统,结构较为复杂.因此背包系统将通过两篇博客进行分析. (上)部分包括 功能面 ...
- Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)
最近开始接触游戏制作,用Unity制作一些简单的游戏进行入门.这几篇博客总结了Space Shooter的制作流程,并对代码进行了分析.一是方便自己日后进行回顾与补充,二是为了让让更多的游戏爱好者接触 ...
- Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(下)
这部分内容关注的是游戏性的提升,包括音效.计分等功能的实现. 传送门: 太空射击(Space Shooter)流程介绍与代码分析(上) 太空射击(Space Shooter)流程介绍与代码分析(中) ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(一):游戏载入界面的创建
<黑暗之光>是一款中等大小的RPG游戏,在入门Unity后适合用来上手,了解一整套游戏开发流程以及游戏内的各种功能.借助几篇博客整理一下整体的开发步骤以及代码,方便自己回顾,也便于各位交流 ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(十三):角色攻击系统的实现
十三章:角色攻击系统 角色攻击是杀怪时的核心功能,攻击模式又可细分为普通攻击和技能攻击,其中技能攻击的信息存储在SkillInfoInList,本章节只涉及普通攻击部分. 为Magician添加一个P ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(二):角色创建界面的实现
第二章 角色创建 上一章中完成了初始化的场景界面的创建,本章就接着上一篇博客的内容,介绍角色创建的方法. 2.1 角色创建的UI界面 角色创建的背景采用与加载界面所用背景相同,并且Camera不需要移 ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(十二):怪物系统的实现
第十二章:怪物系统 怪物功能是交互的重要部分,涉及到任务系统.人物状态系统等等,设计起来也较为复杂. 首先将Model中的小狼拖入场景,命名为WolfBaby,并添加动画信息 12.1 小狼的状态切换 ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(十四):角色技能系统的实现
十四章:角色技能系统的实现 技能系统是本游戏开发的最后一部分内容,与普通攻击系统不同,我们需要添加释放技能的特效.动画以及播放时间.并将动画分为回复.Buff.单体和群体. 14.1添加技能的特效名称 ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(四):任务系统的实现
第四章:任务系统 这部分主要对任务系统进行设计,游戏的关键因素之一就是任务系统与玩家的交互,但在代码实现中并不算复杂.本篇博客主要通过一下几个方面实现任务系统. 任务模型的导入与任务UI界面的创建 任 ...
最新文章
- python语言入门电子版-python从入门到精通pdf
- 分布式服务框架 Zookeeper — 管理分布式环境中的数据
- Linux学习:shell命令
- Unity3d 游戏中集成Firebase 统计和Admob广告最新中文教程
- 32页,10米长的《BI建设地图》强在哪?我整理分享出来
- 微服务(MicroServices)
- bzoj1596[Usaco2008 Jan]电话网络*
- mac上用VMWare虚拟机装Ubuntu,搞定了
- mini2440 貌似复杂的mmu
- 深度克隆对象【前端每日一题-19】
- deferred initcalls与模块化
- 又一起“删库”跑路:链家程序员怒删公司 9TB 数据,被判 7 年!网友:真惨~...
- Wifidog 认证
- 吴恩达深度学习tensorflow版本问题
- 根据26字母排列来搜索排列全国城市
- 服务器显卡直通和GPU问题分析
- java 二十四节气源码
- command在计算机中的意义,MAC系统中Command键功能有哪些
- 使用matlab显示图像的一个坑:文件名或 URL 参数必须为字符向量、uigetfile出现要串联的数组的维度不一致
- 秒杀系统常用的削峰方法
热门文章
- 商业模式:为什么饭统学不了OpenTable
- Excel导入sql语句模板,解决转换时间戳问题
- 阿里云的安全性怎么样?
- 单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)
- 【pyinstaller】_get_sysconfigdata_name() missing 1 required positional argument: ‘check_exists‘
- 思维导图培训三:思维导图的应用
- webpack学习:性能优化
- Tokitsukaze and a+b=n (medium)
- web端如何实现导出功能?
- Linux 命令之软连接详解