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

Project1

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

[已经解决] 有關腳本上沒有方法的問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
帖子
941
跳转到指定楼层
1
发表于 2013-8-25 19:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 zeldafd 于 2013-8-26 11:44 编辑

我做了個新的HUD系統, 但運行時第47行一直報錯, 說"UNDEFINED METHOD 'bitmap' FOR nil:NilClass"

我以為是我用了實例變量的問題, 但我全部用了全局後都是一樣.

以下是我的HUD的腳本, 請各路人士幫忙看一下是什麼一回事...

RUBY 代码复制
  1. class Game_Hud
  2.  
  3.   $game_hud = Game_Hud.new
  4.  
  5.   def initialize
  6.     create_hp
  7.     create_sp
  8.   end
  9.  
  10.   def create_hp
  11.     $hp_slot = Sprite.new
  12.     $hp_slot.bitmap = Cache.system($HP_SLOT)
  13.     $hp_slot.x = 5
  14.     $hp_slot.y = 15
  15.     $hp_slot.z = 85
  16.  
  17.     $hp_meter_image = Cache.system($HP_METER) # hp計的圖
  18.  
  19.     $hp_meter_sprite = Sprite.new
  20.     $hp_meter_sprite.bitmap = Bitmap.new($hp_meter_image.width, $hp_meter_image.height)
  21.  
  22.     # HP血條位置資訊
  23.     $hp_meter_sprite.x = 35
  24.     $hp_meter_sprite.y = 15
  25.     $hp_meter_sprite.z = 90
  26.   end
  27.  
  28.   def create_sp
  29.     $sp_slot = Sprite.new
  30.     $sp_slot.bitmap = Cache.system($SP_SLOT)
  31.     $sp_slot.x = 5
  32.     $sp_slot.y = 45
  33.     $sp_slot.z = 85
  34.  
  35.     $sp_meter_image = Cache.system($SP_METER) # sp計的圖
  36.  
  37.     $sp_meter_sprite = Sprite.new
  38.     $sp_meter_sprite.bitmap = Bitmap.new($sp_meter_image.width, $sp_meter_image.height)
  39.  
  40.     # SP血條位置資訊
  41.     $sp_meter_sprite.x = 35
  42.     $sp_meter_sprite.y = 44
  43.     $sp_meter_sprite.z = 90
  44.   end
  45.  
  46.   def update_hp
  47.     $hp_meter_sprite.bitmap.clear
  48.     $hp_meter_sprite.bitmap.blt(0, 0, $hp_meter_image,
  49.       Rect.new(0, 0, $hp_meter_image.width, $hp_meter_image.height) )
  50.   end
  51.  
  52.   def update_sp
  53.     $sp_meter_sprite.bitmap.clear
  54.     $sp_meter_sprite.bitmap.blt(0, 0, $sp_meter_image,
  55.       Rect.new(0, 0, $sp_meter_image.width, $sp_meter_image.height))
  56.   end
  57.  
  58.   def dispose
  59.     $hp_meter_sprite.bitmap.dispose
  60.     $hp_meter_sprite.dispose
  61.  
  62.     $hp_slot.bitmap.dispose
  63.     $hp_slot.dispose
  64.  
  65.     $sp_meter_sprite.bitmap.dispose
  66.     $sp_meter_sprite.dispose
  67.  
  68.     $sp_slot.bitmap.dispose
  69.     $sp_slot.dispose
  70.   end
  71.  
  72.   def setVisiable(trueorfalse)
  73.     v = trueorfalse
  74.   end
  75.  
  76.   def update
  77.     update_hp
  78.     update_sp
  79.   end
  80.  
  81.   def refresh
  82.     dispose
  83.     initialize
  84.   end
  85.  
  86. end
  87.  
  88. class Spriteset_Map
  89.  
  90.   alias old_init initialize
  91.   def initialize
  92.     $game_hud
  93.     old_init
  94.   end
  95.  
  96.   alias old_dispose dispose
  97.   def dispose
  98.     $game_hud.dispose
  99.     old_dispose
  100.   end
  101.  
  102.   alias old_update update
  103.   def update
  104.     $game_hud.update
  105.     old_update
  106.   end
  107.  
  108.   alias old_refresh_char refresh_characters
  109.   def refresh_characters
  110.     old_refresh_hud
  111.     $game_hud.refresh
  112.   end
  113.  
  114. end

Lv1.梦旅人

梦石
0
星屑
50
在线时间
141 小时
注册时间
2013-8-6
帖子
114
2
发表于 2013-8-26 01:34:33 | 只看该作者
且不管别的一切,你第一句$game_hud = Game_Hud.new就错的很离谱了。。调用类只能在本类之外。。你在Game_hud内部调用Game_hud肯定要出错的,而且这跟实例变量和全局变量也没有任何关系。虽然我不清楚你要实现什么,不过最好再仔细看一遍F1再写。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
3
发表于 2013-8-26 08:38:36 手机端发表。 | 只看该作者
然后能不能把这里面的一大堆全局变量改成类变量再说。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
帖子
941
4
 楼主| 发表于 2013-8-26 10:51:09 手机端发表。 | 只看该作者
Algalon 发表于 2013-8-26 01:34
且不管别的一切,你第一句$game_hud = Game_Hud.new就错的很离谱了。。调用类只能在本类之外。。你在Game_h ...

我平時寫這句都是沒有出錯……而且這個只是定義了變量的內容……
你不是來回答可以別吵麼。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
帖子
941
5
 楼主| 发表于 2013-8-26 10:53:14 手机端发表。 | 只看该作者
fangyc 发表于 2013-8-26 08:38
然后能不能把这里面的一大堆全局变量改成类变量再说。。。

本身是類變量來的,但之前試過有同類事件都是因為類變量的問題,完全不知原因……
所以我把他們都改作了全局變量……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

6
发表于 2013-8-26 10:57:50 | 只看该作者
有可能是在$game_hud创建的时候他还没有初始化
你试试把$game_hud的初始化放到类定义外面。

评分

参与人数 2星屑 +112 收起 理由
Sion + 100 认可答案
zeldafd + 12 <font><font>認可答案</font&gt

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 18:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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