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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: jinae
打印 上一主题 下一主题

[已经解决] 感觉真伤心,选了XP,却发现很多好的功能全出在VX

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4864
在线时间
1023 小时
注册时间
2011-1-23
帖子
267
11
发表于 2013-6-7 00:13:09 | 只看该作者
VX如果执行XP这么多东西的话早就卡的一笔了
按流畅度来说还是XP的游戏比较流畅

点评

下载了VA,结果还是回来用XP了。VA确实是很方便,但对我来说面画是硬伤。  发表于 2013-6-7 17:39
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

12
发表于 2013-6-7 18:32:41 | 只看该作者
  1. #==============================================================================
  2. # ■ 提高游戏速度(v1.0.1)    by 一箭烂
  3. #------------------------------------------------------------------------------
  4. #  设置Graphics的@speed_lv以提高游戏速度,
  5. #    请插在main以上的位置
  6. #
  7. #  属性:
  8. #
  9. #    Graphics.speed_lv
  10. #      加快速度(倍数), 可修改
  11. #
  12. #  更新:
  13. #
  14. #    - *1.0.1* (2011-04-21) By 一箭烂(YiJL)
  15. #      *改了alias的办法, 解决F12问题
  16. #      *换了速度变量的方式
  17. #
  18. #    - *1.0.0* (2011-04-21) By 一箭烂(YiJL)
  19. #      *初版
  20. #      *对Graphics.frame_count的修正
  21. #
  22. #==============================================================================
  23. module Graphics
  24.   @speed_lv     = 2            # 加快速度(倍数)
  25.   @timer        = 0
  26.   @speed_update = method("update") unless @speed_update
  27.   #--------------------------------------------------------------------------
  28.   # ● Graphics.update
  29.   #--------------------------------------------------------------------------
  30.   def self.update
  31.     @timer += 1
  32.     @timer %= @speed_lv
  33.     if @timer >= (@speed_lv - 1)
  34.       @speed_update.call             # 更新游戏画面
  35.       Graphics.frame_count -= 1
  36.     end
  37.     Graphics.frame_count += 1
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● Graphics.speed_lv
  41.   #--------------------------------------------------------------------------
  42.   def self.speed_lv
  43.     @speed_lv
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● Graphics.speed_lv=
  47.   #--------------------------------------------------------------------------
  48.   def self.speed_lv=(value)
  49.     @speed_lv = value
  50.   end
  51. end
