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

Project1

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

[已经解决] 这是咋回事呀?Sprite_Battler错误

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2010-10-3
帖子
58
跳转到指定楼层
1
发表于 2010-10-21 19:36:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 fux2 于 2010-10-21 19:43 编辑

这是咋了,一用法就错误
我用的脚本
  1. #==============================================================================
  2. # ■ Sprite_Battler
  3. #------------------------------------------------------------------------------
  4. #  战斗显示用活动块。Game_Battler 类的实例监视、
  5. # 活动块的状态的监视。
  6. #
  7. # 处理战斗图片动画
  8. #==============================================================================



  9. class Sprite_Battler < RPG::Sprite
  10.   #--------------------------------------------------------------------------
  11.   # ● 定义实例变量
  12.   #--------------------------------------------------------------------------
  13.   attr_accessor :battler                  # 战斗者
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化对像
  16.   #     viewport : 显示端口
  17.   #     battler  : 战斗者 (Game_Battler)
  18.   #--------------------------------------------------------------------------
  19.   def initialize(viewport, battler = nil)
  20.     super(viewport)
  21.     @battler = battler
  22.     @battler_visible = false
  23.    
  24.    
  25. #===========================================================================
  26. # 超级战斗修改,@nx表示当前的帧数,@xbit表示当前的图像。刚开始的时候都是0值。

  27.     @nx = 0
  28.     @xbit = 0
  29. #===========================================================================   


  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 释放
  33.   #--------------------------------------------------------------------------
  34.   def dispose
  35.     if self.bitmap != nil
  36.       self.bitmap.dispose
  37.     end
  38.     super
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 刷新画面
  42.   #--------------------------------------------------------------------------
  43.   def update
  44.     super
  45.     # 战斗者为 nil 的情况下
  46.     if @battler == nil
  47.       self.bitmap = nil
  48.       loop_animation(nil)
  49.       return
  50.     end
  51.     # 文件名和色相与当前情况有差异的情况下
  52.     if @battler.battler_name != @battler_name or
  53.        @battler.battler_hue != @battler_hue
  54.       # 获取、设置位图
  55.       @battler_name = @battler.battler_name
  56.       @battler_hue = @battler.battler_hue
  57.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  58.       @width = bitmap.width
  59.       @height = bitmap.height
  60.       self.ox = @width / 12
  61.       self.oy = @height
  62.     end
  63.    
  64. #===超级战斗修改===========================================================      
  65.       @nx += 1
  66.       @nx %= 40
  67.       @xbit = @nx / 10 * self.bitmap.width/4
  68.       self.src_rect.set(@xbit, 0, self.bitmap.width/4, self.bitmap.height)
  69. #==========================================================================

  70.     # 动画 ID 与当前的情况有差异的情况下
  71.     if @battler.damage == nil and
  72.        @battler.state_animation_id != @state_animation_id
  73.       @state_animation_id = @battler.state_animation_id
  74.       loop_animation($data_animations[@state_animation_id])
  75.     end
  76.   
  77.     # 明灭
  78.     if @battler.blink
  79.       blink_on
  80.     else
  81.       blink_off
  82.     end
  83.     # 不可见的情况下
  84.     unless @battler_visible
  85.     #进入战斗角色出现
  86.       if not @battler.hidden and not @battler.dead? and
  87.          (@battler.damage == nil or @battler.damage_pop)
  88.         if @battler.is_a?(Game_Enemy)
  89.           appear
  90.         else
  91.           @battler.battler_name = @battler.battler_name.split(/-/)[0]
  92.         end
  93.         @battler_visible = true
  94.       end
  95.     end
  96.     # 可见的情况下
  97.     if @battler_visible
  98.       # 逃跑
  99.       if @battler.hidden
  100.         $game_system.se_play($data_system.escape_se)
  101.         escape
  102.         @battler_visible = false
  103.       end
  104.       # 白色闪烁
  105.       if @battler.white_flash
  106.         whiten
  107.         @battler.white_flash = false
  108.       end
  109.       # 动画
  110.       if @battler.animation_id != 0
  111.         animation = $data_animations[@battler.animation_id]
  112.         animation(animation, @battler.animation_hit)
  113.         @battler.animation_id = 0
  114.       end
  115.       # 伤害
  116.       if @battler.damage_pop
  117.         damage(@battler.damage, @battler.critical)
  118.         @battler.damage = nil
  119.         @battler.critical = false
  120.         @battler.damage_pop = false
  121.       end

  122.       # korapusu
  123.       if @battler.damage == nil and @battler.dead?
  124.         
  125.         if @battler.is_a?(Game_Enemy)
  126.           $game_system.se_play($data_system.enemy_collapse_se)   
  127.           collapse
  128.         else
  129.           $game_system.se_play($data_system.actor_collapse_se)
  130.           @battler.battler_name = @battler.battler_name.split(/-/)[0]
  131.           @battler.battler_name = "dead"
  132.         end
  133.         @battler_visible = false
  134.       end
  135.     end
  136.     # 设置活动块的坐标
  137.     self.x = @battler.screen_x
  138.     self.y = @battler.screen_y
  139.     self.z = @battler.screen_z
  140.   end
  141. end


  142. #--------------------------------------#
  143. #  大话西游单机论坛  [url]www.ie886.com[/url]     #
  144. #--------------------------------------#
