游戏开发论坛

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

求教 镜头移动控制问题

[复制链接]

5

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2011-1-6 23:03:00 | 显示全部楼层 |阅读模式
     战斗场景放了一个摄像机,以WASD控制平移,QE控制旋转。用一个BOOL表示是否正在移动,当键盘收到WASD的DOWN消息后,判断该BOOL值,TRUE则什么都不做,FALSE则设置该变量为TRUE,然后在镜头帧循环根据变量值更新镜头位置。当键盘收到WSAD的UP消息后,将该变量置FALSE,同时置镜头状态stop=True(为镜头作减速运动准备的)。
     问题是这样的:当我保证当前只有一个键down时,平移能够正常表现。但是Down2个键(如"A""D"),松开其中一个后,会产生一段延迟(1秒左右),然后朝另一个方向移动。
     请问这段延迟时间是怎么产生的呢?有没有什么办法消除?诚恳请教各位前辈,小弟刚入门没多久。

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-6 23:42:00 | 显示全部楼层

Re:求教 镜头移动控制问题

按住AD,键盘接受的消息是“A,D,,,(1秒延迟),,,DDDDDDDDDDDDDDDD”

5

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2011-1-7 10:26:00 | 显示全部楼层

Re:求教 镜头移动控制问题

请问楼上的大哥,有没有办法能实现按住A,再按D时效果表现是镜头先停下,然后再立即改变为另外一个方向呢?也就是消除那段延迟时间...

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

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

Re:求教 镜头移动控制问题

问题在于:
当键盘收到WSAD的UP消息后,将该变量置FALSE,同时置镜头状态stop=True

收到UP消息时,不可以盲目地让stop=True
原因是:先按A,再按D,然后又放开A。这时候D仍然是按着的,也就是说不可以stop=True。
但是你却stop=True了。不是吗?

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-7 10:59:00 | 显示全部楼层

Re:求教 镜头移动控制问题

只有在W,S,A,D这4个按键全都是false的时候,stop才等于True
但是你的程序里,只要这4个里面有任何一个收到UP消息,stop就直接变成True了。
这就是问题所在。

5

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2011-1-7 20:43:00 | 显示全部楼层

Re:求教 镜头移动控制问题

多谢!虽然还没完全解决,但是逻辑没问题了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-3 05:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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