我要发帖 回复

中级会员

5

主题

128

积分

0

专家分

初学者

:

私信
发表时间 : 2007-11-8 11:12:26 | 浏览 : 9511    评论 : 17
我写了一个layout文件,其中有一个相机列表用来显示场景中的相机,想通过点击其中的相机来实现相机的切换,每个相机通过一个staticimage来表示,但我不知道如何在staticimage中显示图片,是直接在layout文件中写还是在在ogre的程序中写,有哪位高人如果知道,望不吝赐教

最近VR访客

freezing 评论于2007-11-8 15:43:18

已解决

通过在cegui论坛上查找相关内容问题已解决,现将代码给出,希望以后有人遇到同样问题时能参考:
//通过一张图片创建一个imageset,第一个参数为欲创建的imageset的名称,第二个参数为图片的名称
                CEGUI::ImagesetManager::getSingleton().createImagesetFromImageFile("camera1Image", "10points.png");
//获得staticimage控件,参数为控件的名称
                CEGUI::Window *img = CEGUI::WindowManager::getSingleton().getWindow("mCamera1");
//设置属性第一个参数为属性名,第二个参数为属性值,具体为:set:imageset名 image:图片名,默认为full_image,将整个图片都加载
                img->setProperty("Image", "set:camera1Image image:full_image");
freezing 评论于2007-11-8 16:41:49
效果就是下面的样子,随便加了张图片,旨在说明问题,呵呵
a.JPG
freezing 评论于2007-11-9 13:16:41

更正一个问题

用staticimage显示图片的问题解决了,但不能通过点击来实现相机切换因为image没有EventClicked事件,要想实现上面提到的功能要用imagebutton控件,显示图片的方法与staticimage差不多,只是要加载4张图片,分别用来表示平常状态、鼠标滑过、被按下以及不能使用时显示的图片。

特此更正

[ 本帖最后由 freezing 于 2007-11-9 01:24 PM 编辑 ]
oGrer 评论于2007-11-16 21:02:16
Ogre中关于CEGUI的部分讲述太少,而CEGUI Tutorial中里的代码不能直接在Ogre里边用,还需要改动一些。

总觉得CEGUI是误导Ogre用户。
oGrer 评论于2007-11-17 02:01:36
CEGUI 似乎也不提供imageEditor的下载了。
CEGUILayoutEditor里边有Image的属性项,但是我没有设置成功过。不知道根本就不能设置呢?
CEImageEditor也无效了。

用的还比较简单,一个图片覆盖整个widget。
要是用到region呢? 那个坐标如何捕获?

不用代码方式,用XML也可以实现的。
Diamond 评论于2007-11-17 13:38:16
谢谢 学习
obuil 评论于2008-5-30 15:13:40
我的也弄出来了
1.JPG
kaimusala 评论于2008-9-12 03:47:40
请问各位,GUI里的按键都是在ogregui.layout里设定的,而要在固定位置显示图片我却一直办不到,用LZ给的代码能够编译通过,但是运行出错,哪位能不能给个稍微完整点的代码,小弟学习学习。
kaimusala 评论于2008-9-14 07:32:35
呵呵,搞定了,缺了一个 sheet->addChildWindow(si);
tan_dunming 评论于2008-9-14 08:50:15
其实CEGUI不怎么太好的支持自绘制,就像VC中在控件中输出图表什么的。特别是一些程序中动态生成的图表。在处理这些问题的时候,我是采用利用OpenGL绘制,渲染到纹理,得到纹理数据,再生成CEGUI的Texturen,把这个生成的Texture绑定到StaticImage来完成的。(另附拙图,有点业余,见笑了)
1.jpg
追求卓越
tan_dunming 评论于2008-9-14 08:51:51
当然也可以把纹理数据输出到文件,在利用已有的比较好实现的办法解决,不过这样效率稍低了一些。呵呵,效果是一样的。

不知道有没有更好的办法?全当抛砖引玉了。
追求卓越
kaimusala 评论于2008-9-14 23:17:46
如果是更新图象信息的话,RTT无疑是最高效的选择,至少目前是这样。
kaimusala 评论于2008-9-16 20:18:10
想问一下,cegui里的pushbutton控件响应的图片必须是在layout里写好了的吗?如果是直接渲染的一个图象似乎无法响应pushbutton之类的函数。。。尝试了很多次也没用,网上也没看到类似介绍。谢谢各位。
cjhyl 评论于2009-1-6 09:42:03
图片是支持点击事件的,
pushbutton的点击是:PushButton::EventClicked
而CEGUI窗口的点击就是Window::EventMouseClick
不过在具体实现的时候最好做一下按键判断,因为这个时间对鼠标左\中\右键都有响应.
cjhyl 评论于2009-1-6 09:43:16
哎哟,不小心出错别字了,上面的"时间"改为"事件".
eplaylity 评论于2009-5-19 19:55:59
那个,有人知道如何设置文字的颜色吗?
xzll77 评论于2012-4-8 16:30:53
tan_dunming 发表于 2008-9-14 08:50 AM
其实CEGUI不怎么太好的支持自绘制,就像VC中在控件中输出图表什么的。特别是一些程序中动态生成的图表。在 ...

我想用cegui显示曲线图,但不知道用什么来画曲线,请问能不能详细解释下怎么“利用OpenGL绘制,渲染到纹理,得到纹理数据,再生成CEGUI的Texturen”

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-10-29 04:04 AM

返回顶部