【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 3009|回复: 4

【Quartz控件系列教程】Tut04 在UI中显示文字

[复制链接]
发表于 2008-1-25 16:51:38 | 显示全部楼层 |阅读模式

这是Quartz--v0.041版本的第四个例子,我们依然使用前一个例题的代码完成。如果没有看的,请先看【Quartz--v0.04例题】Tu....03 在UI中增加按钮[长]

在本次例题中,主要完成显示自定义的文字。这种字体是随时可以更改的,包括颜色,大小,字体。字体是使用TureType字体,完全兼容了win32的字体,只要是你的电脑中保存的字体都可以正常显示,如果游戏版本客户端没有这个字体,会自动选择默认字体。

首先拷贝上一个例题到新的目录,然后编译确保可以通过。

我们在上一个例题的基础上增加一个新的控件 文字控件:

CText m_LogeText;

然后我们对它进行一些设置,对于Text控件一些定义不需要在init函数之前,因为封装的FONT字体是在init中初始化调用的,这是它特别的地方:


m_LogeText.SetTextColor(0xFFC2EF02);
m_LogeText.SetFontWidth(8);
m_LogeText.SetFontWeight(800);
m_LogeText.SetFontHeight(20);
m_LogeText.SetFontType("Arial");
m_LogeText.Init(120,140,300,20);
m_LogeText.SetText("Logoin to your account now");

然后在渲染中增加这个控件的渲染,非常简单吧~~我相信你用过前面几个控件以后,不看教程也都知道该怎么使用了。

[此贴子已经被作者于2009-4-20 16:12:01编辑过]
发表于 2009-4-15 21:52:02 | 显示全部楼层
LZ,你这东西严重影响FPS啊。。。。我空跑FPS是500多,加了这UI就降到160多了。。。。。怎么回事。。。
 楼主| 发表于 2009-4-16 09:06:20 | 显示全部楼层

非常感谢你使用我的UI库

 

这个问题可能要从3方面解释:

 

 1.UI绘制需要占用一些资源时间的,画的图形越多越大,占用的时间就越多,这个是不可避免的

 

 2.在绘制UI的时候,有专门的CPU空闲控制,不让运行程序独占CPU; 单方面追求高FPS是没有意义的,因为真正的游戏显示速度还是和你的屏幕刷新速度有关。

 

 3.DX的字体绘制消耗很大的系统时钟,因此大部分的字能用图片绘制就用图片绘制,需要实时更新的文字才用文字控件实现;本GUI系统已经在内存中实现了动态讲输入的文字截获,在内存中渲染成图片再画出来,这样大大提高了DX本身字体的绘制速度。

 

 

 建议你的应用程序把FPS控制在60左右,过多的渲染帧在内存中也不会被显示出来,而且白白的浪费了CPU时钟,应该用这些渲染间隙去做一些其他的事情,比如地图的加载。 这个GUI库消耗系统资源很低,你可以打开系统监视器查看CPU利用率,不考虑你的游戏的影响,单纯加载GUI库,CPU负载应该在1%~5%之间。

 

  这个UI库还在完善期,有很多的功能和运算方式需要增加和更新,希望你能够多提宝贵意见~![em80]

[此贴子已经被作者于2009-4-16 11:07:06编辑过]
发表于 2009-4-20 14:01:24 | 显示全部楼层
[BR]谢谢LZ的回复。我举得这个UI库还是比较简单易用的。不过还是有些问题:
[BR]1. ui的图片视乎不能自定义路径?一定要覆盖原本那个图片?
[BR]2. CUIWindowManager ,cMouse,cKeyboard,这三个类在初始化UI时要传递给UI库,只能用全局变量?而且改成全局指针也不行?
[BR]3. UI库的按键检测是win32的按键机制,还是DXINPUT,或者是其他?
[BR][EM65]其它~~~~在看看先
 楼主| 发表于 2009-4-20 15:35:44 | 显示全部楼层
QUOTE:
以下是引用elfmoon在2009-4-20 14:01:24的发言:

谢谢LZ的回复。我举得这个UI库还是比较简单易用的。不过还是有些问题:
1. ui的图片视乎不能自定义路径?一定要覆盖原本那个图片?
2. CUIWindowManager ,cMouse,cKeyboard,这三个类在初始化UI时要传递给UI库,只能用全局变量?而且改成全局指针也不行?
3. UI库的按键检测是win32的按键机制,还是DXINPUT,或者是其他?
图片点击可在新窗口打开查看其它~~~~在看看先

 

  1. UI图片是可以更改路径的~~而且静态的图片还有一个属性可以更改路径。详细的讲解可以看下面的例题:

     http://forum.exceedu.com/forum/dispbbs.asp?boardid=46&Id=14221       (4月20日更新)

 

  2.这个当然是可以的,你声明成指针,忘了new了吧~~哈~

   http://forum.exceedu.com/forum/dispbbs.asp?boardid=46&Id=14220

 

  3.win32的按键机制.目前做的不多,一直想直接获取键盘驱动的,希望在下一个版本更新中实现 呵呵。

  补充一点,才发现教程很久没更新了,有些方法现在已经简化了  呵呵~~可以看看新的教程~~渲染就不用原来那么麻烦了~

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-2-6 12:57

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表