Project1
标题:
好久没来,提一个重力脚本的问题
[打印本页]
作者:
小角色
时间:
2008-11-15 16:37
标题:
好久没来,提一个重力脚本的问题
这是部分代码
case Input.dir8
when 1
$ud_ok ? move_lower_left_p : move_left_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
when 2
# $ud_ok ? move_down_p : move_down_aaaagq
move_down_p if $ud_ok
when 3
$ud_ok ? move_lower_right_p : move_right_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
when 4
move_left_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
when 6
move_right_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
when 7
$ud_ok ? move_upper_left_p : move_left_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
when 8
# $ud_ok ? move_up_p : move_up_aaaagq
move_up_p if $ud_ok
when 9
$ud_ok ? move_upper_right_p : move_right_p
if $game_variables[3] == 0
@character_name = "行走.png"
end
end
end
# ローカル変数に座標を記憶
last_real_x = @real_x
last_real_y = @real_y
# 移動処理
@real_x = @x * 128 + @revise_x
@real_y = @y * 128 + @revise_y
# ローカル変数に移動中かどうかを記憶
last_moving = moving?
# 座標更新
move_on
# 現在の座標と以前の座標が異なる場合
if (last_real_x != @real_x or last_real_y != @real_y)
@move_distance = 0 if @move_distance == nil
@move_distance += Math.sqrt((last_real_x - @real_x) ** 2 +
(last_real_y - @real_y) ** 2)
if @move_distance >= 128
@move_distance %= 128
increase_steps
end
# アニメーションを更新
anime_update
else
@pattern = 0
end
end
# キャラクターが下に移動し、かつ画面上の位置が中央より下の場合
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
# マップを下にスクロール
$game_map.scroll_down(@real_y - last_real_y)
end
# キャラクターが左に移動し、かつ画面上の位置が中央より左の場合
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
# マップを左にスクロール
$game_map.scroll_left(last_real_x - @real_x)
end
# キャラクターが右に移動し、かつ画面上の位置が中央より右の場合
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
# マップを右にスクロール
$game_map.scroll_right(@real_x - last_real_x)
end
# キャラクターが上に移動し、かつ画面上の位置が中央より上の場合
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
# マップを上にスクロール
$game_map.scroll_up(last_real_y - @real_y)
end
# 前回プレイヤーが移動中だった場合
if last_moving
# 同位置のイベントとの接触によるイベント起動判定
result = check_event_trigger_here([1,2])
if result == true
if (last_real_x / 128.0).round != @x and
(last_real_y / 128.0).round != @y
if @direction == 2 or @direction == 8
if (last_real_x / 128.0).round > @x
turn_left
else
turn_right
end
else
if (last_real_y / 128.0).round > @y
turn_up
else
turn_down
end
end
elsif (last_real_x / 128.0).round > @x
turn_left
elsif (last_real_x / 128.0).round < @x
turn_right
elsif (last_real_y / 128.0).round > @y
turn_up
elsif (last_real_y / 128.0).round < @y
turn_down
end
end
# 起動したイベントがない場合
if result == false
# デバッグモードが ON かつ CTRL キーが押されている場合を除き
unless $DEBUG and Input.press?(Input::CTRL)
# エンカウント カウントダウン
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
感觉用起来不是很完美,我需要这样的效果∶没有方向键的操作时,立刻换成名为“站立”
的行走图,不知道能不能实现?
谢谢了!
作者:
dbshy
时间:
2008-11-15 20:44
update
if !moving? then
@character_name = "行走.png"
end
作者:
小角色
时间:
2008-11-15 21:32
谢谢这位朋友。。。不过这段加在哪里比较好?。。
作者:
小角色
时间:
2008-11-15 22:02
自己解决了 谢谢。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1