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

Project1

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

应求:废柴版行走惯性

 关闭 [复制链接]

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

跳转到指定楼层
1
发表于 2008-4-25 21:11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
范例工程没有。上传下载解压都太浪费时间
这个确实是没有什么技术含量的脚本.就这么凑合吧

  1. BEGIN_SPEED = 2 # 开始的速率
  2. $speed = 5 # 主角的移动速率,可以用事件脚本改.
  3. class Game_Player
  4.   def refresh
  5.     # 同伴人数为 0 的情况下
  6.     if $game_party.actors.size == 0
  7.       # 清除角色的文件名及对像
  8.       @character_name = ""
  9.       @character_hue = 0
  10.       # 分支结束
  11.       return
  12.     end
  13.     # 获取带头的角色
  14.     actor = $game_party.actors[0]
  15.     # 设置角色的文件名及对像
  16.     @character_name = actor.character_name
  17.     @need_move_speed = $speed
  18.     @character_hue = actor.character_hue
  19.     # 初始化不透明度和合成方式子
  20.     @opacity = 255
  21.     @blend_type = 0
  22.   end
  23. def update
  24.     # 本地变量记录移动信息
  25.     last_moving = moving?
  26.     # 移动中、事件执行中、强制移动路线中、
  27.     # 信息窗口一个也不显示的时候
  28.     unless moving? or $game_system.map_interpreter.running? or
  29.            @move_route_forcing or $game_temp.message_window_showing
  30.       # 如果方向键被按下、主角就朝那个方向移动
  31.       case Input.dir4
  32.       when 2
  33.         if @move_speed < @need_move_speed
  34.           @move_speed += 1
  35.         end
  36.         move_down
  37.       when 4
  38.         if @move_speed < @need_move_speed
  39.           @move_speed += 1
  40.         end
  41.         move_left
  42.       when 6
  43.         if @move_speed < @need_move_speed
  44.           @move_speed += 1
  45.         end
  46.         move_right
  47.       when 8
  48.         if @move_speed < @need_move_speed
  49.           @move_speed += 1
  50.         end
  51.         move_up
  52.       end
  53.     end
  54.     # 本地变量记忆坐标
  55.     last_real_x = @real_x
  56.     last_real_y = @real_y
  57.     super
  58.     if Input.dir4 == 0
  59.        @move_speed = BEGIN_SPEED
  60.     end
  61.     # 角色向下移动、画面上的位置在中央下方的情况下
  62.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  63.       # 画面向下卷动
  64.       $game_map.scroll_down(@real_y - last_real_y)
  65.     end
  66.     # 角色向左移动、画面上的位置在中央左方的情况下
  67.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  68.       # 画面向左卷动
  69.       $game_map.scroll_left(last_real_x - @real_x)
  70.     end
  71.     # 角色向右移动、画面上的位置在中央右方的情况下
  72.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  73.       # 画面向右卷动
  74.       $game_map.scroll_right(@real_x - last_real_x)
  75.     end
  76.     # 角色向上移动、画面上的位置在中央上方的情况下
  77.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  78.       # 画面向上卷动
  79.       $game_map.scroll_up(last_real_y - @real_y)
  80.     end
  81.     # 不在移动中的情况下
  82.     unless moving?
  83.       # 上次主角移动中的情况
  84.       if last_moving
  85.         # 与同位置的事件接触就判定为事件启动
  86.         result = check_event_trigger_here([1,2])
  87.         # 没有可以启动的事件的情况下
  88.         if result == false
  89.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  90.           unless $DEBUG and Input.press?(Input::CTRL)
  91.             # 遇敌计数下降
  92.             if @encounter_count > 0
  93.               @encounter_count -= 1
  94.             end
  95.           end
  96.         end
  97.       end
  98.       # 按下 C 键的情况下
  99.       if Input.trigger?(Input::C)
  100.         # 判定为同位置以及正面的事件启动
  101.         check_event_trigger_here([0])
  102.         check_event_trigger_there([0,1,2])
  103.       end
  104.     end
  105.   end
  106. end
复制代码
我的Lofter:http://nightoye.lofter.com/

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
2
发表于 2008-4-25 23:58:52 | 只看该作者
上来了{/se}
我先坐沙发了``老大
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
3
发表于 2008-4-26 00:02:27 | 只看该作者
但是这样的惯性 买司没有达到我想要的的效果啊!!!
我是需要,主角速度变的越大,那么挺下来后会滑动出多少步```
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

4
 楼主| 发表于 2008-4-26 01:21:40 | 只看该作者
哦,那你自己改吧,其实很简单的,在UPDATE里
最近脑残,不想写脚本
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-6
帖子
1139
5
发表于 2008-4-26 01:40:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-4-26 01:42:06 | 只看该作者
惯性不会因为速度的大小而改变,
而是依据物体的质量来改变的……{/hx}

至于速度大停下来时会走的远些,
则是因为以同时间停下速度大就会走的远些了……

回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

7
 楼主| 发表于 2008-4-26 02:05:05 | 只看该作者
LS难道在给我科普……
好吧,这个脚本是我为了控制手感而写的,所以没有写停下来的惯性。如果写了的话,则玩家想对准一个NPC说话的时候,恐怕需要很长时间才能适应这种控制方式,这是我不想看到的。写脚本的时候除了考虑物理原则,还要考虑一下操作上的问题。
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2005-11-4
帖子
210
8
发表于 2008-4-26 12:47:17 | 只看该作者
惯性.感觉用在战斗时还好.如是普通场合实在让人手不了.
看到这个想起以前日本做的不少SRPG
居然在普通场合都用了惯性.真不知道搞虾米.对个话都要半天.
惯性.个日感觉是用在ACT类上才是正途.
仓库:http://yubinhuei.ys168.com/
站点:http://yubinhuei.223355.info/
         http://yubinhuei.web.fc2.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 15:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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