pygame 笔记-7 生命值/血条处理】的更多相关文章

通常游戏中的角色都有所谓的生命值,而且头顶上会有一个血条显示.生命值无非就是一个属性而已,很容易在Player.py类中增加,头顶上的血条其实就是绘制二个矩形,叠加在一起. 以上节的Player.py为例: import pygame # 主角 class Player(object): def __init__(self, x, y, width, height, img_base_path): self.x = x self.y = y self.width = width self.hei…
首先要到Unity的Assets Store里面去下载一个扩展的Package叫NGUI HUD Text v1.13(81),注意如果没有安装NGUI就必须先安装NGUI插件,否则会用不了,因为HUD Text是依赖于NGUI插件的,作者是同一个. 3D角色血条实例 1.创建Unity项目工程和文件目录 2.导入模型资源(使用NGUI里面自带的ORC)和NGUI HUD Text v1.13的Package 3.把模型拖进场景中,调整画面,选中Main Camera---->GameObjec…
using UnityEngine; using System.Collections; public class xt : MonoBehaviour { //红色血条 public Texture2D blood_red; //黑色血条 public Texture2D blood_black; //当前生命值 ; void OnGUI() { if (GUILayout.RepeatButton("加血")) { //增加生命值 ) { HP++; } } if (GUILayo…
UI3D转2D平面显示UI3DTo2D血条显示: using UnityEngine; using System.Collections; public class UI3DTo2D : MonoBehaviour { private GameObject _TargetEnemyObj;                //目标物体 private Camera worldcamera;                        //世界相机 private Camera guiCamera…
效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了.Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中的变量,来控制血条的裁剪. 实际操作中,在shader中声明一个uniform float _Factor 然后在C#脚本中,对这个变量进行设置,结果发现,界面上不能实时响应这个值,进行正确的裁剪. 那么我只好牺牲color的一个分量,比如设置g分量,shader中用g分量的值来对血条进行裁剪.最终…
声明:本文是自己做的项目,可能不是最好的方法,或有错误使用方式.各位不喜勿喷! HP进度 HP背景 将上面的资源拖到UE4中(使用UE4自带的颜色也可实现效果,具体参考官方教程 https://docs.unrealengine.com/latest/CHN/Engine/UMG/QuickStart/2/index.html) 网上相关教程:https://answers.unrealengine.com/questions/79728/how-to-make-a-progress-bar-i…
using UnityEngine; using System.Collections; public class NPC : MonoBehaviour { //主摄像机对象 private Camera camera; //NPC名称 private string name = "我是雨松MOMO"; //主角对象 GameObject hero; //NPC模型高度 float npcHeight; //红色血条贴图 public Texture2D blood_red; //黑…
用unity本身自带的功能,如何显示血条? 显示血条,从资源最小化的角度,只要把一个像素的色点放大成一个矩形就足够,三个不同颜色的矩形,分别显示前景色,背景色,填充色,这样会消耗最少的显存资源. unity 有GUITexture,可以用来显示色块.但GUITexture有个问题是,每个GUITexture都会消耗一个drawcall,如果画面上就数百个单位,就会消耗数百个drawcall,drawcall是昂贵的资源,一个手游也就只能允许200个左右的drawcall,显然这个方案只能用来做d…
首先做一个血条,创建一个名为Follow3DObject的脚本添加到血条控件上. Follow3DObject.cs的代码如下: using UnityEngine; using System.Collections; public class Follow3DObject : MonoBehaviour { public Transform target; , , ); // Use this for initialization void Start() { } // Update is c…
以下是 NGUI HUD Text 实现的: 基本原理: 1. 在角色头顶绑一个点 Pivot,用于对齐 2. 因为界面总是覆盖在人物头顶信息的上面,所以将 UIRoot 分为2个 Panel:1) GUI,用于画界面,Depth 较大 2) HUDPanel,用于画人物头顶文字及血条,Depth 较小 (1和2是最重要的) 3. 先使用 NGUI 实现一套管理人物头顶信息的类(或若干个类),名为 HUDText,他包含了各种功能(设置名字.名字颜色.血条等) 4. 将 HUDText 存为 P…
unity版本:4.6 NGUI版本:3.6. (转载请注明参考链接及作者) 参考链接:http://www.cnblogs.com/louissong/p/3841656.html,作者:博客园 LouisSong 很多情况下,我们需要做血量条来显示对象的血量,条状的血量条很容易,直接用NGUI里面的进度条就可以实现,但是有时候我们需要在一些地方做弧形的血量条,下面介绍弧形血量条的方法. 1.首先你需要一张弧形血量的图片,导入到NGUI的Altas中,NGUI图集Altas制作参考:http:…
这次来讲讲Unity3D NGUI这个插件的学习,这个插件是收费的,不过去网上可以下载得很多可用版本.用来做用户的交互UI,学习起来比较简单 第一步,导入NGUI包 http://pan.baidu.com/s/1mhKaoha 导入后Unity工具栏上面就会出现关于NGUI的选择了 第二步,开始看一些例子,分析一些例子,因为一般学插件就是下载后照着别人的例子去做可以学会了. 来看一个例子 这里还看一个上面的进度条的 当这个按钮包含几个脚本之后,就达到这样的效果 之后就能够通过实现脚本控制这个进…
using UnityEngine; using System.Collections; using UnityEngine.UI; public class HealthController : MonoBehaviour { //当前对象是血条还是蓝条 public bool isHealth = false; //虚拟轴,横轴,纵轴 private float hor,ver; //血条的最大宽度 ; //蓝条的最大宽度 ; //当前的虚拟轴 private float currentAx…
NGUI 血条制作步骤 实现过程: 模拟血条的变化当点击按钮Button是血条会实时发生变化. 1.向Unity中导入NGUI2.6.3.unitypackage 点击create your ui 后 在panel中添加Button和Slider,结果如下: 此处的value是给Slider添加的子控件Label为了在血条上显示血量的当前值. value的设置如下 在Button上添加脚本UIButton Message设置如下…
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过"navbar-header"和"navbar-brand"来实现,示例查看代码编辑器(11-22). 原理分析: 此功能主要起一个提醒功能,当然改良一下可以当作是logo(此处不做过多阐述).其样式主要是加大了字体设置,并且设置了最大宽度: /*源码查看bootstrap.css…
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class="nav">)基础上添加类名"navbar-nav" 第二步:在列表外部添加一个容器(div),并且使用类名"navbar"和"navbar-default"…
我们可以看到像英雄联盟等游戏里英雄头顶的血条显示并非是纯色的,而是根据血量的多少而显示一定量的格子,这种方式明显是比较友好.比较美观的,事实上我们的游戏里面也想实现这样的效果,那该怎么办呢?根据血量的多少同时创建N多个小格子图片?这明显不合理:根据血量多少同时创建N多个分割线来拆分图片?这也不合理. 所以我今天将以一种很简单的方式实现这种效果,当然没什么难度,只对UGUI的Slider做一些修改就可以了. 一.首先,我们创建一个Slider,删除他的Handle,勾选Whole Numbers(…
组件设计 创建一个进度条组件,作为血条. bar是实际血量条 DownBar是扣血缓动背景图层 UpBar是加血缓动背景图层 LowBar是低血量变色(和控制器配合,本文不讲) n11组合是血量参考线 发布到Unity. 参考代码 if (_lastHP < hpBar.value) // HP降低 { hpBar.UpBar.visible = false; // 隐藏加血层 hpBar.value = _lastHP; // 设置当前血量 hpBar.DownBar.TweenScaleX(…
定义常量 public class Content { //当前UI分辨率 public const float UI_Width = 1366f; public const float UI_Height = 768f; //手机屏幕大小的二分之一 ; ; //手机屏幕与UI的比率 public static float screen_width_ratio = UI_Width / Screen.width; public static float screen_height_ratio =…
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI; public class HealthBar : MonoBehaviour { public float HealthPoint { get { return m_Slider.value; } set { m_Slider.value = value; } } public float MaxHea…
用Slider来控制Cube旋转 Slider是滑动条.…
转自:http://aigo.iteye.com/blog/2275110 参考自Epic官方项目StrategyGame 血条效果: StrategyHUD.h StrategyHUD.cpp…
7 坦克血条 点击菜单GameObject->UI->Slider创建Slider   选中EventSystem,设置Horizontal Axis为HorzontalUI,Vertical Axis为VerticalUI   image 选中Canvas,设置Render Mode为World Space, Reference Pixels Per Unit为1   image 将Canvas拖到Tank中,使其成为Tank的子对象,相关参数设置如下   image 将Slider改名为H…
学习Unity已经10天了,也没发现有什么长进,真的急.昨天仿着官方Demo做了个射击游戏轮廓,其中需要给每个怪做一个血条. 搜了一些,挺复杂的,用NGUI或者UGUI,外加很长的代码...不过还是找到了一篇简单的. 但是那一篇把所有的东西都放一起了,不太好,我在这整理分离一下. 背景: 官方Demo恶魔射手.其中每个怪都有一个EnemyHealth脚本,该脚本主要有怪物的血量等,然后有个TakeDamage()函数来计算伤害后的血量. 开始: 1.制作图片: PS一张细长的红色图片作为血量:…
 刚好今天有朋友问我,比較典型的样例就是游戏里面人物的血条. 原理非常easy就是把3D点换算成2D的点.可是因为NGUI自身是3D所以我们须要先把NGUI下的点转成2D点.然后在把他转成3D的点. 听起来有点绕,不要紧我直接上代码. 对屏幕自适应不明确的看p=852" rel="bookmark">NGUI研究之怎样自适应屏幕 眼下我一直都是用NGUI来做人物血条,可是2D血条都会有个限制.就是它不能和模型有遮挡关系.只是血条能够依据人物的位置调节.比方远一点的人…
血条是常见功能.能够通过一个血条背景和一个不断改变的血条宽度.来实现少血. 在MainScence.lua中,先改代码: function MainScene:ctor()     local bg = display.newSprite("bg01.jpg")     bg:setPosition(display.cx, display.cy)     self:addChild(bg)     --     local barBg = display.newSprite("…
这几天用Unity3D做个射击小游戏,想做个人形的血条.百思不得其解,后来问了网上的牛牛们,攻克了,事实上挺简单的,GUI里面有个函数DrawTextureWithTexCoords就能够实现图片的裁剪.非常方便.裁剪之后.相信大家就都会操作了.话不多说.贴上代码与截图效果. using UnityEngine; using System.Collections; using   UnityEditor; public class drawTexture : MonoBehaviour { pu…
##1.血量显示 不必像之前那样添加Slider组件 直接创建Image 在添加Source Image之后,将Image Type 修改为Filled 通过修改Fill Mode就可以显示不同效果 也可同时修改Fill Origin 来改变消失的锚点和位置 其它显示方式类似 可以参考血条1.0 h…
本文章用于记录Unity的学习过程,如有疑问,欢迎交流. 1.血条的显示 在Unity场景中创建空物体,然后新建两个Image(图片),当然只用一个也行,一个作为填充来显示血量,一个作为血条的外框. 然后在Unit上添加Slider组件 并将Transition和Navigation均设为None…
多年前写过一篇 Flash/Flex学习笔记(25):摩擦力与屏幕环绕,可惜的当时上传的flash,服务器后来无人维护,现在flash链接都失效了.本篇用pygame重新实现了一个: 原理是类似,但要注意的是:pygame中旋转的角度采用逆时针系统 ,即:逆时针方向旋转,角度为正,反之为负.所以在外理角度时,y轴方向的速度要取反. 素材图(2张): 飞船熄火 飞船点火 需求:按向上键点火,飞船启动,一直加速:无按键时,飞船熄火,速度慢慢降下来(设置摩擦系数):左右键控制转向:飞出屏幕时,从另一侧…