左キーを押したら右に移動する、みたいな移動反転の状態を作りたいのですが、RGSS3のどこをどういじればいいか教えていただきたいです。
なお、条件分岐で「左が押されたとき右に移動」とすると挙動が変になるのでなやんでいます。
移動反転について
Re: 移動反転について
こんばんは。
プレイヤーキャラの挙動については「Game_Player」の中にあります。
その中を見ていくと、そのものずばり、「方向ボタン入力による移動処理」というのがあります。ここの「move_straight(Input.dir4)」というのが「キー入力に対するキャラの移動」となります。
テンキーがあれば分かりやすいとは思いますが、move_straightは数値に対してその方向に移動するメソッドです。
即ち、2が下、4が左、6が右、8が上となります。
したがって、その移動方向を逆転させるには、(10-n)の方向に移動させればいいわけです。
逆転後は8が下、6が左、4が右、2が上になればいいので、この法則は正しいことが分かります。
普通はスイッチなどで条件分岐するはずなので、適当にスイッチで条件分岐した例を提示します。ID100のスイッチがONの時、移動方向が逆転するようになるはずです。
何か不明点等ありましたら遠慮なくお申し付けください。
※持ち帰り用
プレイヤーキャラの挙動については「Game_Player」の中にあります。
その中を見ていくと、そのものずばり、「方向ボタン入力による移動処理」というのがあります。
コード: 全て選択
def move_by_input
return if !movable? || $game_map.interpreter.running?
move_straight(Input.dir4) if Input.dir4 > 0
end
テンキーがあれば分かりやすいとは思いますが、move_straightは数値に対してその方向に移動するメソッドです。
即ち、2が下、4が左、6が右、8が上となります。
したがって、その移動方向を逆転させるには、(10-n)の方向に移動させればいいわけです。
逆転後は8が下、6が左、4が右、2が上になればいいので、この法則は正しいことが分かります。
普通はスイッチなどで条件分岐するはずなので、適当にスイッチで条件分岐した例を提示します。
コード: 全て選択
def move_by_input
return if !movable? || $game_map.interpreter.running?
if $game_switches[100]
move_straight(10 - Input.dir4) if Input.dir4 > 0
else
move_straight(Input.dir4) if Input.dir4 > 0
end
end
何か不明点等ありましたら遠慮なくお申し付けください。
※持ち帰り用
コード: 全て選択
class Game_Player < Game_Character
def move_by_input
return if !movable? || $game_map.interpreter.running?
if $game_switches[100]
move_straight(10 - Input.dir4) if Input.dir4 > 0
else
move_straight(Input.dir4) if Input.dir4 > 0
end
end
end
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
Re: 移動反転について
丁寧な回答ありがとうございます!
おかげさまでうまく動作しました!
クレジットにもお名前を掲載させていただきます。
本当にありがとうございました!
おかげさまでうまく動作しました!
クレジットにもお名前を掲載させていただきます。
本当にありがとうございました!