NGUI的技能冷却实现

  使用NGUI实现技能冷却的原理是这样的:在表示技能的Sprite上加一个半透明的Sprite,将类型设置为filled类型,Fill Dir设置为Radial360,通过程序调节Fill Amount就可以模拟技能从冷却到被活的一段时间内渐变的效果。如下图所示:

  代码中一个标志位isCooling表示是否正在冷却,只有当按下释放技能的按键并且该标志位为false时才可以释放技能,释放完成后isCooling立即变为true,然后冷却的部分在每帧都会减少,直至完全消失。代码如下:

  

 1 using UnityEngine;
 2 using System.Collections;
 3
 4 public class ReleaseSkill : MonoBehaviour {
 5     UISprite skillSprite;   //负责技能冷却
 6     public float releaseSpeed = 0.5f;
 7     public float needMP = 30f;
 8     public float totalMP = 100f;
 9     public GameObject cardPrefab;
10     public GameObject parent;
11
12     bool isCooling;                  //是否正在冷却
13     // Use this for initialization
14     void Start () {
15         skillSprite = transform.GetChild(0).GetComponent<UISprite> ();
16
17         skillSprite.fillAmount = 0;
18         isCooling = true;
19
20     }
21
22     // Update is called once per frame
23     void Update () {
24         if (Input.GetKeyDown (KeyCode.M)) {
25             if (!isCooling && totalMP > needMP) {
26                 //释放技能
27                 totalMP -= 20;
28
29                 //技能完全冷却
30                 skillSprite.fillAmount = 1;
31                 isCooling = true;
32             }
33         }
34
35         if (isCooling) {
36             //经过一段时间冷却技能
37             skillSprite.fillAmount -= releaseSpeed * Time.deltaTime;
38             if(skillSprite.fillAmount <= 0)
39             {
40                 skillSprite.fillAmount = 0;
41                 isCooling = false;
42             }
43         }
44     }
45 }

ReleaseSkill

时间: 2024-12-04 23:18:45

NGUI的技能冷却实现的相关文章

使用NGUI制作技能冷却图标

最近在学习NGUI,有些小的知识点,个人觉得很不错,就记录下来了,毕竟好记性不如烂笔头,温故知新. 首先导入NGUI插件,插件我会在文章下面给出链接. 导入NGUI后,会在菜单栏,看到NGUI的按钮,我们首先创建一个Sprite,重命名为Skill,为其选择图集和精灵,调整Skill的大小和位置,我这里Size 为200*200. 在Hierarchy面板中选中Skill,然后再Scene面板中,右键创建一个Sprite,重命名为Filled,为其选择图集和精灵,最好选择一个单色的精灵,然后,T

SkillButton 技能冷却

#pragma once #include "cocos2d.h" USING_NS_CC; class SkillButton :public Node { public:  SkillButton();  ~SkillButton();                            //技能标记  static SkillButton * createSkillButton(float skillCD,const char* normalImage,const char* 

libgdx 制作技能冷却图标

本篇随笔记录如何制作一个技能冷却的图标.抛砖引玉了,如需实际应用还得好好整理代码. 表示技能冷却,计时等无非就两种吧,一是长条状,参照/扩展progressbar即可,另外一个就是方形或者圆形的了吧. 很多有技能条的游戏UI一般都是用的是方形技能图标,如魔兽世界,暗黑三,War3..... 在这里我们试着做一个出来,先看看效果图吧(很次,见尿了,以后可以在指针和边框上加上动画或粒子效果) 该组件分为4层,从下往上依次为:技能原图标ground,裁剪效果层,指针层,外边框.当然也可以加入更多,或者

Cocos2d-x技能冷却还要等多久?---之游戏开发《赵云要格斗》(9)

这里是Evankaka的博客,欢迎大家前来讨论与交流------      转载请注明出处http://blog.csdn.net/evankaka/article/details/42747719 本文将主要来实现游戏开发过程中,技能冷却的实现,一个按钮点一次后,就会有一个冷却时间,得等冷却时间过了之后,你才能再次点击,一般这是实现特殊技能的.在这里,我也自己写了一个类,非常方便,只要把这个类加到你的工程中,加两张图片,就可以实现功能了. cocos2d-x版本:2.2.5 工程环境:wind

NGUI技能冷却CD特效制作

其实蛮简单的今天紫龙感觉萌萌哒就详详细细地记录一下把: 首先在制作一个sprite命名为skill加一个背景图片,然后再建立一个sprite,选择一个可以挡住skill的背景的图片,然后选择Filled属性(如下图).然后在Sprite下面建立一个Label用来表示技能的按键快捷键,本例用的是R键...如下图                  因为sprite的图片挡住了skill的图片,所以给sprite的Alpha值调整到半透明,调整在color里面的属性如图(图的左边已经看到了效果):在c

NGUI实现技能CD效果

在NGUI中使用Sprite的遮罩效果可以很轻松的实现技能CD效果. 具体实现步骤: ①新建一个技能图标的Sprite 如图中的Skill001,再在该技能Sprite上添加一个Sprite做遮罩, Atlas中选一张纯灰色背景的图片,如图中的Shade_Sprite. ②在该遮罩Sprite中有三个属性用来控制遮罩的效果. Type:Filled Fill Dir:Radial360 Fill Amount:0 滑动Fill Amount,就可以看到效果了 ③给技能游戏对象绑定一个快捷键或按钮

Ngui _CD技能特效

using UnityEngine;using System.Collections; public class Skill : MonoBehaviour { public float coldTime=2;//技能冷却时间 private UISprite sprite; bool isColding=false;//标志位,判断技能是否在冷却. // Use this for initialization void Start () { sprite = transform.Find ("

unity使用 NGUI制作技能冷却效果的思路

把NGUI精灵的type改为filled 然后更改fill Amount 这个值 就会实现效果

用CSS模拟魔兽世界技能冷却的效果

效果演示 上面的效果看起来还不错吧.在网页里,除了用Flash,我们还是有不少方法可以实现它. 显然这种效果不复杂,一张背景图片,加上前面带有透明度的多边形图层,在脚本控制下就可以转起来了.但问题在于用什么方法来构建这个多边形? 在IE下可以用VML,其他浏览器可以用Canvas等等.虽然行的通,但都不是最简单的.仔细分析下,该效果本质就是若干个三角形拼接而成.而三角形,如果你熟悉CSS2的话,一定在哪个地方见过...句容市鄂茂钢铁 首先来看一个100*100尺寸的div,他有4条彩色的边框.当