Project1

标题: 求助~伪3D与双远景同时存在,切换场景时会跳框,释放问题 [打印本页]

作者: 天使喝可乐    时间: 2012-5-25 13:19
标题: 求助~伪3D与双远景同时存在,切换场景时会跳框,释放问题
RT,伪3D加强版,和双远景图脚本同时存在,在使用3D效果的地图里,战斗、场所移动等切换场景的操作时会跳框

    # 释放远景平面
    @panorama.dispose
    @panorama2.dispose   ← 这行错误

这是范例:感谢!
Project2.rar (195.04 KB, 下载次数: 32266)

dsu_plus_rewardpost_czw
作者: lanyaolove    时间: 2012-5-25 13:40
把这行注释掉
作者: tommay    时间: 2012-5-25 13:47
好奇下,楼主用这种地图,还要双远景脚本干嘛?
作者: asperta    时间: 2012-5-25 17:28
不知道楼主想要什么效果
用这个替换掉伪3D后面的 class Spriteset_Map 试试
  1. class Spriteset_Map
  2.   alias asperta_initialize initialize
  3.   def initialize
  4.     asperta_initialize
  5.     @viewport1 = Viewport.new(0, 0, 640, 480)
  6.     @viewport2 = Viewport.new(0, 0, 640, 480)
  7.     @viewport3 = Viewport.new(0, 0, 640, 480)
  8.     @viewport2.z = 200
  9.     @viewport3.z = 5000
  10.     if $game_map.W3D
  11.       @tilemap = W3DTilemap.new(@viewport1)
  12.       @tilemap.terrain = $game_map.terrain_tags
  13.     else
  14.       @tilemap = Tilemap.new(@viewport1)
  15.     end
  16.     @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  17.     for i in 0..6
  18.       autotile_name = $game_map.autotile_names[i]
  19.       @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  20.     end
  21.     @tilemap.map_data = $game_map.data
  22.     @tilemap.priorities = $game_map.priorities
  23.     @panorama = Plane.new(@viewport1)
  24.     @panorama.z = -1000
  25.     @fog = Plane.new(@viewport1)
  26.     @fog.z = 3000
  27.     @character_sprites = []
  28.     for i in $game_map.events.keys.sort
  29.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  30.       @character_sprites.push(sprite)
  31.     end
  32.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  33.     @weather = RPG::Weather.new(@viewport1)
  34.     @picture_sprites = []
  35.     for i in 1..50
  36.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  37.         $game_screen.pictures[i]))
  38.     end
  39.     @timer_sprite = Sprite_Timer.new
  40.     update
  41.   end
  42. ###########重定义update       更改远景图更新速度 直接复制默认的  顺着箭头往下走
  43.   alias asperta_update update
  44.   def update
  45.     asperta_update
  46.     # 远景与现在的情况有差异发生的情况下                                     ↓
  47.     if @panorama_name != $game_map.panorama_name or#                         ↓
  48.        @panorama_hue != $game_map.panorama_hue#                              ↓
  49.       @panorama_name = $game_map.panorama_name#                              ↓
  50.       @panorama_hue = $game_map.panorama_hue#                                ↓
  51.       if @panorama.bitmap != nil#                                            ↓
  52.         @panorama.bitmap.dispose#                                            ↓
  53.         @panorama.bitmap = nil#                                              ↓
  54.       end
  55.       if @panorama_name != ""#                                               ↓
  56.         @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  57.       end
  58.       Graphics.frame_reset#                                                  ↓
  59.     end
  60.     # 雾与现在的情况有差异的情况下                                           ↓
  61.     if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue#     ↓
  62.       @fog_name = $game_map.fog_name#                                        ↓
  63.       @fog_hue = $game_map.fog_hue#                                          ↓
  64.       if @fog.bitmap != nil#                                                 ↓
  65.         @fog.bitmap.dispose#                                                 ↓
  66.         @fog.bitmap = nil#                                                   ↓
  67.       end
  68.       if @fog_name != ""
  69.         @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)#                   ↓
  70.       end
  71.       Graphics.frame_reset#                                                  ↓
  72.     end
  73.     # 刷新元件地图
  74.     @tilemap.ox = $game_map.display_x / 4#                                   ↓
  75.     @tilemap.oy = $game_map.display_y / 4#                                   ↓
  76.     @tilemap.update
  77.     # 刷新远景平面#                                                          ↓
  78.     @panorama.ox = $game_map.display_x / 8 #这里更改X速度                   ←
  79.     @panorama.oy = $game_map.display_y * 0 #这里更改Y速度                   ←
  80.     # 刷新雾平面
  81.     @fog.zoom_x = $game_map.fog_zoom / 100.0
  82.     @fog.zoom_y = $game_map.fog_zoom / 100.0
  83.     @fog.opacity = $game_map.fog_opacity
  84.     @fog.blend_type = $game_map.fog_blend_type
  85.     @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  86.     @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  87.     @fog.tone = $game_map.fog_tone
  88.     # 刷新角色活动块
  89.     for sprite in @character_sprites
  90.       sprite.update
  91.     end
  92.     # 刷新天候图形
  93.     @weather.type = $game_screen.weather_type
  94.     @weather.max = $game_screen.weather_max
  95.     @weather.ox = $game_map.display_x / 4
  96.     @weather.oy = $game_map.display_y / 4
  97.     @weather.update
  98.     # 刷新图片
  99.     for sprite in @picture_sprites
  100.       sprite.update
  101.     end
  102.     # 刷新计时器块
  103.     @timer_sprite.update
  104.     # 设置画面的色调与震动位置
  105.     @viewport1.tone = $game_screen.tone
  106.     @viewport1.ox = $game_screen.shake
  107.     # 设置画面的闪烁色
  108.     @viewport3.color = $game_screen.flash_color
  109.     # 刷新显示端口
  110.     @viewport1.update
  111.     @viewport3.update
  112.   end
  113. end
