GetMouseInputLog

マウスのボタンが押された履歴を取得する

val = GetMouseInputLog(Button, ClickX, ClickY)

Button : 押されたボタンの値( MOUSE_INPUT_LEFT など )を保存するint型変数のアドレス
ClickX, ClickY : ボタンが押された時のマウスカーソルのX座標とY座標を保存するint型変数のアドレス
LogDelete : ログの情報を削除するかどうかのフラグ( TRUE:削除する FALSE:削除しない )

(プラグイン / モジュール : DxLibW)

解説

マウスのボタンが押されたときの情報( 押されたボタン、押されたときの座標 )を取得します。

前回・若しくはソフト起動から始めての GetMouseInputLog 呼び出しまでの間にマウスのボタンが押されていなかった場合は -1が返り、
その場合は Button、 ClickX、 ClickY で渡す変数のアドレスにも何も値を代入しません。

前回・若しくはソフト起動から始めての GetMouseInputLog 呼び出しまでの間にマウスのボタンが押されていた場合は 0が返り、
押されたされたボタン( MOUSE_INPUT_LEFT 等、ボタンについて詳しくは GetMouseInput の解説を参照してください )が Button に、
押されたときのマウスカーソルの座標が ClickX、 ClickY に代入されます。

一見 GetMousePoint と GetMouseInput の組み合わせがあればこの関数は必要が無い気がしますが、

この関数は

1.押された瞬間の座標を取得できる

2.押された情報が蓄積されている

の2点があるので、GetMousePoint と GetMouseInput の組み合わせでは代用できない関数となっています。

まず、GetMousePoint と GetMouseInput を組み合わせたクリック検知とクリック座標取得の問題として

・クリックの取りこぼしが発生する

プログラムの処理負荷が高く十分なフレームレート( 画面の更新頻度 )を確保できない場合は

プログラムが GetMouseInput で入力状態を調べる間隔が長くなるため、GetMouseInput で入力状態を

調べる間隔より短い時間でプレイヤーがマウスのボタンを押して離すとプログラムはプレイヤーが

マウスのボタンを押したことを検知することができない。

・クリック座標のズレが発生する

同じく処理負荷が高く十分なフレームレートを確保できない場合、GetMouseInput によりマウスの

クリックを検出した後 GetMousePoint でマウスカーソルの座標を取得すると、実際にプレイヤーが

クリックした座標からズレが発生することがあります。( 低いフレームレートでのマウスクリック

検出の間にマウスカーソルが移動してしまっている場合があるので )


の二つがあります。

対して、GetMouseInputLog では『クリックの取りこぼしが発生する』に対しては『マウスのボタンが押された情報が蓄積される』ので取りこぼしの心配が無く、
『クリック座標のズレが発生する』に対しては『マウスのボタンが押された瞬間の座標が取得できる』ので、
主にフレームレートが低い場合に発生するマウスクリックの問題を解決することができます。

蓄積された『マウスのボタンが押された情報』を取得する方法は『戻り値が-1になるまで何度もこの関数を呼ぶ』となります。

この関数の戻り値が0だった場合は蓄積された『マウスのボタンが押された情報』がまだある可能性がありますので、
戻り値が-1( 『マウスのボタンが押された情報』が無かった )になるまで繰り返し GetMouseInputLog を呼ぶというわけです。

尚、第4引数の LogDelete を FALSE にした場合は蓄積された『マウスのボタンが押された情報』を削除しないので、
LogDelete を FALSE にして呼ぶと、何度も同じ『マウスのボタンが押された情報』が返ってきます、
なので LogDelete は『マウスのボタンが押された情報』を削除したくない場合を除いて TRUE を渡すようにしてください。

戻り値:
  0:ボタンが押された情報を取得した

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib 入力
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs