キー入力について(バグ報告掲示板)
投稿: ikosami
投稿:2010/12/12 00:36:12(最新:2010/12/15 00:14:15)
キー入力で
押したかどうか,離したかどうか
ではなく
押されているかどうか,離されているか
という条件を作れませんか?
押したら移動、離したら止まるだと
ループが終わる前に押す,離すを行うと、
どちらか片方しか反応しなくて離されたことに反応せずに
ずっと動き続ける状態になることがよく起こってしまうので・・・
2DアクションRPGのキャラの移動もキーボードでやると
同じことになるのでおそらく
似たような仕組みで動いているのだと思いますが
ループよりも速く(一瞬押すだけ)で→など押すと、
離しなおすまで右に動き続けます・・・
ツイート
押したかどうか,離したかどうか
ではなく
押されているかどうか,離されているか
という条件を作れませんか?
押したら移動、離したら止まるだと
ループが終わる前に押す,離すを行うと、
どちらか片方しか反応しなくて離されたことに反応せずに
ずっと動き続ける状態になることがよく起こってしまうので・・・
2DアクションRPGのキャラの移動もキーボードでやると
同じことになるのでおそらく
似たような仕組みで動いているのだと思いますが
ループよりも速く(一瞬押すだけ)で→など押すと、
離しなおすまで右に動き続けます・・・
コメントする
コメントするには、ログインする必要があります。
コメント一覧
一応、Flashのバージョンの問題やブラウザの問題も
考えられますので、
使用されているFlashのバージョンとブラウザのバージョンを
お伝えいただけると、何か対処できるかもしれません。
Flashのバージョンは以下で調べられます。
http://www.adobe.com/jp/support/flashplayer/ts/documents/tn_15507.htm
よろしくお願いします。
考えられますので、
使用されているFlashのバージョンとブラウザのバージョンを
お伝えいただけると、何か対処できるかもしれません。
Flashのバージョンは以下で調べられます。
http://www.adobe.com/jp/support/flashplayer/ts/documents/tn_15507.htm
よろしくお願いします。
Rmakeのご利用ありがとうございます。
まず、2DアクションRPGのキーボードによる
キャラ移動について書きたいと思います。
現在Rmake側ではキー入力の押す離すは
ループの途中に入ったとしても
捨てないようにしておりますので、
キー入力がブラウザかFlashで消失しているのかもしれません。
運営側の環境では、入力の反映が遅れるということは
確認しておりますが、
現在使用している環境ではキー入力が消失したと
思われるような動作は確認できておりません。
次に入力の関数について書きます。
RmakeはFlashのActionScript3で開発していますが、
このバージョンの場合キーが押されている状態かどうかを
判定する関数や変数はないようです。
そのため、Rmake側で用意するとしても
結局押したときの入力と離したときの入力になりますので
結局同じかと思います。
また、キー入力の処理に関しては2DRPGの移動と同様のため
キー入力がブラウザかFlashで消失しているのかもしれません。
一応確認ですが、ループ内でendInputを
呼んでいるということはないでしょうか?
これをしている場合は入力の消失が起こりうるかと思います。
回転に関しては、
setSpriteRect(spriteHandle,
コピー元の左上x + 0.5, コピー元の左上y + 0.5,
コピー元の幅 - 1.0, コピー元の高さ - 1.0,
-回転の中心x, -回転の中心y, 表示幅, 表示高さ
)
として、コピー元の中心で回転するようにすれば
よいかと思います。
一応以下も参考にしてください
http://page.rmake.jp/wikis/44
あと、テーマの違う質問はスレッドを分けておこなったほうが
やり取りが混乱しなくて、
結果問題が解決しやすいかと思います。
よろしくお願いします。
まず、2DアクションRPGのキーボードによる
キャラ移動について書きたいと思います。
現在Rmake側ではキー入力の押す離すは
ループの途中に入ったとしても
捨てないようにしておりますので、
キー入力がブラウザかFlashで消失しているのかもしれません。
運営側の環境では、入力の反映が遅れるということは
確認しておりますが、
現在使用している環境ではキー入力が消失したと
思われるような動作は確認できておりません。
次に入力の関数について書きます。
RmakeはFlashのActionScript3で開発していますが、
このバージョンの場合キーが押されている状態かどうかを
判定する関数や変数はないようです。
そのため、Rmake側で用意するとしても
結局押したときの入力と離したときの入力になりますので
結局同じかと思います。
また、キー入力の処理に関しては2DRPGの移動と同様のため
キー入力がブラウザかFlashで消失しているのかもしれません。
一応確認ですが、ループ内でendInputを
呼んでいるということはないでしょうか?
これをしている場合は入力の消失が起こりうるかと思います。
回転に関しては、
setSpriteRect(spriteHandle,
コピー元の左上x + 0.5, コピー元の左上y + 0.5,
コピー元の幅 - 1.0, コピー元の高さ - 1.0,
-回転の中心x, -回転の中心y, 表示幅, 表示高さ
)
として、コピー元の中心で回転するようにすれば
よいかと思います。
一応以下も参考にしてください
http://page.rmake.jp/wikis/44
あと、テーマの違う質問はスレッドを分けておこなったほうが
やり取りが混乱しなくて、
結果問題が解決しやすいかと思います。
よろしくお願いします。
表示されている部分だけ回転というのは
例えば
□△
▲■
という画像を
▲の部分だけ表示して
180度回転させると
元画像をそのまま回転して
■▼
▽□
という形にしてしまうので
やってみればわかると思いますが、
▼の表示される位置が設定場所の少し右上にが変わってしまうのです・・・
無理やり誤差修正すればいい話なのですが
ほとんど変わりませんが、
アクションゲームの場合はループの1サイクルですべての動作をするので
すこしでも軽くしたいので・・・
まぁこれは付け足しとして書いただけなので、どっちでもいいのですが・・・
重要なのは押されているかどうか,離されているかの方です。
これができれば、押しっぱなしのものを判別できて
押したときにフラグを立てて離したときにフラグをおろすようなことも
しなくて良くなりますし、バグも起こりません。
例えば
□△
▲■
という画像を
▲の部分だけ表示して
180度回転させると
元画像をそのまま回転して
■▼
▽□
という形にしてしまうので
やってみればわかると思いますが、
▼の表示される位置が設定場所の少し右上にが変わってしまうのです・・・
無理やり誤差修正すればいい話なのですが
ほとんど変わりませんが、
アクションゲームの場合はループの1サイクルですべての動作をするので
すこしでも軽くしたいので・・・
まぁこれは付け足しとして書いただけなので、どっちでもいいのですが・・・
重要なのは押されているかどうか,離されているかの方です。
これができれば、押しっぱなしのものを判別できて
押したときにフラグを立てて離したときにフラグをおろすようなことも
しなくて良くなりますし、バグも起こりません。
メニュー
今頃気がついたのですが、僕の書き方が悪いだけでした・・・
押したら1にして離したら0にするような
押されているかがわかるようなものにしたら
まったく問題はおきませんでした・・・
ご迷惑おかけしてすみません・・・