CE怎么该dota技能无cd命令。 求明白人告诉下。。。。。

学无止境,三人行必有我师,把这几年收藏的文章都晒出来,大家共享吧!向原创者致敬! QQ技术交流群:32103634
分类:
2011-04-14 18:05
237人阅读
CEGUI还是一套蛮好用的GUI系统的,但是有一个缺陷就是它所有的控件都是用的矩形,如果想做出不规则的图形比较麻烦。最近想出一个用CEGUI实现圆形进度条的方案。就是采用遮罩手段。 1. 新建一个类ImageGenerator,采用单例模式,内部提供各种图形的绘制算法,并生成可直接用于绘制的Texure,其工作原理是从Texure 中获取保存数据的数组,然后根据其大小定义一个同样大小的数组,初始化值为0x00000000,通过图形学算法在新建的数组上绘制一个扇面,填入值为 0xFFFFFFFF,然后再将2个数组进行一次完全的与运算,再用得到数组生成新的Texture,就是我们需要的环形的部分进度了。 2. 给Progre Bar控件添加一个成员变量d_type,用于区分经典的条形进度和我们要做的环形进度,再添加3个成员变量 d_startAngle,d_endAngle和d_center,分别代表扇形的起始角度,终结角度,和圆心的位置。 3. 在 render 函数中增加条件判断d_type,用于区分是用传统的矩形裁剪的方式来绘制还是用遮罩的方式来绘制。根据d_progre 的值与 d_startAngle计算出一个目标角度destAngle,然后调用ImageGenerator的函数,传入载入的图形Texture和 d_startAngle,destAngle,d_center,得到返回后的Texure,然后将其绘制出来,一个圆形的进度条就诞生了,哈哈。 以上只是一些想法,由于实际的条件,我这个项目不能获取到源图的Texure(由于封装的原因 = =),于是采用了另一个办法,基本思路还是一样,只不过不是对2个数组进行与运算(因为源数组获取不到 = =),而是新绘制一个扇形,但是反过来,需要绘制的地方全部填入0x00000000,不需要显示的部分全部填入0xFFFFFFFF,也就是黑色,然后 在利用外层的其他控件对黑色部分进行遮挡从而只露出进度条需要显示的部分,也能造成环形进度的效果。
PS:采用这个方法,如果不用其他控件进行遮挡,再通过实时不断的改变角度的值,就可以生成类似于游戏里面走技能CD的那种效果了,呵呵。
上一篇:
下一篇:
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料
pizi0475
访问:
371900次
积分:
3821分
排名:
第784名
原创:
转载:
1430篇
译文:
评论:
文章搜索
学无止境,三人行必有我师,把这几年收藏的文章都晒出来,大家共享吧!
声明:早期转载的文章未标明转载敬请原谅,以后将陆续改过来,向原创者致敬!
有问题可留言,部分网页看不到图片可网页另存为到本地再打开即可看到
痞子龙3D编程
QQ技术交流群:32103634
文章分类
友情链接
友情链接2
文章存档
阅读排行
(10602)∠A=40°,∠B=72°,CE平分∠ACB,CD⊥AB于D,若ED=5,CD=12,DF=13分之60,求CE的长
回答:2 浏览:326 提问时间:
2011-04-28 20:24
条评论...
共2条回答
请把图附上才可以作答
2011-04-28 21:01
条评论...
[知识团队]
解:因为CD⊥AB,所以角CDE=90°
又因为CD=12,DE=5,
由勾股定理得CE=13.
我很纳闷,告诉那么多的条件干什么?这题只要知道DC.CE就可以了!
2011-04-29 06:37
条评论...
欢迎登录知识人
会员名:
密 码:
记住我的登录状态
·新浪会员请直接登录
2011 Sina.com专注于C++游戏开发
随笔:14
文章:0
评论:47
引用:0
CEGUI还是一套蛮好用的GUI系统的,但是有一个缺陷就是它所有的控件都是用的矩形,如果想做出不规则的图形比较麻烦。最近想出一个用CEGUI实现圆形进度条的方案。就是采用遮罩手段。 1. 新建一个类ImageGenerator,采用单例模式,内部提供各种图形的绘制算法,并生成可直接用于绘制的Texure,其工作原理是从Texure 中获取保存数据的数组,然后根据其大小定义一个同样大小的数组,初始化值为0x00000000,通过图形学算法在新建的数组上绘制一个扇面,填入值为 0xFFFFFFFF,然后再将2个数组进行一次完全的与运算,再用得到数组生成新的Texture,就是我们需要的环形的部分进度了。 2. 给Progre Bar控件添加一个成员变量d_type,用于区分经典的条形进度和我们要做的环形进度,再添加3个成员变量 d_startAngle,d_endAngle和d_center,分别代表扇形的起始角度,终结角度,和圆心的位置。 3. 在 render 函数中增加条件判断d_type,用于区分是用传统的矩形裁剪的方式来绘制还是用遮罩的方式来绘制。根据d_progre 的值与 d_startAngle计算出一个目标角度destAngle,然后调用ImageGenerator的函数,传入载入的图形Texture和 d_startAngle,destAngle,d_center,得到返回后的Texure,然后将其绘制出来,一个圆形的进度条就诞生了,哈哈。 以上只是一些想法,由于实际的条件,我这个项目不能获取到源图的Texure(由于封装的原因 = =),于是采用了另一个办法,基本思路还是一样,只不过不是对2个数组进行与运算(因为源数组获取不到 = =),而是新绘制一个扇形,但是反过来,需要绘制的地方全部填入0x00000000,不需要显示的部分全部填入0xFFFFFFFF,也就是黑色,然后 在利用外层的其他控件对黑色部分进行遮挡从而只露出进度条需要显示的部分,也能造成环形进度的效果。
PS:采用这个方法,如果不用其他控件进行遮挡,再通过实时不断的改变角度的值,就可以生成类似于游戏里面走技能CD的那种效果了,呵呵。
Tag 标签:
绿色通道:
发表于 2010-05-07 10:22
阅读(538) 能详细说说,你这个是具体如何画 圆形控件的吗?
评论于 2010-06-03 13:54  
呵呵 其实就是更改它的纹理 类似于遮罩的手段 评论于 2010-06-03 13:59  
  大叔,方便加一下我QQ吗?我试过,还是不行啊。
