| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2294 人关注过本帖
标题:求助kbhit函数怎么用
只看楼主 加入收藏
zbh120307
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-9-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
求助kbhit函数怎么用
最近想做一个纯文字游戏,比如:我想一边让NPC 10秒执行一次任务(如食物每十秒钟增加10),一边让玩家免回车键盘输入(如操控玩家按k键砍树),并让两者同时进行。网上说最好用kbhit函数,请问该如何实现?(若其他函数或手写函数也行,版本为Windows)
搜索更多相关主题的帖子: 函数 版本 网上 kbhit 同时 
2024-05-26 19:24
forever74
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:CC
等 级:版主
威 望:58
帖 子:1688
专家分:4262
注 册:2007-12-27
收藏
得分:1 
windows下还是得研究WIN32 API。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2024-05-26 19:48
zbh120307
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-9-5
收藏
得分:0 
最好是kbhit函数


-----------------------------------------
说点什么好呢?

2024-05-26 19:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:15 
程序代码:
#include <conio.h>

#include <print>
#include <chrono>
#include <thread>

int main( void )
{
    unsigned 食物 = 0;
    auto last_time = std::chrono::steady_clock::now();

    for( ; ; std::this_thread::yield() )
    {
        if( auto t=std::chrono::steady_clock::now(); t-last_time>=std::chrono::seconds(10) )
        {
            last_time = t;
            食物 += 10;
            std::println( "食物 = {}", 食物 );
        }

        if( _kbhit() )
        {
            int ch0=_getch(), ch1=0;
            if( ch0==0x00 || ch0==0xE0 )
                ch1 = _getch();

            if( ch0 == 'k' )
            {
                std::println( "砍树" );
            }
        }
    }
}
2024-05-27 10:24
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:4 
可以用多线程,一个线程管NPC,另一个线程监控键盘输入。
程序代码:
if(kbhit())
{
    char ch=getcahr();
    if(ch=='k')
        do something
}
2024-05-27 10:28
zbh120307
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-9-5
收藏
得分:0 
谢谢


-----------------------------------------
说点什么好呢?

2024-05-27 20:43
快速回复:求助kbhit函数怎么用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016277 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved