游戏开发论坛

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

游戏物品栏移动问题,WM_MOUSEMOVE

[复制链接]

1

主题

5

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2011-7-13 10:18:00 | 显示全部楼层 |阅读模式
case WM_MOUSEMOVE:
{
POINT ptMouse;
ptMouse.x = LOWORD(lParam);
ptMouse.y = HIWORD(lParam);
g_pActor.OnMouseMove(ptMouse);
}
当鼠标移动太快时,鼠标的坐标就会出现错误,比如鼠标快速的从屏幕右边划到左边时,显示的坐标X 不是0 而是 几百或者几十 。而且拖动物品栏时,光标有点飘的感觉.就像拖动浏览器的进度条一样,如果太快,光标会在滑块上飘
请问游戏UI中的物品栏移动是具体怎么实现的。

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2011-7-13 10:57:00 | 显示全部楼层

Re:游戏物品栏移动问题,WM_MOUSEMOVE

鼠标坐标的采样是有频率的。

1

主题

5

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2011-7-13 13:56:00 | 显示全部楼层

Re: 游戏物品栏移动问题,WM_MOUSEMOVE

这个我知道。
但是游戏中具体是怎么做的,我看游戏中的物品栏在移动时,不会出现飘的情况

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-7-13 18:51:00 | 显示全部楼层

Re:游戏物品栏移动问题,WM_MOUSEMOVE

物品位置 = 物品位置 + 鼠标位置 - 上一次鼠标位置
上一次鼠标位置 = 鼠标位置

这种方法是不行的,要用鼠标的绝对位置

1

主题

5

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2011-7-14 11:40:00 | 显示全部楼层

Re: 游戏物品栏移动问题,WM_MOUSEMOVE

今天想到一个办法来解决了,在
          if(PeekMessage(&msg,NULL,0U,0U,PM_REMOVE))
        {
                                TranslateMessage(&msg);
                                DispatchMessage(&msg);
        }
        else Render();
的render()函数里面调用GetCursorPos()来获取鼠标位置。
谢谢楼上的兄弟了。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2011-7-18 04:49:00 | 显示全部楼层

Re:游戏物品栏移动问题,WM_MOUSEMOVE

光标飘是因为光标的显示独立于鼠标消息,前者比较底层。
还有就是不应当用WM_MOUSEMOVE,而应该每frame取得鼠标坐标。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 11:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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