VXAceを使っています。
「決定キーで椅子に座り、座ってる間は主人公の向きと動きを固定し、再び決定キーを押すと椅子から降りて向きと動きの固定を解除する」
という流れで椅子に座る表現を作ろうとしています。座って向きを固定する所までは上手く行ったのですが、座ってる途中に方向キーを押すと座ったまま主人公が上下左右に動いてしまいます(=動きを固定できません)。
そこでスクリプト「$game_player.nonmovable = true」を使って動きを止めたのですが、そうすると決定キーの入力も受け付けなくなり何もできなくなります。
なので、座ってる間はマップタイルを変更して周囲一マスを無理矢理通行不可にして一応は成功したのですが冗長のような気がしています。何より長椅子(縦または横に2マス以上ある椅子)では同様の処理はできません。
上記のような動き“のみ”を止めて決定キーの入力は受け付ける処理、またはもっと椅子に座るのに適している処理などがあればご教授願います
椅子に座る表現について
Re: 椅子に座る表現について
そんなのあったっけっと思ったんですけどこちらのスクリプトを使用しているんですね?
movable?は方向キー入力と乗り物乗降・イベント決定判定の二ヶ所で使われてるので
どうせフラグを作るなら前者だけ封じた方が良いでしょうね
movable?は方向キー入力と乗り物乗降・イベント決定判定の二ヶ所で使われてるので
どうせフラグを作るなら前者だけ封じた方が良いでしょうね
コード: 全て選択
class Game_Player < Game_Character
attr_accessor :nonmovable
#--------------------------------------------------------------------------
# ○ 方向ボタン入力による移動処理
#--------------------------------------------------------------------------
alias :_old_move_by_input :move_by_input
def move_by_input
return if nonmovable
_old_move_by_input
end
end
Re: 椅子に座る表現について
>名無し蛙さん
使わせて頂いたところ、無事に思っていた処理が実現できました。
ありがとうございます!
使わせて頂いたところ、無事に思っていた処理が実現できました。
ありがとうございます!