Project1

标题: 这个Bug是怎么回事…… [打印本页]

作者: Wind2010    时间: 2010-12-4 22:45
标题: 这个Bug是怎么回事……
http://u.115.com/file/f03d3f1c9d
论坛貌似不能上传附件……
打开1号开关后按Z键可以进入隐身模式,移动时有幻影特效。当MP(屏幕最下方的一小条)为0时,恢复为正常模式。
在行走时由隐身模式恢复为正常模式,幻影会出现一个奇怪的现象——16个行走图全部显示
这是怎么回事?有人可以帮忙修复这个Bug么?0 0
作者: 一柳阴风    时间: 2010-12-4 23:00
本帖最后由 一柳阴风 于 2010-12-4 23:46 编辑

现在可以下了,貌似家里网络问题...
顺便问一下,这个脚本貌似是楼主自己写的吧

SORRY...我搞不定
作者: Wind2010    时间: 2010-12-5 09:50
呃……没有人可以帮忙么0 0
没有人不是一个人!
作者: fux2    时间: 2010-12-5 10:17
回复 Wind2010 的帖子

首先……你的代码写的好乱。

问题在if Input.press?(Input::A)的else里,立马关闭刷新会导致切割图片效果消失

作者: 烁灵    时间: 2010-12-5 15:23
本帖最后由 烁灵 于 2010-12-5 15:23 编辑

前辈试试这个能用不,替换你的幻影脚本
  1. class Game_Player < Game_Character
  2.   def mirage(opacity)
  3.     if $game_switches[2] == true
  4.       $scene.spriteset.mirage(self, opacity)
  5.     end
  6.   end
  7.   alias update_naiyoudadangao update
  8.     def update
  9.       update_naiyoudadangao
  10.       if moving?#Input.dir8 != 0
  11.         mirage(120)
  12.       end
  13.     end
  14. end
  15. class Sprite_MirageCharacter < RPG::Sprite
  16.   attr_accessor :character  
  17.   attr_reader   :character_direction
  18.   def initialize(viewport, opacity, character = nil)
  19.     super(viewport)
  20.     @character = character
  21.     self.opacity = opacity
  22.     update
  23.   end
  24.   def update
  25.     super
  26.     if @tile_id != @character.tile_id or
  27.          @character_name != @character.character_name or
  28.          @character_hue != @character.character_hue
  29.       @tile_id = @character.tile_id
  30.       @character_name = @character.character_name
  31.       @character_hue = @character.character_hue
  32.       if @tile_id >= 384
  33.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  34.                                       @tile_id, @character.character_hue)
  35.         self.src_rect.set(0, 0, 32, 32)
  36.         self.ox = 16
  37.         self.oy = 32
  38.       else
  39.         self.bitmap = RPG::Cache.character(@character.character_name,
  40.                                             @character.character_hue)
  41.         @cw = bitmap.width / 4
  42.         @ch = bitmap.height / 4
  43.         self.ox = @cw / 2
  44.         self.oy = @ch      
  45.         self.x = @character.screen_x
  46.         self.y = @character.screen_y
  47.       end
  48.     end
  49.     self.visible = (not @character.transparent)
  50.     if @tile_id == 0 and !@t
  51.       sx = @character.pattern * @cw
  52.       sy = (@character.direction - 2) / 2 * @ch
  53.       self.src_rect.set(sx, sy, @cw, @ch)
  54.       @t = true
  55.     end
  56.     character_direction = @character.direction
  57.     if @character.direction == 8
  58.       self.z = @character.screen_z(@ch)
  59.     else
  60.       self.z = @character.screen_z(@ch) - 2
  61.     end
  62.     if $game_variables[1] == 0
  63.       self.color.set(50,50,255)
  64.       self.blend_type = 1
  65.     elsif $game_variables[1] == 1
  66.       self.color.set(255,50,50)
  67.       self.blend_type = 1
  68.     elsif $game_variables[1] == 2
  69.       self.color.set(50,255,50)
  70.       self.blend_type = 1
  71.     elsif $game_variables[1] == 3
  72.       self.color.set(50,255,255)
  73.       self.blend_type = 1
  74.     elsif $game_variables[1] == 4
  75.       self.color.set(255,255,255)
  76.       self.blend_type = 1
  77.     elsif $game_variables[1] == 5
  78.       self.color.set(0,0,170,120)
  79.       self.blend_type = 1
  80.     elsif $game_variables[1] == 6
  81.       self.blend_type = 0
  82.     elsif $game_variables[1] == 7
  83.       self.blend_type = 2
  84.     elsif $game_variables[1] == 8
  85.       self.blend_type = 1
  86.     elsif $game_variables[1] == 9
  87.       self.tone.set(-255,-255,-255,166)
  88.       self.blend_type = 0
  89.     else
  90.       self.color.set(255,255,50)
  91.       self.blend_type = 1
  92.     end
  93.     self.opacity -= 8
  94.     self.bush_depth = @character.bush_depth
  95.     if @character.animation_id != 0
  96.       animation = $data_animations[@character.animation_id]
  97.       animation(animation, true)
  98.       @character.animation_id = 0
  99.     end
  100.   end
  101. end
  102. class Spriteset_Map
  103.   alias initialize_naiyoudadangao  initialize
  104.   def initialize
  105.     @mirage = {}
  106.     initialize_naiyoudadangao   
  107.   end
  108.   def mirage(obj, opacity)
  109.     @mirage[obj] ||= []
  110.     smc = Sprite_MirageCharacter.new(@viewport1, opacity, obj)
  111.     @mirage[obj] << Mirage.new(obj.real_x, obj.real_y, smc)#(Sprite_MirageCharacter.new(@viewport1, opacity, obj))
  112.   end
  113.   alias update_naiyoudadangao update
  114.   def update
  115.     update_naiyoudadangao
  116.     ###########################################################
  117.     if $game_switches[2]
  118.       for value in @mirage.values
  119.         for v in value
  120.           v.smc.x = (v.x - $game_map.display_x + 3) / 4 + 16
  121.           v.smc.y = (v.y - $game_map.display_y + 3) / 4 + 32
  122.           v.smc.update
  123.           if v.smc.opacity <= 0
  124.             v.smc.dispose
  125.             value.delete(v)
  126.           end
  127.         end
  128.       end
  129.     else
  130.       for value in @mirage.values
  131.         for v in value
  132.           v.smc.x = (v.x - $game_map.display_x + 3) / 4 + 16
  133.           v.smc.y = (v.y - $game_map.display_y + 3) / 4 + 32      
  134.           v.smc.update
  135.           v.smc.dispose
  136.           value.delete(v)
  137.         end
  138.       end  
  139.     end
  140.     ###########################################################
  141.   end
  142. end
  143. class Scene_Map
  144.   attr_reader   :spriteset
  145. end
  146. Mirage = Struct.new(:x, :y, :smc)
复制代码





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