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

Project1

 找回密码
 注册会员
搜索
查看: 1437|回复: 3

[已经过期] 跑步功能鎖定了行走圖

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
158 小时
注册时间
2016-1-7
帖子
129
发表于 2016-6-27 18:03:54 | 显示全部楼层 |阅读模式

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

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

x
我用了按住某鍵可以跑步的腳本,然後衝到某個地方(觸發方式: 與玩家接觸)會使用事件指令變更主角圖形
如果不跑步過去可以正常變換,但跑過去似乎就會忽略事件指令的東西

觀察過使用的腳本後,我感覺是跑步的錯
RUBY 代码复制
  1. @character_name_run = @character_name

我想著既然@character_name是"The actor's character graphic file name."
那我用事件指令塞腳本進去
RUBY 代码复制
  1. @character_name = "行走圖名稱"
試了試,毫無幫助
這邊我該怎麼做才能讓人按著跑步也可以好好的變更主角圖形?

附上我抽調出來測試用的工程

跑步腳本


run test.rar

176.85 KB, 下载次数: 55

跑步問題

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
发表于 2016-6-27 18:19:27 | 显示全部楼层
如果只是想要加速行动的话,直接使用有戏加速怎么样?这样就可以避免脚本出错了。
设置一个公共事件,目标为并行处理,然后设置一个一直打开的开关。
之后事件这么写:
条件分歧:脚本Input.press?(Input::CTRL)
  Graphics.frame_rate = 80
除此以外的情况
  Graphics.frame_rate = 40
分歧结束。
40就是游戏的正常速度,按下CTRL后有戏速度变为80。你也可以自己改成60、100,不过大了容易卡死。
如果你只是想弄一个跑步的脚本的话我无能为力QWQ
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
158 小时
注册时间
2016-1-7
帖子
129
 楼主| 发表于 2016-6-27 18:53:06 | 显示全部楼层
望月神绮 发表于 2016-6-27 18:19
如果只是想要加速行动的话,直接使用有戏加速怎么样?这样就可以避免脚本出错了。
设置一个公共事件,目标 ...

速度以前有(在不知情的情況下)調成160過,但(不知道是不是因為)當時場景的事件太多所以速度跟60差不多
。但還是謝謝你給的思路QwQ
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
发表于 2016-6-27 20:30:46 | 显示全部楼层
燕征 发表于 2016-6-27 18:53
速度以前有(在不知情的情況下)調成160過,但(不知道是不是因為)當時場景的事件太多所以速度跟60差不多
。 ...

