基于位运算插值的,easyX多按键检测<类>
来源:互联网 发布:马锐拉的池塘 知乎 编辑:程序博客网 时间:2024/06/05 20:55
如果有需要用easyX库写小游戏的朋友可以试试.
特点是把一个size_t作为一个长bool数组.
通过监视者模式检测按键行为
//Inputer.h#pragma once#include <map>#include <windows.h>//引入API函数GetAsyncKeyState()#include <initializer_list>class Inputer{public: Inputer(const std::initializer_list<char>&); ~Inputer() = default; bool get_keyboard(char c); bool empty() { return (keycmd == 0); } void updata();private: size_t keycmd = 0;//缓冲区 std::map<char, size_t> key;};
//Inputer.cpp#include "Inputer.h"Inputer::Inputer(const std::initializer_list<char>&li)//构造函数,接受一个列表,列表里存储需要检测的按键(虚拟键值){ for (auto &a : li) { key.insert({ a,1UL << key.size() });//通过左移无符号值1,为每个需要检测的键生成唯一的位 }}bool Inputer::get_keyboard(char c){ return ((keycmd&key[c]) == 0) ? false : true;//值是否插入?}void Inputer::updata()//在每帧开始前调用{ keycmd = 0;//清空缓冲区 for (auto &a : key) { if (GetAsyncKeyState(a.first) & 0x8000) { keycmd |= a.second;//若API函数返回真,则将对应的值插入 } }}
友情链接:easyX官网
1 0
- 基于位运算插值的,easyX多按键检测<类>
- 基于单片机的多按键多状态检测方法
- 一种基于中断的按键检测方法
- 关于图像的插值运算
- 基于位运算的多模式匹配算法
- 插值运算
- 图像插值运算
- 基于位运算的排序算法
- 基于位运算的权限细粒度控制
- 基于位运算的权限控制
- 基于NLM的插值算法
- android+耳机插拔和耳机按键检测
- STM32按键的检测
- 51单片机外设之——按键的检测(带有标志位的按键识别法)
- 51单片机外设之——按键的检测(带有标志位的按键识别法)
- 按键的编程—中断检测按键
- 灰度图像的区域分割插值算法和针对彩色图像的基于Canny边缘检测的色彩融合算法
- 基于数组的位运算1 数组位的基本运算
- 关于php的foreach
- amazeUI的icon图标库
- 【个人笔记重点,不作为参考】主题:js数组
- 算法分析与设计2017-2-背包问题的贪心算法
- CGI输出中文乱码解决方法
- 基于位运算插值的,easyX多按键检测<类>
- Java集合类 —— 集合类概述
- 随机
- Catalan数——卡特兰数
- MYSQL企业常用架构与调优经验分享
- vue中v-model动态生成
- linux进程的创建及使用
- vi 复制 命令
- Android Ant命令