设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1573|回复: 10
打印 上一主题 下一主题

怎么把移动速度改慢点…

 关闭 [复制链接]

Lv1.梦旅人

剑圣

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-8-31
帖子
778
跳转到指定楼层
1
发表于 2009-4-16 05:05:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
……3太慢4又太快…改改脚本能让4变慢一点么?
此贴于 2009-4-17 13:42:42 被版主darkten提醒,请楼主看到后对本贴做出回应。

PC/IOS/Android共享的RM RPG:未名大学

Lv1.梦旅人


梦石
0
星屑
89
在线时间
24 小时
注册时间
2006-5-27
帖子
11425

贵宾

2
发表于 2009-4-16 05:32:05 | 只看该作者
速度和频率配合起来多试几次,嗯。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

剑圣

梦石
0
星屑
50
在线时间
122 小时
注册时间
2008-8-31
帖子
778
3
 楼主| 发表于 2009-4-16 05:50:20 | 只看该作者
跟频率没关系吧?我就是想改下角色平移速度的大小…比如把内置的速度4:fast改慢点…

PC/IOS/Android共享的RM RPG:未名大学
回复 支持 反对

使用道具 举报

Lv1.梦旅人


梦石
0
星屑
89
在线时间
24 小时
注册时间
2006-5-27
帖子
11425

贵宾

4
发表于 2009-4-16 05:53:06 | 只看该作者
行走速度跟频率也有关系的,嗯。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
5
发表于 2009-4-16 05:57:54 | 只看该作者
Game_Character 2 的 update_move 里 有一句
distance = 1.8 ** @move_speed
可以改这个试试
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
6
发表于 2009-4-16 06:01:12 | 只看该作者
弱问LS大大,移动速度是不是内部定义的?
@move_speed = command.parameters[0]这一句看不懂,请指教- -
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
7
发表于 2009-4-16 06:03:19 | 只看该作者
class Game_Character
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :move_speed

事件脚本$game_player.move_speed = 7.5
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
8
发表于 2009-4-16 06:04:31 | 只看该作者
以下引用tommay于2009-4-15 22:01:12的发言:

弱问LS大大,移动速度是不是内部定义的?
@move_speed = command.parameters[0]这一句看不懂,请指教- -

这句是在事件强制移动路线更改移动速度时执行的,把 @move_speed 改为更改移动速度中指定的速度……一开始在 Game_Character 的 initialize 中 @move_speed 被初始化为了 4~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
9
发表于 2009-4-16 06:06:15 | 只看该作者
以下引用紫苏于2009-4-15 22:04:31的发言:

这句是在事件强制移动路线更改移动速度时执行的,把 @move_speed 改为更改移动速度中指定的速度……一开始在 Game_Character 的 initialize 中 @move_speed 被初始化为了 4~

这个移动速度初始值4的意义是什么?
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
10
发表于 2009-4-16 06:51:35 | 只看该作者
Game_Character 的 update 中,@move_speed 直接控制了刷新多少帧切换行走图移动时的下一帧:
if @anime_count > 18 - @move_speed * 2

@anime_count 超过某值后就会切换到行走图下一帧,可以看出 @move_speed 越大,切换得越快~(这个 @anime_count 是在 update_move 的最后每帧增加的)

update_move 中,@move_speed 还控制了刷新一帧角色的实际移动距离:
    distance = 2 ** @move_speed
    # 理论坐标在实际坐标下方的情况下
    if @y * 128 > @real_y
      # 向下移动
      @real_y = [@real_y + distance, @y * 128].min
    end

默认的距离是 2^@move_speed,所以速度 4 是速度 3 的两倍~
以向下移动为例,Game_Player 刷新时会判断玩家是否按下方向键[下],如果按下则会改变继承自 Game_Character 的 @y (除非在地图边缘),这样 update_move 被调用时发现 @y 跟 @real_y 不匹配,于是让 @real_y 增加 distance 那么多(但这时 @real_y 还不一定已经和 @y 一致),并随时用 min 来修正 @real_y 的值最大为 @y * 128(这同时也保证了一次方向键[下]的按下最多移动一格,因为 @y 仅仅增加了 1),就不会出现移动结束时角色实际位置偏移了目的地图块的情况了~distance 反复被加到 @real_y,直到 @y * 128 <= @real_y,这时已经移动到目的地图块,所以 @real_y 不再改变

(RGSS 里面在算屏幕系统坐标的时候经常用图块的坐标 * 128(* 32 才是实际屏幕坐标),这应该是为了提高浮点数运算时的精度,因而在 screen_y、screen_x 获取真实屏幕坐标的时候就做了相应的换算)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-16 05:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表