游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3292|回复: 5

关于CEGUI的一个功能实现的问题

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-6-5 23:23:00 | 显示全部楼层 |阅读模式
窗口A上有一个按钮,点击这个按钮程序进入一种状态.
此时希望在程序主窗口的任意位置单击鼠标右键,则取消这种状态;
如果单击鼠标左键,则单击事件只在A窗口和B窗口内有效,其他位置(比如其他窗口的按钮甚至关闭按钮)都无效.

这种效果该怎么做呢?
谢谢大家提点一下~~

1

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2009-6-5 23:30:00 | 显示全部楼层

Re:关于CEGUI的一个功能实现的问题

有点难度诶,顶一个

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-5 23:46:00 | 显示全部楼层

Re: 关于CEGUI的一个功能实现的问题

切换状态容易
只是要在游戏逻辑里判断 当前鼠标位置是落在了有效的窗口里 还是落在了其他区域里
每次都去对比区域和位置 不太好
可又不能所有窗口接收到mouse都首先判断当前游戏状态
…… [em7]

2

主题

49

帖子

49

积分

注册会员

Rank: 2

积分
49
发表于 2009-6-8 15:36:00 | 显示全部楼层

Re: Re: ?於CEGUI的一??功能???的???

arwenlin: Re: ?於CEGUI的一??功能???的???

切?Q??B容易
只是要在??蜻???判? ?前鼠?宋恢檬锹湓诹擞行У拇翱谘e ?是落在了其他?^域?
每次都去...


B C 都?DISABLE

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-6-9 09:45:00 | 显示全部楼层

Re: Re: Re: ?於CEGUI的一??功能???的???

123776: Re: Re: ?於CEGUI的一??功能???的???



B C 都?DISABLE

窗口太多
都设disable很麻烦
而且disable以后 tooltips就不显示了吧

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2009-6-11 00:17:00 | 显示全部楼层

Re: 关于CEGUI的一个功能实现的问题

??????很容易做到
例如

bool GuiFrameListener::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
    if(??B==true)
    {
        if(滑鼠右?)
        {
            ??B=false;
            return true;
        }
        if(滑鼠左?)
        {
            if(滑鼠位置在a窗口有效??? || 滑鼠位置在b窗口有效????
            {
                CEGUI::System::getSingleton().injectMouseButtonDown(convertOISMouseButtonToCegui(id));
            }
            return true;
        }
    }
    CEGUI::System::getSingleton().injectMouseButtonDown(convertOISMouseButtonToCegui(id));
    return true;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 01:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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