游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5662|回复: 6

按住一个键不放,每秒响应的KeyDown消息的次数固定吗? C++

[复制链接]

3

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
QQ
发表于 2009-11-19 23:29:00 | 显示全部楼层 |阅读模式
在C++游戏中,按下方向键,人物就向那个方向移动。如果按住不放,那人就一直走下去。
也就是消息响应一次,人物坐标就改变一次。
现在问题就是,如果一直按下某键,那它相应的响应消息的速度可能会很快,导致我的人物也移动得太快了,
实际上我并不要它走这么快!!而且好像这个响应的速度也不恒定,游戏里的人也不可能一会走得快一会走得慢吧!!

我想到用OnTimeer(),对某个按键消息,它按下一定时间后才响应一次,不过这样对每个按键消息都要有一个对应的
Timmer,好像麻烦了点!!

我看过一些别人的代码(周志明的飞机游戏),虽然我知道他没用OnTimeer(),可我还是
看不出来他是怎么解决这个问题的。

就想请问一下有什么比OnTimeer简单的方法吗?如果有例子就更好!!

(附件中我上传了周志明的飞机游戏代码)

0

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2009-12-21 13:26:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

按键状态用bool变量控制,接收到第一个KEYDOWN消息的时候把它设置设置为真,接收到该键的KEYUP时把它设置的为假, 精灵的移动在变量的判断里面绘制。

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2010-3-5 10:24:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

按下只是做了前进的标记。楼主应该用速度来走。不要用按一下走多少。

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2010-3-9 09:27:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

定义这个GetAsyncKeyState 来控制

5

主题

972

帖子

975

积分

高级会员

Rank: 4

积分
975
发表于 2010-3-14 23:44:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

2楼正解
之后只要通过调整每一个逻辑帧中人物的位移距离就可以控制人物的移动速度了

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2010-3-15 09:18:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

固定的,不过WINDOWS中可以设置,在控制面版中.

0

主题

21

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2010-3-29 09:52:00 | 显示全部楼层

Re:按住一个键不放,每秒响应的KeyDown消息的次数固定吗

这个嘛
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-10 10:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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