噩梦射手5 角色血量 死亡 重新加载

using UnityEngine;

using UnityEngine.UI;

using System.Collections;

namespace CompleteProject

{

public class PlayerHealth : MonoBehaviour

{

public int startingHealth = 100;                            // The amount of health the player starts the game with.

public int currentHealth;                                   // The current health the player has.

public Slider healthSlider;                                 // Reference to the UI‘s health bar.

public Image damageImage;                                   // Reference to an image to flash on the screen on being hurt.

public AudioClip deathClip;                                 // The audio clip to play when the player dies.

public float flashSpeed = 5f;                               // The speed the damageImage will fade at.

public Color flashColour = new Color(1f, 0f, 0f, 0.1f);     // The colour the damageImage is set to, to flash.

Animator anim;                                              // Reference to the Animator component.

AudioSource playerAudio;                                    // Reference to the AudioSource component.

PlayerMovement playerMovement;                              // Reference to the player‘s movement.

PlayerShooting playerShooting;                              // Reference to the PlayerShooting script.

bool isDead;                                                // Whether the player is dead.

bool damaged;                                               // True when the player gets damaged.

void Awake ()

{

// Setting up the references.

anim = GetComponent <Animator> ();

playerAudio = GetComponent <AudioSource> ();

playerMovement = GetComponent <PlayerMovement> ();

playerShooting = GetComponentInChildren <PlayerShooting> ();

// Set the initial health of the player.

currentHealth = startingHealth;

}

void Update ()

{

// If the player has just been damaged...

if(damaged)

{

// ... set the colour of the damageImage to the flash colour.

damageImage.color = flashColour;

}

// Otherwise...

else

{

// ... transition the colour back to clear.

damageImage.color = Color.Lerp (damageImage.color, Color.clear, flashSpeed * Time.deltaTime);

}

// Reset the damaged flag.

damaged = false;

}

public void TakeDamage (int amount)

{

// Set the damaged flag so the screen will flash.

damaged = true;

// Reduce the current health by the damage amount.

currentHealth -= amount;

// Set the health bar‘s value to the current health.

healthSlider.value = currentHealth;

// Play the hurt sound effect.

playerAudio.Play ();

// If the player has lost all it‘s health and the death flag hasn‘t been set yet...

if(currentHealth <= 0 && !isDead)

{

// ... it should die.

Death ();

}

}

void Death ()

{

// Set the death flag so this function won‘t be called again.

isDead = true;

// Turn off any remaining shooting effects.

playerShooting.DisableEffects ();

// Tell the animator that the player is dead.

anim.SetTrigger ("Die");

// Set the audiosource to play the death clip and play it (this will stop the hurt sound from playing).

playerAudio.clip = deathClip;

playerAudio.Play ();

// Turn off the movement and shooting scripts.

playerMovement.enabled = false;

playerShooting.enabled = false;

}

public void RestartLevel ()

{

// Reload the level that is currently loaded.

Application.LoadLevel (Application.loadedLevel);

}

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 12:05:30

噩梦射手5 角色血量 死亡 重新加载的相关文章

角色攻击以及特效的加载和管理

对于一个角色的攻击,首先我们在角色的基类Entity 类中定义了角色的攻击动画函数,子类,例如 Warrior 类只需要调用父类的方法即可,然后播放特效. 对于特效的加载和管理,首先一个特效是有生命周期的,一般美术都会做好,我们可以可直接获取特效的生命周期等等信息,可以看做是一个特效信息类. 然后我们需要建立一个 Effect 类来进行特效的逻辑管理(一个不继承自monobehaviour 的类),比如特效的初始化 操作 . 然后还需要一个特效的管理类,这应该是一个继承自monobehaviou

六星经典CSAPP-笔记(7)加载与链接(上)

六星经典CSAPP-笔记(7)加载与链接 1.对象文件(Object File) 1.1 文件类型 对象文件有三种形式: 可重定位对象文件(Relocatable object file):包含二进制代码和数据,能与其他可重定位对象文件在编译时合并创建出一个可执行文件. 可执行对象文件(Executable object file):包含可以直接拷贝进行内存执行的二进制代码和数据. 共享对象文件(Shared object file):一种特殊的可重定位对象文件,能在加载时或运行时,装载进内存进

laravel的源码解析:PHP自动加载功能原理解析

前言 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能.PHP的命名空间.PHP的PSR0与PSR4标准等内容. 一.PHP自动加载功能 PHP自动加载功能的由来 在PHP开发过程中,如果希望从外部引入一个 class,通常会使用 include 和 require 方法,去把定义这个 class 的文件包含进来.这个在小规模开发的时候,没什么大问题.但在大型的开发项目中,使用这种方式会带来一些隐含的问题:如果一个 PHP 文件需要使用很多其它类,那么就需要很多的 requ

web.xml 中的listener、filter、servlet加载及一些配置

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servlet

(转载)web.xml 中的listener、 filter、servlet 加载顺序及其详解

首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.  但不会因为 filter 写在 listener 的前面而会先加载 filter.  最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息.我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是

class文件简介及加载

Java编译器编译好Java文件之后,产生.class 文件在磁盘中.这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码.JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中, 解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的.具体class文件是怎样组织类信息的,可以参考 此博文:深入理解Java Class文件格式系列.或者是Java虚拟机规范. 下面通过一段代码演示手动加载 clas

UI小项目之拳皇动画的实现(抽取加载图片和播放音乐的方法)

实现思路 1.加载图片 2.播放音乐 实现思想 1.封装思想 抽取相同代码生成一个新的方法,通过传递参数调用该方法: 2.内存管理思想 不需要每次调用方法时都重新加载图片,for循环加载图片写在ViewdidLoad中 下列代码没有对运行过程中内存管理进行优化 其中加载图片有两种方法: 通过imageNmae加载有缓存 通过imageWithContentsOfFile加载无缓存 有无缓存的区别: 有缓存,使用时不需要重新加载 无缓存,使用时才加载 #import "ViewController

EasyUi 分页 和 表格数据加载

这里说明的是将说有数据先返回到前端再由前端去分页,性能可能没有先在后台分好页再返回给前端高 但如果操作不涉及大数据的话也没什么大问题,具体问题具体分析 要使用分页控件首先要声明初始化一下: 1 //设置分页控件 2 var p = $("#tt").datagrid('getPager'); //tt为表格id 3 $(p).pagination({ 4 // pageSize: 10,//每页显示的记录条数,默认为10 5 pageList: [5,10,15],//可以设置每页记录

cocos2dx3.2开发 RPG《Flighting》(三)从Excel表中加载需要的数据

一.前言 在一个游戏里面,需要用到的数据一般都是由游戏策划提供的(这里的策划还是由我自己担任啦哈哈).什么是需要用到的数据?例如我创建一个角色A,A有他自己的攻击力,防御力,速度等,再创建一个角色B,B也有自己的攻击力,防御力,速度等.每个角色都有一些基础属性,但是对应不同的角色,属性的值有可能不同.我们不可能在代码里面把这些数据写死.最好的办法是从一个文件(通常是Excel表格)中读入数据,这样就方便管理和修改. 二.正文 1.Excel <Flighting>游戏里面用到了4个Excel表