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

Project1

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

[已经解决] 这个Bug是怎么回事……

[复制链接]

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
跳转到指定楼层
1
发表于 2010-12-4 22:45:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2008-3-25
帖子
138
2
发表于 2010-12-4 23:00:25 | 只看该作者
本帖最后由 一柳阴风 于 2010-12-4 23:46 编辑

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

SORRY...我搞不定

点评

啊对了,幻影脚本不是……  发表于 2010-12-4 23:29
是的...  发表于 2010-12-4 23:29
下面不是有个“电信1下载”么  发表于 2010-12-4 23:09
经测试可以下载...  发表于 2010-12-4 23:03

评分

参与人数 1星屑 -60 收起 理由
fux2 -60 水的好

查看全部评分

爱老虎油....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
3
 楼主| 发表于 2010-12-5 09:50:53 | 只看该作者
呃……没有人可以帮忙么0 0
没有人不是一个人!

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42399
在线时间
7602 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
发表于 2010-12-5 10:17:05 | 只看该作者
回复 Wind2010 的帖子

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

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

点评

T_T我只能做到如果开关关闭则立刻消失全部幻影  发表于 2010-12-5 11:21
是啊,刷新时判断开关。而幻影显示的过程建议增加一个变量控制,比如刷新的过程幻影参数-1,而按Z的时候+1,当松开z的时候自然就有慢慢消失的效果了。   发表于 2010-12-5 10:46
我现在想在隐身状态时才有幻影……  发表于 2010-12-5 10:44
囧啊个囧,我的意思是一直刷新也没啥啊。  发表于 2010-12-5 10:34
嗯,但是怎么用条件分歧判断幻影是否存在...  发表于 2010-12-5 10:29
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
951
在线时间
1685 小时
注册时间
2009-7-25
帖子
534

开拓者

5
发表于 2010-12-5 15:23:11 | 只看该作者
本帖最后由 烁灵 于 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)
复制代码

点评

按FUX前辈的建议写的喵~  发表于 2010-12-5 17:55

评分

参与人数 2星屑 +446 收起 理由
fux2 + 444 认可答案,脸熟,自写,提到了fux(雾。。).
Wind2010 + 2 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 00:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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