评论于 2010-06-03 22:53  
  我的QQ是:1064067566
评论于 2010-06-03 22:53  
  我主要是想把CEGUI 的进度条做成圆形的呢。
评论于 2010-06-03 22:55  
  这个方法我已经尝试过了,可以成功,但是会有些小缺憾,一个是贴图分辨率很大的话,每次旋转的运算量还是会有点大的,有个效率问题,例如512×512,点数就不少;还有一个是因为没有算插值,旋转以后的图会模糊,特别是边缘,但是要是图比较小的话,效果还是可以的;如果只是单纯的要实现固定的多变形还是建议使用rendereffect,但是要控制三角形的数量;另外还在寻找除开直接修改内存中的贴图以外的CD实现的方法,不知有什么建议?
评论于 2011-04-10 01:46  
  发表评论 昵称:
主页:
邮箱:
(仅博主可见)
验证码:
评论内容: [使用Ctrl+Enter键快速提交评论]
1729467
Yn0UvikKZ9Y=
最新IT新闻
最新知识库文章
简洁版式:
网站导航:
2010年5月
昵称:
园龄:
粉丝:
关注:
搜索 常用链接
我的标签
随笔档案
朋友的博客
什么都搞人士
也是搞游戏的
游戏同志
最新随笔
最新评论
这个方法我已经尝试过了,可以成功,但是会有些小缺憾,一个是贴图分辨率很大的话,每次旋转的运算量还是会有点大的,有个效率问题,例如512×512,点数就不少;还有一个是因为没有算插值,旋转以后...
--kloud
话说6.20刚破解,刚装上怪物猎人3,还没感受到
--somebodya
其实游戏需要带给我们什么,是一种娱乐——让自我价值得到体现,让玩家感受到自己在这个游戏里自己是一个成功者,这就够了。游戏如人生,人生亦如游戏。=============================...
--老马睡不醒
恩 那会做UI脚本化的时候,不了解lua,现在再回头去做,肯定就能直接用上了。脚本很强大!
--未来の大叔
@未来の大叔是啊, 我也想知道你们公司的 各种策划工具,自动生成代码,自动构建,自动化测试都是怎么做的啊=.-, 咱们以前这些做的太差了, 对了, 现在我对lua有了更深的了解, 在看看craft那阵...
阅读排行榜
评论排行榜
Powered by:
模板提供:
Copyright 2011 未来の大叔

参考资料

 

随机推荐