To practice with Ruby, I decided I would rearrange my Status Screen, and include a picture of a battler. This went pretty well, but when I input my battler, the sprite picture disappeard. I thought at first this was because I defined the battler image as draw_actor_graphic, i.e. the same as the sprite, but when I change it, the sprite comes back but the battler disappears. This is a screenshot:
The part in red is approximately where the sprite should be. And the code is:
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_graphic(@actor, 40, 112)
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 195 + 80, 0)
draw_actor_state(@actor, 85, 0)
draw_actor_hp(@actor, 0, 112, 172)
draw_actor_sp(@actor, 0, 144, 172)
draw_actor_parameter(@actor, 0, 192, 0)
draw_actor_parameter(@actor, 0, 224, 1)
draw_actor_parameter(@actor, 0, 256, 2)
draw_actor_parameter(@actor, 0, 304, 3)
draw_actor_parameter(@actor, 0, 336, 4)
draw_actor_parameter(@actor, 0, 368, 5)
draw_actor_parameter(@actor, 0, 400, 6)
self.contents.font.color = system_color
self.contents.draw_text(195, 0, 80, 32, "Class")
self.contents.font.color = system_color
self.contents.draw_text(400, 0, 80, 32, "Experience")
self.contents.font.color = normal_color
self.contents.draw_text(400 + 80, 0, 84, 32, @actor.exp_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(400, 64, 96, 32, "Equipment")
draw_item_name($data_weapons[@actor.weapon_id], 400 + 16, 112)
draw_item_name($data_armors[@actor.armor1_id], 400 + 16, 160)
draw_item_name($data_armors[@actor.armor2_id], 400 + 16, 208)
draw_item_name($data_armors[@actor.armor3_id], 400 + 16, 256)
draw_item_name($data_armors[@actor.armor4_id], 400 + 16, 304)
end
def dummy
self.contents.font.color = system_color
self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
end
def draw_actor_graphic(actor, x, y, opacity = 255)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
x = 230
y = 100
self.contents.blt(x, y, bitmap, src_rect, opacity)
end
end
I'm really bad at scripting, so the problem is probably just a slight oversight on my part because of my limited knowledge of Ruby. Anyway, help would be appreciated.