游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4190|回复: 9

急:请教关于在D3D9下实现动画光标的问题?

[复制链接]

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2006-1-9 17:47:00 | 显示全部楼层 |阅读模式
我写了一段程序,将10帧动画加载到10个图面(IDirect3DSurface9)中,每100ms调用一次IDirect3DDevice::SetCursorProperties将光标设置为10个图面中的第 i 个,然后 i=(i+1)%10,可是如果鼠标不移动,光标图形不更新,看不到动画效果,只有不停移动鼠标,光标动画才能看到,哪位高手指点一下

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-1-9 18:19:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题????????

你不会用sprite和纹理来显示??

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-9 22:02:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题????????

sprite和纹理当然好,可是这D3D就这么他妈二?鼠标移动时更新光标,可调用SetCursorProperties时不更新这不是二是什么?操,这简直是BUG

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-1-9 22:46:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题????????

用sprite和纹理就行了,不用那个

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-10 12:42:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题?

看来只能如此了,不过我在每次调用SetCursorProperties后调用两次SetCursorPosition把鼠标位置动一像素,再动回去也可以实现,效果还行。不过如果硬件不支持时好像很低效

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-1-10 12:46:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题?

为什么不试试sprite跟纹理呢????

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-15 23:07:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题?

谢高人指点,看来只好用sprite和纹理了

7

主题

82

帖子

110

积分

注册会员

Rank: 2

积分
110
QQ
发表于 2006-1-17 09:01:00 | 显示全部楼层

Re:急:请教关于在D3D9下实现动画光标的问题?

使用立即更新的参数,叫什么 ***_immediate_update,具体查查手册

试试看

2

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2006-1-20 16:00:00 | 显示全部楼层

Re: Re:急:请教关于在D3D9下实现动画光标的问题?

qinglan: Re:急:请教关于在D3D9下实现动画光标的问题?

使用立即更新的参数,叫什么 ***_immediate_update,具体查查手册

试试看

这个好像没用,我原来是过的

100

主题

224

帖子

238

积分

中级会员

Rank: 3Rank: 3

积分
238
发表于 2007-1-8 09:57:00 | 显示全部楼层

Re: 急:请教关于在D3D9下实现动画光标的问题?

1. sprite方法不能使用硬件光标,而dx的SetCursorProperties方法如果显卡支持的话则可(不过图片尺寸有要求)

2. 若是更新不成功的话可以试试:
关掉window cursor, 而使用dx's cursor
如下:
case WM_SETCURSOR:
// Turn off window cursor.
SetCursor( NULL );
m_pd3dDevice->ShowCursor( TRUE );
return TRUE; // Prevent Windows from setting cursor to window class cursor.
break;

另: 碰到问题先查查帮助
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 05:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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