いつもDXライブラリに大変お世話になっております。
「左シフトキー」と「テンキー」を同時に押したとき、
期待通りに機能しない現象を確認いたしましたのでご報告いたします。
使用したDXライブラリはWindows版の「3.23a」で、
「2022/4/2」にダウンロードさせていただいたバージョンです。
こちらの環境の問題かもしれませんが、よければご確認いただけますと幸いです。
<再現方法>
以下の再現ソースを使い、「左シフト」と「テンキーの1」の同時入力を試したところ、
こちらの環境で以下の現象を確認いたしました。
1.左シフトを押したままテンキー1を押したままにすると、
両方が押されているのにテンキー1が入力状態にならず、左シフトは入力状態と非入力状態が入れ替わる(テンキー1=0/シフト=0〜1)。
2.テンキー1を押したまま → 次に左シフトも押したままにし → 先にテンキー1だけ離して → 左シフトを離すと、
両方が離されているのにテンキー1だけ入ったままの扱いになる(テンキー1=1/シフト=0)。
<再現ソース>
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE) ; // ウィンドウモードに
if( DxLib_Init() == -1 ){ return -1;} // DXライブラリ初期化処理
SetDrawScreen( DX_SCREEN_BACK );
char str[256];
// ESCを押すまでループ
char key[256];
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0){
ClearDrawScreen();
GetHitKeyStateAll(key); //キーボード全読み込み
sprintf( str , "テンキー1入力状態 %d\n左シフト入力状態 %d", key[KEY_INPUT_NUMPAD1],key[KEY_INPUT_LSHIFT]);
DrawString( 30 , 230 , str , GetColor( 255,255,255) ) ;//表示
ScreenFlip();
WaitTimer(16);
}
DxLib_End() ; // DXライブラリ使用の終了
return 0 ; // ソフトの終了
}