Project1
标题:
新人请教关于移动速度的问题
[打印本页]
作者:
keezhang714
时间:
2013-1-12 16:04
标题:
新人请教关于移动速度的问题
请问能不能通过脚本调整主角和事件的初始移动速度?
作者:
Sion
时间:
2013-1-12 17:47
事件——设置移动路线——修改移动速度用过吗?不能满足你的要求?
作者:
keezhang714
时间:
2013-1-13 02:30
本帖最后由 keezhang714 于 2013-1-13 02:36 编辑
这个我知道,我只是想知道能不能调整固定移动速度以外的
更快一点,或是更慢一点
顺便我也想知道如何让主角不能跑步
作者:
视觉诱惑
时间:
2013-1-13 04:04
keezhang714 发表于 2013-1-13 02:30
这个我知道,我只是想知道能不能调整固定移动速度以外的
更快一点,或是更慢一点
顺便我也想知道如何让主角 ...
跑步快捷键 Shift
作者:
视觉诱惑
时间:
2013-1-13 04:11
keezhang714 发表于 2013-1-13 02:30
这个我知道,我只是想知道能不能调整固定移动速度以外的
更快一点,或是更慢一点
顺便我也想知道如何让主角 ...
我也是新人这问题 我也想知道 期待高手 解答
作者:
acn00269
时间:
2013-1-13 09:13
这是和八方向一起的,不过一开始把100号开关关掉就行了,其他的自己看注释解决
#==============================================================================
# ■8方向移动 for RGSS3 Ver1.01 by 星潟
#
# 功能: 1.可以设置角色往8方向移动.
# 2.可以设置关于移动的一部分功能.
#==============================================================================
# 使用说明:
# ★通过开关操作切换8方向移动的ON/OFF和能够设置一切移动的禁止.
# ★根据开关操作调转奔跑判定键.
# ★根据变量操作实行奔跑速度的强化.
# ★根据开关切换追加奔跑禁止功能.
#
#==============================================================================
module MOVE_CONTROL
#--------------------------------------------------------------------------
# ● 基本设置(新增定义)
#--------------------------------------------------------------------------
# 这个开关ON的时候禁止8方向移动,只能4方向移动
FOUR_MOVE_SWITCH = 100
# 这个开关ON的时候禁止操作角色
MOVE_SEAL_SWITCH = 101
# 这个开关ON的时候调转奔跑判定键
# 平时奔跑时按下奔跑键的状态变成通常行走
DASH_REV = 102
# 这个开关ON的时候奔跑不能使用
# 开关切换使同一地图能够奔跑的场所和不能奔跑的场所区别开来
DASH_SEAL = 103
# 这个变量比0大的时候奔跑速度会再次增加
DASH_PLUS = 104
end
class Game_CharacterBase
#--------------------------------------------------------------------------
# ● 取得移动速度(考虑奔跑状态)(重定义)
#--------------------------------------------------------------------------
alias real_move_speed_8direction real_move_speed
def real_move_speed
if $game_variables[MOVE_CONTROL::DASH_PLUS] > 0
dash_plus = 1 + ($game_variables[MOVE_CONTROL::DASH_PLUS] * 0.1)
@move_speed + (dash? ? dash_plus : 0)
else
real_move_speed_8direction
end
end
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 判定奔跑状态(重定义)
#--------------------------------------------------------------------------
alias dash_rev? dash?
def dash?
return false if $game_switches[MOVE_CONTROL::DASH_SEAL] == true
if $game_switches[MOVE_CONTROL::DASH_REV] == true
return false if @move_route_forcing
return false if $game_map.disable_dash?
return false if vehicle
return false if Input.press?(:A)
return true
else
dash_rev?
end
end
#--------------------------------------------------------------------------
# ● 处理方向键输入作出的移动(重定义)
#--------------------------------------------------------------------------
alias move_by_input_8direction move_by_input
def move_by_input
return if $game_switches[MOVE_CONTROL::MOVE_SEAL_SWITCH] == true
if $game_switches[MOVE_CONTROL::FOUR_MOVE_SWITCH] == true
move_by_input_8direction
return
end
return if !movable? || $game_map.interpreter.running?
if Input.press?(:LEFT) && Input.press?(:DOWN)
if passable?(@x, @y, 4) && passable?(@x, @y, 2) &&
passable?(@x - 1, @y, 2) && passable?(@x, @y + 1, 4) &&
passable?(@x - 1, @y + 1, 6) && passable?(@x - 1, @y + 1, 8)
move_diagonal(4, 2)
elsif @direction == 4
if passable?(@x, @y, 2) && passable?(@x, @y + 1, 8)
move_straight(2)
elsif passable?(@x, @y, 4) && passable?(@x - 1, @y, 6)
move_straight(4)
end
elsif @direction == 2
if passable?(@x, @y, 4) && passable?(@x - 1, @y, 6)
move_straight(4)
elsif passable?(@x, @y, 2) && passable?(@x, @y + 1, 8)
move_straight(2)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
else
move_straight(Input.dir4) if Input.dir4 > 0
end
elsif Input.press?(:RIGHT) && Input.press?(:DOWN)
if passable?(@x, @y, 6) && passable?(@x, @y, 2) &&
passable?(@x + 1, @y, 2) && passable?(@x, @y + 1, 6) &&
passable?(@x + 1, @y + 1, 4) && passable?(@x + 1, @y + 1, 8)
move_diagonal(6, 2)
elsif @direction == 6
if passable?(@x, @y, 2) && passable?(@x, @y + 1, 8)
move_straight(2)
elsif passable?(@x, @y, 6) && passable?(@x + 1, @y, 4)
move_straight(6)
end
elsif @direction == 2
if passable?(@x, @y, 6) && passable?(@x + 1, @y, 4)
move_straight(6)
elsif passable?(@x, @y, 2) && passable?(@x, @y + 1, 8)
move_straight(2)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
else
move_straight(Input.dir4) if Input.dir4 > 0
end
elsif Input.press?(:LEFT) && Input.press?(:UP)
if passable?(@x, @y, 4) && passable?(@x, @y, 8) &&
passable?(@x - 1, @y, 8) && passable?(@x, @y - 1, 4) &&
passable?(@x - 1, @y - 1, 2) && passable?(@x - 1, @y - 1, 6)
move_diagonal(4, 8)
elsif @direction == 4
if passable?(@x, @y, 8) && passable?(@x, @y - 1, 2)
move_straight(8)
elsif passable?(@x, @y, 4) && passable?(@x - 1, @y, 6)
move_straight(4)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
elsif @direction == 8
if passable?(@x, @y, 4) && passable?(@x - 1, @y, 6)
move_straight(4)
elsif passable?(@x, @y, 8) && passable?(@x, @y - 1, 2)
move_straight(8)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
else
move_straight(Input.dir4) if Input.dir4 > 0
end
elsif Input.press?(:RIGHT) && Input.press?(:UP)
if passable?(@x, @y, 6) && passable?(@x, @y, 8) &&
passable?(@x + 1, @y, 8) && passable?(@x, @y - 1, 6) &&
passable?(@x + 1, @y - 1, 2) && passable?(@x + 1, @y - 1, 4)
move_diagonal(6, 8)
elsif @direction == 6
if passable?(@x, @y, 8) && passable?(@x, @y - 1, 2)
move_straight(8)
elsif passable?(@x, @y, 6) && passable?(@x + 1, @y, 4)
move_straight(6)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
elsif @direction == 8
if passable?(@x, @y, 6) && passable?(@x + 1, @y, 4)
move_straight(6)
elsif passable?(@x, @y, 8) && passable?(@x, @y - 1, 2)
move_straight(8)
else
move_straight(Input.dir4) if Input.dir4 > 0
end
else
move_straight(Input.dir4) if Input.dir4 > 0
end
else
move_straight(Input.dir4) if Input.dir4 > 0
end
unless moving?
@direction = Input.dir4 unless Input.dir4 == 0
end
end
end
复制代码
作者:
j433463
时间:
2013-1-13 10:32
地图设置中本来就有禁止跑步的勾选项,勾选的话在那一张地图上就不能跑步,
从 @map.disable_dash 似乎应该禁止跑步是 $game_map.disable_dash 吧。
或者您把 Game_CharacterBase 中取得搬移速度 def real_move_speed 的
@move_speed + (dash? ? 1 : 0)
那个 1 改成 0,就不管在哪一张地图按 Shift 键都不会跑了,
改变是改成 0.5,那跑的速度只有原来的一半,算是调整速度了吧?
要走路速度快一点,把后面那个 0 改成 0.2 试试。
作者:
双黄连2
时间:
2013-1-13 10:37
设置移动路线:
脚本:@move_speed = 0.1#建议不要超过6,原因嘛...
作者:
Sion
时间:
2013-1-13 10:41
本帖最后由 Sion 于 2013-1-13 10:58 编辑
keezhang714 发表于 2013-1-13 02:30
这个我知道,我只是想知道能不能调整固定移动速度以外的
更快一点,或是更慢一点
顺便我也想知道如何让主角 ...
Game_CharacterBase
#--------------------------------------------------------------------------
# ● 初始化公有成员变量
#--------------------------------------------------------------------------
def init_public_members
@id = 0
@x = 0
@y = 0
@real_x = 0
@real_y = 0
@tile_id = 0
@character_name = ""
@character_index = 0
@move_speed = 4 #默认移动速度 可以设置非整数。
#但是每增加1速度提升1倍:速度 = 基速度*2^@move_speed
@move_frequency = 6
@walk_anime = true
@step_anime = false
@direction_fix = false
@blend_type = 0
@direction = 2
@pattern = 1
@priority_type = 1
@through = false
@bush_depth = 0
@animation_id = 0
@balloon_id = 0
@transparent = false
end
#--------------------------------------------------------------------------
# ● 获取移动速度(判断是否跑步)
#--------------------------------------------------------------------------
def real_move_speed
@move_speed + (dash? ? 1 : 0) #dash状态下速度加1
end
复制代码
禁用跑步地图信息里可以设置
补充一点:设置移动路线中插入@move_speed = x 也可以改变速度,突破设置选项里只有123456档的限制,不过还是有上限,超过8的系统都视为8。
@move_speed = 8 非常high的速度
作者:
keezhang714
时间:
2013-1-13 11:40
本帖最后由 keezhang714 于 2013-1-13 11:46 编辑
非常谢谢大家!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1