复制代码
这个脚本插到脚本编辑器最上面
  1. #======================================
  2. # ■ Anti Event Lag Script
  3. #======================================
  4. #  By: Near Fantastica
  5. #   Date: 12.06.05
  6. #   Version: 3
  7. #======================================

  8. #======================================
  9. # ■ Game_Map
  10. #======================================

  11. class Game_Map
  12. #--------------------------------------------------------------------------
  13. def in_range?(object)
  14. screne_x = $game_map.display_x
  15. screne_x -= 256
  16. screne_y = $game_map.display_y
  17. screne_y -= 256
  18. screne_width = $game_map.display_x
  19. screne_width += 2816
  20. screne_height = $game_map.display_y
  21. screne_height += 2176
  22. return false if object.real_x <= screne_x
  23. return false if object.real_x >= screne_width
  24. return false if object.real_y <= screne_y
  25. return false if object.real_y >= screne_height
  26. return true
  27. end
  28. #--------------------------------------------------------------------------
  29. def update
  30. if $game_map.need_refresh
  31.    refresh
  32. end
  33. if @scroll_rest > 0
  34.    distance = 2 ** @scroll_speed
  35.    case @scroll_direction
  36.    when 2
  37.      scroll_down(distance)
  38.    when 4
  39.      scroll_left(distance)
  40.    when 6  
  41.      scroll_right(distance)
  42.    when 8  
  43.      scroll_up(distance)
  44.    end
  45.    @scroll_rest -= distance
  46. end
  47. for event in @events.values
  48.    if in_range?(event) or event.trigger == 3 or event.trigger == 4
  49.      event.update
  50.    end
  51. end
  52. for common_event in @common_events.values
  53.    common_event.update
  54. end
  55. @fog_ox -= @fog_sx / 8.0
  56. @fog_oy -= @fog_sy / 8.0
  57. if @fog_tone_duration >= 1
  58.    d = @fog_tone_duration
  59.    target = @fog_tone_target
  60.    @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
  61.    @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
  62.    @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
  63.    @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
  64.    @fog_tone_duration -= 1
  65. end
  66. if @fog_opacity_duration >= 1
  67.    d = @fog_opacity_duration
  68.    @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
  69.    @fog_opacity_duration -= 1
  70. end
  71. end
  72. end

  73. #======================================
  74. # ■ Spriteset_Map
  75. #======================================

  76. class Spriteset_Map
  77. #--------------------------------------------------------------------------
  78. def in_range?(object)
  79. screne_x = $game_map.display_x
  80. screne_x -= 256
  81. screne_y = $game_map.display_y
  82. screne_y -= 256
  83. screne_width = $game_map.display_x
  84. screne_width += 2816
  85. screne_height = $game_map.display_y
  86. screne_height += 2176
  87. return false if object.real_x <= screne_x
  88. return false if object.real_x >= screne_width
  89. return false if object.real_y <= screne_y
  90. return false if object.real_y >= screne_height
  91. return true
  92. end
  93. #--------------------------------------------------------------------------
  94. def update
  95. if @panorama_name != $game_map.panorama_name or
  96.     @panorama_hue != $game_map.panorama_hue
  97.    @panorama_name = $game_map.panorama_name
  98.    @panorama_hue = $game_map.panorama_hue
  99.    if @panorama.bitmap != nil
  100.      @panorama.bitmap.dispose
  101.      @panorama.bitmap = nil
  102.    end
  103.    if @panorama_name != ""
  104.      @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  105.    end
  106.    Graphics.frame_reset
  107. end
  108. if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  109.    @fog_name = $game_map.fog_name
  110.    @fog_hue = $game_map.fog_hue
  111.    if @fog.bitmap != nil
  112.      @fog.bitmap.dispose
  113.      @fog.bitmap = nil
  114.    end
  115.    if @fog_name != ""
  116.      @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  117.    end
  118.    Graphics.frame_reset
  119. end
  120. @tilemap.ox = $game_map.display_x / 4
  121. @tilemap.oy = $game_map.display_y / 4
  122. @tilemap.update
  123. @panorama.ox = $game_map.display_x / 8
  124. @panorama.oy = $game_map.display_y / 8
  125. @fog.zoom_x = $game_map.fog_zoom / 100.0
  126. @fog.zoom_y = $game_map.fog_zoom / 100.0
  127. @fog.opacity = $game_map.fog_opacity
  128. @fog.blend_type = $game_map.fog_blend_type
  129. @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  130. @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  131. @fog.tone = $game_map.fog_tone
  132. i=0
  133. for sprite in @character_sprites
  134.    if sprite.character.is_a?(Game_Event)
  135.      if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4
  136.        sprite.update
  137.        i+=1
  138.      end
  139.    else
  140.      sprite.update
  141.      i+=1
  142.    end
  143. end
  144. @weather.type = $game_screen.weather_type
  145. @weather.max = $game_screen.weather_max
  146. @weather.ox = $game_map.display_x / 4
  147. @weather.oy = $game_map.display_y / 4
  148. @weather.update
  149. for sprite in @picture_sprites
  150.    sprite.update
  151. end
  152. @timer_sprite.update
  153. @viewport1.tone = $game_screen.tone
  154. @viewport1.ox = $game_screen.shake
  155. @viewport3.color = $game_screen.flash_color
  156. @viewport1.update
  157. @viewport3.update
  158. end
  159. end
复制代码
这个插到脚本编辑器的Main上面,其他脚本下面


顺便给容错脚本省的你问了
  1. #==============================================================================
  2. # ■ 凌的容错脚本 v3 [120929]
  3. #------------------------------------------------------------------------------
  4. #  解决游戏因发布时缺少文件等错误而使游戏无法正常进行的问题。
  5. #   附赠功能:创建多层文件夹
  6. #   By 凌童鞋(66RPG)
  7. #==============================================================================
  8. #  [120927]:基础版,支持Bitmap及Audio容错
  9. #  [120928]:修正IOError问题,感谢orzFly和雷达喵
  10. #  [120928]:支持Graphics.transition容错及save_data自动创建目录
  11. #             修正部分BUG,感谢霜月冬音
  12. #==============================================================================
  13. File.open("errors.txt","w+"){|io|}
  14. class Dir
  15.    class << self
  16.      alias :lynn_mkdir :mkdir unless $@
  17.    end
  18.    def self.mkdir(path, mode = 0777)
  19.      last_dir = ""
  20.      path.gsub(/\w*\//) {|m|
  21.        m.gsub(/\/|\\/){}
  22.        if last_dir != ""
  23.          last_dir = "#{last_dir}/#{m}"
  24.        else
  25.          last_dir = "#{m}"
  26.        end
  27.        if !FileTest.exist?(m) && !FileTest.directory?(m)
  28.          self.lynn_mkdir(last_dir)
  29.        end
  30.      }
  31.    end
  32. end
  33. module Kernel
  34.    def write_errors(argu)
  35.      open("errors.txt","a+"){|io| io.write(argu+"\n")if !io.read.to_s.include?(argu)}
  36.    end
  37.    def save_data(obj, filename)
  38.      Dir.mkdir(filename) unless FileTest.exist?(filename)
  39.      File.open(filename, "wb") { |io|
  40.        Marshal.dump(obj, io)
  41.      }
  42.    end
  43. end
  44. class Bitmap
  45.    alias :lynn_initialize :initialize unless $@
  46.    def initialize(* argu)
  47.      begin
  48.        lynn_initialize(* argu)
  49.      rescue Errno::ENOENT
  50.        lynn_initialize(1,1)
  51.        write_errors "Error:File not found on Bitmap.new\n#{argu[0]}"
  52.      end
  53.    end
  54. end
  55. module Audio
  56.    class << self
  57.      alias_method :lynn_bgm_play, :bgm_play unless $@
  58.      alias_method :lynn_bgs_play, :bgs_play unless $@
  59.      alias_method :lynn_me_play, :me_play unless $@
  60.      alias_method :lynn_se_play, :se_play unless $@
  61.    end
  62.    def self.bgm_play(* argu)
  63.      begin
  64.        self.lynn_bgm_play(* argu)
  65.      rescue Errno::ENOENT
  66.        write_errors "Error:File not found on Audio.bgm_play\n#{argu[0]}"
  67.      end
  68.    end
  69.    def self.bgs_play(* argu)
  70.      begin
  71.        self.lynn_bgs_play(* argu)
  72.      rescue Errno::ENOENT
  73.        write_errors "Error:File not found on Audio.bgs_play\n#{argu[0]}"
  74.      end
  75.    end
  76.    def self.me_play(* argu)
  77.      begin
  78.        self.lynn_me_play(* argu)
  79.      rescue Errno::ENOENT
  80.        write_errors "Error:File not found on Audio.me_play\n#{argu[0]}"
  81.      end
  82.    end
  83.    def self.se_play(* argu)
  84.      begin
  85.        self.lynn_se_play(* argu)
  86.      rescue Errno::ENOENT
  87.        write_errors "Error:File not found on Audio.se_play\n#{argu[0]}"
  88.      end
  89.    end
  90. end
  91. module Graphics
  92.    class << self
  93.      alias_method :lynn_transition, :transition unless $@
  94.    end
  95.    def self.transition(duration = 8, filename = "", vague = 40)
  96.      if filename != ""
  97.        if !FileTest.exist?(filename)
  98.          write_errors "Error:File not found on Graphics.transition\n#{filename}"
  99.          filename = ""
  100.        end
  101.      end
  102.      self.lynn_transition(duration,filename,vague)
  103.    end
  104. end
