コメント

このコメントは、Rmakeで自由なゲームをつくろう / ...へのコメントです。

コメントの内容

Logo1 mini fmy(投稿日:2011/08/14 12:08/14/11)
ご先祖様が教えてくれた気がしたので補足ー。
妄想含んでる話なので的外れな可能性もあり。話半分にお願いー。
キー入力の話なのでこの回でいいのかな?

キー入力のデータを保持しているらしき関数hasInputや関数takeInputの中身?では
「押された」「離された」の記録を残しているだけのようで、
関数getMousePositionみたいに常に現在の情報を取れるわけではないみたい。

だから何なのよっていうと例えば
「左押しっぱ→メニュー開く→左離す→メニュー閉じる」という手順を行うと
メニュー表示中は当然ながら、メニュー閉じても左に進み続けてしまう動作になります。

「離された」瞬間はメニュー表示中だと記録されないので
実際押されてなくても「押された」状態が維持される状況が作れるんちゃう?
というお話です。


STGサンプルや他のゲームを遊ばせて頂いた限りじゃ
もっかい該当のキーやマウスを押せば直るので
「気をつければいい」レベルでそんなにゲームバランスに直結してない模様です。
自分のゲームもまだ影響しそうにないのでそんなに必死になる必要無かったりするんですけど。

ただ、これをどうしてやろうかと考えた時に、自分はうまい手が思いつかなくて
簸川さん&皆さんの知恵を貸して頂けたらなーと思いまして書かせて頂きました。

# 自コード側でゲーム止めるとかにしてもー
# 現状はキー「X」「C」の入力は取れないしー今メニュー開いてる?的な関数も特にないぽいしー。
# 処理の上流で離された判定が来てないとなると
# 自コードで1フレ前(メニュー開く前)のキー記録してもたぶん同じ結果だしー。


そうそう、お前何言ってるかワカンネーんだよって人も
setMenuItemVisible( getMenuHideWindow(), false )

を似たような処理の所に追加するのをおすすめしておきますねー。
「ウィンドウを隠す」の状態もメニュー表示中と同じようなもんらしいので
間違ってメニュー開いてもほんの少しだけマシになりますー。

コメントの内容(一番最初の投稿)

Logo1 mini fmy(投稿日:2011/08/14 12:08/14/11)
ご先祖様が教えてくれた気がしたので補足ー。
妄想含んでる話なので的外れな可能性もあり。話半分にお願いー。
キー入力の話なのでこの回でいいのかな?

キー入力のデータを保持しているらしき関数hasInputや関数takeInputの中身?では
「押された」「離された」の記録を残しているだけのようで、
関数getMousePositionみたいに常に現在の情報を取れるわけではないみたい。

だから何なのよっていうと例えば
「左押しっぱ→メニュー開く→左離す→メニュー閉じる」という手順を行うと
メニュー表示中は当然ながら、メニュー閉じても左に進み続けてしまう動作になります。

「離された」瞬間はメニュー表示中だと記録されないので
実際押されてなくても「押された」状態が維持される状況が作れるんちゃう?
というお話です。


STGサンプルや他のゲームを遊ばせて頂いた限りじゃ
もっかい該当のキーやマウスを押せば直るので
「気をつければいい」レベルでそんなにゲームバランスに直結してない模様です。
自分のゲームもまだ影響しそうにないのでそんなに必死になる必要無かったりするんですけど。

ただ、これをどうしてやろうかと考えた時に、自分はうまい手が思いつかなくて
簸川さん&皆さんの知恵を貸して頂けたらなーと思いまして書かせて頂きました。

# 自コード側でゲーム止めるとかにしてもー
# 現状はキー「X」「C」の入力は取れないしー今メニュー開いてる?的な関数も特にないぽいしー。
# 処理の上流で離された判定が来てないとなると
# 自コードで1フレ前(メニュー開く前)のキー記録してもたぶん同じ結果だしー。


そうそう、お前何言ってるかワカンネーんだよって人も
setMenuItemVisible( getMenuHideWindow(), false )

を似たような処理の所に追加するのをおすすめしておきますねー。
「ウィンドウを隠す」の状態もメニュー表示中と同じようなもんらしいので
間違ってメニュー開いてもほんの少しだけマシになりますー。