游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4898|回复: 4

键盘按键连击怎么实现

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2008-9-13 01:56:00 | 显示全部楼层 |阅读模式
我现在正在做一个关于按键连击的程序:要求是按住一个键 执行一个动作 在按下这个键 在执行另外一个动作
动作播放完了继续下 一个动作 比如说:我按了W 是走 在按一下W 就是跑 在按一下就是攻击 那位高手帮帮忙啊 [em17]

5

主题

46

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
发表于 2008-9-13 09:09:00 | 显示全部楼层

Re:键盘按键连击怎么实现

很简单,当每按一个键时,根据角色当前的状态选择下一个动作。
另外还需要给每个状态定义一些可以连接动作的阶段。
比如跳跃的上升和下降阶段, 攻击的收尾阶段。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-9-13 10:09:00 | 显示全部楼层

Re:键盘按键连击怎么实现

我说一下我的简单的想法.关于连续按2下W会跑起来的操作

  1. 初始化数据
  2. bool key[w]=false;//记录w键是否按下
  3. uint state=0;//记录角色状态.0=原地不动,1=走路,2=跑......
  4. float w_time=0.0f;//记录按下w的缓冲时间

  5. 游戏操作部分(消息处理函数)
  6. 当w键按下时
  7. {
  8.   key[w]=true;
  9.   if(w_time>0.5f)//如果倒计时还剩0.5秒以上
  10.   {
  11.     state=2;//就跑
  12.   }
  13.   else//如果倒计时少于0.5秒
  14.   {
  15.     state=1;//就走
  16.     w_time=1.0f;//倒计时设置为1秒
  17.   }
  18. }
  19. 当w键放开时
  20. {
  21.   key[w]=false;
  22.   state=0;
  23. }

  24. 在游戏循环里
  25. if(w_time>0.5f)
  26. {
  27.   w_time -= system_tyme;//过了多少时间就剪掉多少时间
  28. }
复制代码

不知道这样可不可以

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2008-9-14 01:41:00 | 显示全部楼层

Re:键盘按键连击怎么实现

那要3连击或者4连击呢  还得让动画播放完  比如我按W 是走 ,松开不就停止了吗,那会有停顿的,我不想让它有停顿 应该怎么实现

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-9-15 10:19:00 | 显示全部楼层

Re:键盘按键连击怎么实现

不可以那样
松开W键的时候当然要停下来了.
不然,我要是松开之后不按第二下,这个角色会怎么样呢?
A.停止(推荐,连CAPCOM的游戏也都是这样的.)
B.一直向前走(所谓的不想让他有停顿.问题是你怎么知道玩家一定会按第二下呢?)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 08:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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