复制代码

作者: 天使喝可乐    时间: 2012-5-25 19:15
asperta 发表于 2012-5-25 17:28
不知道楼主想要什么效果
用这个替换掉伪3D后面的 class Spriteset_Map 试试

呃 还是出BUG了   替换以后 伪3D没事了 双远景 场所移动的瞬间没问题  然后立刻会变黑  貌似是因为刷新问题?

作者: asperta    时间: 2012-5-26 08:13
天使喝可乐 发表于 2012-5-25 19:15
呃 还是出BUG了   替换以后 伪3D没事了 双远景 场所移动的瞬间没问题  然后立刻会变黑  貌似是因为刷新问 ...

还是没发现问题,这个你试试
天使喝1.rar (232.04 KB, 下载次数: 138)
作者: 天使喝可乐    时间: 2012-5-26 09:37
asperta 发表于 2012-5-26 08:13
还是没发现问题,这个你试试

你误解了= = 双远景是  a为底图   a_2是遮挡层     现在改的   a_2成了底图了      

工程中 已经设置好一个双远景   不必场所移动   直接出生在双远景处  过一秒全黑 这样的
测试.rar (783.62 KB, 下载次数: 97)

作者: asperta    时间: 2012-5-26 10:08
天使喝可乐 发表于 2012-5-26 09:37
你误解了= = 双远景是  a为底图   a_2是遮挡层     现在改的   a_2成了底图了      

工程中 已经设置好 ...

测试2.rar (783.36 KB, 下载次数: 109)
作者: 天使喝可乐    时间: 2012-5-26 11:17
本帖最后由 天使喝可乐 于 2012-5-26 11:21 编辑
asperta 发表于 2012-5-26 10:08


呃  当地图扩大时 远景图不会跟随移动= =   
现在_2会移动 原图不动……
作者: asperta    时间: 2012-5-26 11:36
本帖最后由 asperta 于 2012-5-26 11:37 编辑
天使喝可乐 发表于 2012-5-26 11:17
呃  当地图扩大时 远景图不会跟随移动= =   
现在_2会移动 原图不动……


测试3.rar (783.49 KB, 下载次数: 417)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1