复制代码
  1. #==============================================================================
  2. # ■ 凌的容错脚本 v3 附加包 [120929] [RMXP版本]
  3. #------------------------------------------------------------------------------
  4. #  解决游戏因发布时缺少文件等错误而使游戏无法正常进行的问题。
  5. #==============================================================================
  6. #  [120929]:支援在事件中执行脚本的容错功能,同时输出所在地图与事件ID
  7. #==============================================================================
  8. #  * 注意本脚本只能用于标准事件解释器结构的工程
  9. #==============================================================================
  10. class Interpreter
  11.    #--------------------------------------------------------------------------
  12.    # ● 脚本
  13.    #--------------------------------------------------------------------------
  14.    def command_355
  15.      # script 设置第一行
  16.      script = @list[@index].parameters[0] + "\n"
  17.      # 循环
  18.      loop do
  19.        # 下一个事件指令在脚本 2 行以上的情况下
  20.        if @list[@index+1].code == 655
  21.          # 添加到 script 2 行以后
  22.          script += @list[@index+1].parameters[0] + "\n"
  23.        # 事件指令不在脚本 2 行以上的情况下
  24.        else
  25.          # 中断循环
  26.          break
  27.        end
  28.        # 推进索引
  29.        @index += 1
  30.      end
  31.      # 评价
  32.      result = eval(script)
  33.      # 返回值为 false 的情况下
  34.      if result == false
  35.        # 结束
  36.        return false
  37.      end
  38.      # 继续
  39.      return true
  40.    end
  41. end
复制代码
容错脚本(2个要按顺序)放在Main上面,第二个脚本下面
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
13
发表于 2013-6-7 22:24:53 | 只看该作者
本帖最后由 stella 于 2013-6-7 22:31 编辑

6楼那个并行的公共事件可以在Scene_Map 的刷新部分调用吧
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
836
在线时间
584 小时
注册时间
2012-6-3
帖子
366
14
发表于 2013-6-9 01:32:58 | 只看该作者
那个其实xp范例很多的,不要用太多的xp的事件,基本在写的时候尽量避免事件我用事件最多没超过10个,xp的功能很强大的,只要你会写脚本,我用xp也没做成太卡的情况,实在不行加个后台运行的脚本,让他在后台读取数据,避免游戏中直接读取,造成游戏的掉帧,xp就这缺点,什么时候要读取时候在读取,或者有的读取慢点。最好让他在游戏刚打开的时候读取数据和事件等等。
小白狐一只~
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
635
在线时间
2168 小时
注册时间
2012-12-5
帖子
4464
15
发表于 2013-6-11 18:30:25 | 只看该作者
XP也有防卡脚本……更想说的是VA比VX更好……

点评

现在已经解决卡的问题了。感谢大家的帮助。  发表于 2013-6-11 23:05
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
84 小时
注册时间
2013-4-19
帖子
35
16
 楼主| 发表于 2013-6-11 23:04:03 | 只看该作者
chd114 发表于 2013-6-7 18:32
这个脚本插到脚本编辑器最上面这个插到脚本编辑器的Main上面,其他脚本下面

谢谢你帮忙找这个。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 15:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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