复制代码

未命名.jpg (14.63 KB, 下载次数: 10)

未命名.jpg

点评

得到答案请去认可贴认可。  发表于 2010-10-22 20:46
说实话我第一次见过RGSS错误。。。  发表于 2010-10-21 19:44

Lv2.观梦者

梦石
0
星屑
635
在线时间
244 小时
注册时间
2010-9-9
帖子
472
2
发表于 2010-10-21 21:58:04 | 只看该作者
请将工程附上。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

宛若

梦石
0
星屑
1568
在线时间
526 小时
注册时间
2007-8-19
帖子
1493

极短24参与开拓者

3
发表于 2010-10-21 23:24:04 | 只看该作者
dispose了已经被dispose的Sprite
[url=http://rpg.blue/thread-219730-1-1.html]http://unhero.sinaapp.com/wi.php[/url]
[color=Red]如你所见这是个死坑,没错这就是打我的脸用的[/color]
回复 支持 反对

使用道具 举报

乌有君
4
乌有君  发表于 2010-10-21 23:29:11
本帖最后由 匿名 于 2010-10-21 23:30 编辑

DISPOSE什么最讨厌了
汝等可以灰常有爱地去Sprite里直接
alter dispose fuck!
def dispose
  unless disposed?
   fuck!
  end
end

然后就像代码中的英文那样不用注释地表达出了一种神奇的感情……

点评

alter是虾米……是什么新奇好用的东东咩~  发表于 2010-10-21 23:34
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

5
发表于 2010-10-22 00:19:14 | 只看该作者
回复 Anonymous 的帖子

  def dispose
    super if not self.disposed?
  end

咳咳....我是用super的...(当然,这是window里面的dispose就是..)
求解alter和alias的区别{:nm_1:}
   
Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
10079
在线时间
4432 小时
注册时间
2005-10-22
帖子
6958

开拓者贵宾

6
发表于 2010-10-22 00:27:14 | 只看该作者
好吧,偶华丽地拼错了- -0

点评

moy
咱觉得fuck! 更华丽...一个 ! 就说明了这个名字多么的有破坏力...  发表于 2010-10-22 01:39
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2010-10-3
帖子
58
7
 楼主| 发表于 2010-10-22 17:14:23 | 只看该作者
有什么办法可以解决?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
10079
在线时间
4432 小时
注册时间
2005-10-22
帖子
6958

开拓者贵宾

8
发表于 2010-10-22 17:38:14 | 只看该作者
本帖最后由 orochi2k 于 2010-10-22 18:11 编辑
有什么办法可以解决?
guorenyan 发表于 2010-10-22 17:14


其实我们已经解决了
把这段代码随便插在一个空白的新建脚本里- -0

class Sprite
alias fuck! dispose
def dispose
  unless disposed?
   fuck!
  end
end
end

记住,你要虔诚地打那个fuck!,否则可能不灵验(大雾)

点评

67不是说欢迎到技术区匿名答题的么~\(≧▽≦)/~(大雾)  发表于 2010-10-22 18:11
技术区就不要匿名了啦~~不然加不了分的~~~><  发表于 2010-10-22 17:41

评分

参与人数 1星屑 +376 收起 理由
fux2 + 376 认可答案。

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
25 小时
注册时间
2010-10-3
帖子
58
9
 楼主| 发表于 2010-10-22 20:42:15 | 只看该作者

解决了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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