Project1
标题:
应求:废柴版行走惯性
[打印本页]
作者:
水迭澜
时间:
2008-4-25 21:11
标题:
应求:废柴版行走惯性
范例工程没有。上传下载解压都太浪费时间
这个确实是没有什么技术含量的脚本.就这么凑合吧
BEGIN_SPEED = 2 # 开始的速率
$speed = 5 # 主角的移动速率,可以用事件脚本改.
class Game_Player
def refresh
# 同伴人数为 0 的情况下
if $game_party.actors.size == 0
# 清除角色的文件名及对像
@character_name = ""
@character_hue = 0
# 分支结束
return
end
# 获取带头的角色
actor = $game_party.actors[0]
# 设置角色的文件名及对像
@character_name = actor.character_name
@need_move_speed = $speed
@character_hue = actor.character_hue
# 初始化不透明度和合成方式子
@opacity = 255
@blend_type = 0
end
def update
# 本地变量记录移动信息
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
if @move_speed < @need_move_speed
@move_speed += 1
end
move_down
when 4
if @move_speed < @need_move_speed
@move_speed += 1
end
move_left
when 6
if @move_speed < @need_move_speed
@move_speed += 1
end
move_right
when 8
if @move_speed < @need_move_speed
@move_speed += 1
end
move_up
end
end
# 本地变量记忆坐标
last_real_x = @real_x
last_real_y = @real_y
super
if Input.dir4 == 0
@move_speed = BEGIN_SPEED
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
# 不在移动中的情况下
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
复制代码
作者:
9244579
时间:
2008-4-25 23:58
上来了{/se}
我先坐沙发了``老大
作者:
9244579
时间:
2008-4-26 00:02
但是这样的惯性 买司没有达到我想要的的效果啊!!!
我是需要,主角速度变的越大,那么挺下来后会滑动出多少步```
作者:
水迭澜
时间:
2008-4-26 01:21
哦,那你自己改吧,其实很简单的,在UPDATE里
最近脑残,不想写脚本
作者:
xiarongshan
时间:
2008-4-26 01:40
提示:
作者被禁止或删除 内容自动屏蔽
作者:
越前リョーマ
时间:
2008-4-26 01:42
惯性不会因为速度的大小而改变,
而是依据物体的质量来改变的……{/hx}
至于速度大停下来时会走的远些,
则是因为以同时间停下速度大就会走的远些了……
作者:
水迭澜
时间:
2008-4-26 02:05
LS难道在给我科普……
好吧,这个脚本是我为了控制手感而写的,所以没有写停下来的惯性。如果写了的话,则玩家想对准一个NPC说话的时候,恐怕需要很长时间才能适应这种控制方式,这是我不想看到的。写脚本的时候除了考虑物理原则,还要考虑一下操作上的问题。
作者:
yubinhuei
时间:
2008-4-26 12:47
惯性.感觉用在战斗时还好.如是普通场合实在让人手不了.
看到这个想起以前日本做的不少SRPG
居然在普通场合都用了惯性.真不知道搞虾米.对个话都要半天.
惯性.个日感觉是用在ACT类上才是正途.
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1