并行事件太多的话可以用图书馆里的事件优化脚本……
我帮你贴过来了。
  1. #———————————————————————————————————————
  2. # ●ACC_EVENT(XP) By.Lyaci
  3. #  *事件效率优化
  4. #  -使用:插入Main前即可
  5. #    -强制更新的事件只要在事件名称里加入<UP>即可
  6. #    -为了方便设置,效果开关是以false为开启效果的
  7. #  -Ver:1.0.0 Date:2014.7.15
  8. #  *载入优化
  9. #  -Ver:1.0.5 Date:2014.7.16
  10. #   -开启效果:$game_map.acc_event_close = nil
  11. #   -关闭效果:$game_map.acc_event_close = true
  12. #  *增加快速模式
  13. #  -Ver:1.0.6 & Ver:1.0.7 Date:2014.7.17
  14. #  *分歧优化
  15. #  -Ver:1.0.8 Date:2014.8.4
  16. #  *并行处理强制刷新
  17. #  -Ver:1.0.9 Date:2014.8.5
  18. #———————————————————————————————————————
  19. module ACC_EVENT
  20.   RANGEW = 14                  #刷新宽*32
  21.   RANGEH = 12                  #刷新高*32
  22.   RANGEX = 10                  #界面X中心*32
  23.   RANGEY = 7                   #界面Y中心*32
  24.   UPDATE_IDE = "<UP>"          #强制刷新符号
  25.   #———————————————————————————————————————
  26.   #●快速模式
  27.   #  *实时遍历事件
  28.   #  -【RPG】建议开启。如果出现任何问题,可以尝试关闭
  29.   #  -【ARPG】建议关闭。否则可能无法实时遍历“新事件”
  30.   #———————————————————————————————————————
  31.   ACC_SUPER = true
  32.   #———————————————————————————————————————
  33. end
  34. #●———————————————————————————————————————
  35. class Game_Map
  36.   #———————————————————————————————————————
  37.   alias :acc_initialize :initialize
  38.   alias :acc_update :update
  39.   alias :acc_setup :setup
  40.   #———————————————————————————————————————
  41.   def initialize
  42.     acc_initialize
  43.     @acc_event_map_mov = false
  44.     @acc_event_close = false
  45.     @now_display_x = @display_x
  46.     @now_display_y = @display_y
  47.   end
  48.   #———————————————————————————————————————
  49.   def setup(map_id)
  50.     acc_event_comp_update
  51.     acc_setup(map_id)
  52.   end
  53.   #———————————————————————————————————————
  54.   def acc_event_close=(acc_event_state)
  55.     @acc_event_close = acc_event_state
  56.     @acc_event_map_mov = !acc_event_state
  57.   end
  58.   def acc_event_close?
  59.     @acc_event_close
  60.   end
  61.   #———————————————————————————————————————
  62.   def acc_event_comp_update
  63.     @acc_event_map_mov = true
  64.   end
  65.   #———————————————————————————————————————
  66.   def acc_event_map_mov?
  67.     @acc_event_map_mov
  68.   end
  69.   #———————————————————————————————————————
  70.   def update
  71.     acc_update
  72.     if @display_x != @now_display_x or @display_y != @now_display_y
  73.       @acc_event_map_mov = false
  74.       if @display_x <= @now_display_x-128 || @display_x >= @now_display_x+128 ||
  75.          @display_y <= @now_display_y-128 || @display_y >= @now_display_y+128
  76.         @acc_event_map_mov  = true
  77.         @now_display_x = @display_x
  78.         @now_display_y = @display_y
  79.       end
  80.     else
  81.       @acc_event_map_mov = false
  82.     end
  83.   end
  84. end
  85. #●———————————————————————————————————————
  86. class Game_Character
  87.   def acc_event_update ; false ; end
  88. end
  89. #●———————————————————————————————————————
  90. class Game_Event
  91.   #———————————————————————————————————————
  92.   include(ACC_EVENT)
  93.   alias :acc_initialize :initialize
  94.   alias :acc_update :update
  95.   #———————————————————————————————————————
  96.   def initialize(map_id, event)
  97.     acc_initialize(map_id, event)
  98.     acc_event_effe
  99.   end
  100.   #———————————————————————————————————————
  101.   def acc_event_update
  102.     @acc_event_update
  103.   end
  104.   #———————————————————————————————————————
  105.   def acc_event_effe
  106.     acc_event_effe = @event.name[UPDATE_IDE]
  107.     acc_event_effe = acc_event_effe || @trigger == 0b100
  108.     @acc_event_effe = acc_event_effe ? false : true
  109.     @acc_event_update = ACC_SUPER ? @acc_event_effe : false
  110.   end
  111.   #———————————————————————————————————————
  112.   def acc_event_range
  113.     (RANGEX-(@real_x/128-$game_map.display_x/128)).abs > RANGEW ||
  114.     (RANGEY-(@real_y/128-$game_map.display_y/128)).abs > RANGEH
  115.   end
  116.   #———————————————————————————————————————
  117.   def update
  118.     unless $game_map.acc_event_close?
  119.       if @acc_event_effe && $game_map.acc_event_map_mov?
  120.         @acc_event_update = acc_event_range
  121.       end
  122.       return if @acc_event_update
  123.     end
  124.     acc_update
  125.   end
  126. end
  127. #●———————————————————————————————————————
  128. class Sprite_Character
  129.   #———————————————————————————————————————
  130.   alias :acc_update :update
  131.   #———————————————————————————————————————
  132.   def update
  133.     unless $game_map.acc_event_close?
  134.       return if @character.acc_event_update
  135.     end
  136.     acc_update
  137.   end
  138. end
  139. #●———————————————————————————————————————
  140. class Spriteset_Map
  141.   #———————————————————————————————————————
  142.   alias :acc_initialize :initialize
  143.   #———————————————————————————————————————
  144.   def initialize
  145.     $game_map.acc_event_comp_update
  146.     acc_initialize
  147.   end
  148. end
复制代码

点评

这个脚本是优化事件处理的。改变事件运行模式来做到防止过多事件同时运行造成卡顿。所以没问题。  发表于 2016-6-27 22:30
是很多的"與玩家接觸"事件,和"並行處理"相同嗎@@?  发表于 2016-6-27 22:18
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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