【ウディタ講座】マウスカーソルを非表示にするコモン

あなたのゲームの操作方法がテンキー/マウスパッドだけ(マウス非対応)なら、マウスカーソルはあんまり必要ありませんね。

余計なカーソルのちらつきはゲームの没入感を削ぐこともあります。ツクールなどでは気を利かせて非表示にしてくれますので、ウディタでもマネてみましょう。

単に「常時非表示」とする場合

これは簡単。

システム変数の74番をいじればOKです。ゲーム開始時に一行、変数操作を入れるだけ。

 | |■変数操作: Sys74:マウスポインタ表示する?(1=ON) = 0 + 0

しかしこれはどんな場合でもカーソルが絶対に表示されないので、不便に思うときもあるでしょう。気の利かせるなら、次に紹介するやり方がよさそうです。

カーソルが動いている間は表示したい場合

キーボード操作オンリーのソフトでも、終了時はウィンドウの右上のバツをクリックしたくなるものです。

そんなときには「カーソルが動いている間だけ表示してくれる」方が親切ですね。

並列処理にする必要がありますが、こんな感じでどうでしょう。

■条件分岐(変数): 【1】 Sys71:マウスX位置 が CSelf10[前回X] 以外 【2】 Sys72:マウスY位置 が CSelf11[前回Y] 以外
-◇分岐: 【1】 [ Sys71:マウスX位置 が CSelf10[前回X] 以外 ]の場合↓
|●ラベル「on」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
-◇分岐: 【2】 [ Sys72:マウスY位置 が CSelf11[前回Y] 以外 ]の場合↓
|●ラベル地点「on」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■変数操作: CSelf12[停止フレーム数] = 0 + 0
|■変数操作: CSelf10[前回X] = Sys71:マウスX位置 + 0
|■変数操作: CSelf11[前回Y] = Sys72:マウスY位置 + 0
|■変数操作: Sys74:マウスポインタ表示する?(1=ON) = 1 + 0
|■
-◇上記以外
|■変数操作: CSelf12[停止フレーム数] += 1 + 0
|■条件分岐(変数): 【1】 CSelf12[停止フレーム数] が 60 以上
|-◇分岐: 【1】 [ CSelf12[停止フレーム数] が 60 以上 ]の場合↓
| |■変数操作: Sys74:マウスポインタ表示する?(1=ON) = 0 + 0
| |■
|◇分岐終了◇
|■
◇分岐終了◇

カーソル座標を常に監視しておいて、一定時間(フレーム数)動かなければ表示をオフにするわけです。