Project1
标题:
请问,我如何能够用WSAD行走?
[打印本页]
作者:
ghxujei
时间:
2014-9-15 11:06
标题:
请问,我如何能够用WSAD行走?
我的鼠标脚本已经加入了,但是只是让鼠标左键控制控制对话、确认,右键返回。这样的话再用上下左右行走多有不便。如何能够让WSAD与上下左右同时能够控制角色行走呢?(类似零之轨迹)
作者:
ghxujei
时间:
2014-9-15 11:54
还没有大神会吗……
作者:
H·H·Y
时间:
2014-9-15 13:45
本帖最后由 H·H·Y 于 2014-9-15 13:53 编辑
游戏时按一按F1
好像没有……
用公共事件吧
作者:
芯☆淡茹水
时间:
2014-9-15 16:47
这个,插入到 main 前:
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
# 处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 画面更新
#--------------------------------------------------------------------------
def update
# 本地变量记录移动信息
last_moving = moving?
# 移动中、事件执行中、强制移动路线中、
# 信息窗口一个也不显示的时候
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 如果方向键被按下、主角就朝那个方向移动
if Input.press?(Input::Y)
move_down
elsif Input.press?(Input::X)
move_left
elsif Input.press?(Input::Z)
move_right
elsif Input.press?(Input::R)
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
# 不在移动中的情况下
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
复制代码
作者:
573932914
时间:
2014-9-15 18:58
GAME PLAYER的211行的判断2.4.6.8就是方向键的意思,去掉case改成4个if
未测试
加入全键盘脚本再试吧
作者:
Im剑侠客
时间:
2014-9-16 18:41
作一个忠告吧,if条件分歧、全键盘脚本,它们的灵敏度都不高。小游戏还可将就,若是大型一点,操作性强悍一点的Wasd行走的话,简直不能容忍。默认的Case4、Case8都是很棒的说……呵呵,仁智自择吧。
作者:
ghxujei
时间:
2014-9-21 23:08
谢谢。我先试试。
作者:
ghxujei
时间:
2014-9-21 23:10
挺好用的。就是选技能的时候还是得用左右键。还是谢谢你了。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1