游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2494|回复: 2

DirectInput keyboard的问题

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-9-29 15:02:00 | 显示全部楼层 |阅读模式
我需要通过方向键移动物体,在程序中,每按一次方向键,物体移动,当我按住一个方向键不放,物体只在我按下时移动一下,然后就不动了。这是怎么会事?下面是我的代码:
            KeyboardState keys=keyDevice.GetCurrentKeyboardState();
            {
                if (keys[ Key.Left])
                    Strafing(-0.5f);
                if (keys[Key.Right])
                {
                    Strafing(0.5f);
                }
                if (keys[ Key.Up])
                {
                    Moving(1.0f);
                }
                if (keys[Key.Down])
                {
                    Moving(-1.0f);
                }

9

主题

86

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2012-3-25 14:16:00 | 显示全部楼层

Re:DirectInput keyboard的问题

keyboard键盘分为两种状态,
一种是KeyPress,另一种是KeyDown,KeyUp,
你需要一个列表,记录键盘上游戏中你要用到的按键的状态。
然后在游戏主循环里不断遍历。
当一个按键按下之后,如果没有收到弹起的消息,就判断其还是按下状态。
再执行一遍 keypressevent。。。
移动的代码就应该写在keypressevent事件里面

9

主题

86

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
发表于 2012-3-25 14:18:00 | 显示全部楼层

Re:DirectInput keyboard的问题

建议seebug 更新一下网站,有点老了,关键是回答问题,没啥动力啊。。。。
而问问题吧,也不太有人愿意回答。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-28 22:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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