Project1
标题:
如何让主角不乱动/恢复移动?
[打印本页]
作者:
冰之滄月
时间:
2014-12-29 21:03
标题:
如何让主角不乱动/恢复移动?
本帖最后由 冰之滄月 于 2014-12-29 21:05 编辑
本人用事件做了一个技能树系统,问题是打开窗口的时候,移动光标主角也在后面乱动,如何做到让主角不在后面乱动?
(背景是半透明的,朝向也不能改变)如果事件最好,脚本也可以!
因为背景是半透明的,所以不能记录坐标和朝向再移动回去……
作者:
VIPArcher
时间:
2014-12-29 21:31
不用并行,用自动执行事件试试?
作者:
汪汪
时间:
2015-1-1 22:20
本帖最后由 汪汪 于 2015-1-1 22:29 编辑
class Game_Player < Game_Character
attr_accessor :stop
def update
if $game_player.stop != true
# 本地变量记录移动信息
last_moving = moving?
# 移动中、事件执行中、强制移动路线中、
# 信息窗口一个也不显示的时候
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 如果方向键被按下、主角就朝那个方向移动
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
# 本地变量记忆坐标
last_real_x = @real_x
last_real_y = @real_y
super
# 角色向下移动、画面上的位置在中央下方的情况下
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
end
# 不在移动中的情况下
unless moving?
# 上次主角移动中的情况
if last_moving
# 与同位置的事件接触就判定为事件启动
result = check_event_trigger_here([1,2])
# 没有可以启动的事件的情况下
if result == false
# 调试模式为 ON 并且按下 CTRL 键的情况下除外
unless $DEBUG and Input.press?(Input::CTRL)
# 遇敌计数下降
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 判定为同位置以及正面的事件启动
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
end
复制代码
使用方法:使用脚本 $game_player.stop = true 停止
$game_player.stop = false 可以运动
冲突。。。。。。其他运动着的事件 。。。。。
作者:
taroxd
时间:
2015-1-2 13:00
本帖最后由 taroxd 于 2015-1-2 13:03 编辑
其实我在 VA 也玩过:
https://rpg.blue/thread-373976-1-1.html
用了这四行代码实现:
RUBY 代码
复制
class
Game_Player < Game_Character
attr_accessor
:waiting
def_unless
:movable
?,
:waiting
end
class
Game_Player < Game_Character
attr_accessor
:waiting
def_unless
:movable
?,
:waiting
end
感叹一下还是 VA 方便。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1