O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Problemas com HUD

Iniciado por Black_Zero, 11/02/2013 às 15:22

11/02/2013 às 15:22 Última edição: 11/02/2013 às 17:13 por Black_Zero
Algum Scripter poderia me ajudar com minha HUD? Eu montei tudo aqui, a HUD está funcionando, mas com 10 segundos jogando, o notebook fica travando, pois o jogo fica usando toda a memória RAM, e sem o script o jogo não faz isso.

Acho que pode ser algo errado no script, então peço que algum Scripter aqui verifique o script para ver se tem algo de errado nele e se possível, corrigir:

#==============================================================================
#                         .::Super Mario Bros. HUD::.
#------------------------------------------------------------------------------
# Criado por: Black_Zero      Data: 10/02/2013      Ultima Revisão: 11/02/2013
#==============================================================================
class Scene_Map < Scene_Base
#------------------------------------------------------------------------------
# Este script cria uma HUD no estilo do Super Mario Bros. mas um pouco mais
# personalizado, pois utiliza uma imagem para mostrar os gráficos, 
#------------------------------------------------------------------------------
  alias hud_1 start
  alias hud_2 update
  alias hud_3 terminate
#------------------------------------------------------------------------------
  def start
    hud_1
    hud_start
  end
  def update
    hud_2
    hud_update
  end
  def terminate
    hud_3
    hud_terminate
  end
#------------------------------------------------------------------------------
  def hud_start
    @hud = Sprite.new
    @hud.bitmap = Bitmap.new(1,1)
  end
  def hud_update
    smb_hud
    @hud.visible = $game_switches[5]
  end
  def hud_terminate
    @hud.dispose
  end
  def smb_hud
    @hud.bitmap.clear
    @hud.bitmap = Bitmap.new("Graphics/Pictures/HUD.png")
    @hud.bitmap.draw_text(172, 27, 6 * 16, 16, $game_variables[1])
    @hud.bitmap.draw_text(339, 27, 16, 16, $game_variables[2])
    @hud.bitmap.draw_text(373, 27, 16, 16, $game_variables[3])
    @hud.bitmap.draw_text(10, 27, 7 * 16, 16, $game_variables[4])
    @hud.bitmap.draw_text(485, 27, 3 * 16, 16, $game_variables[5])
    @hud.bitmap.draw_text(517, 390, 16, 16, $game_variables[6])
  end
end
#------------------------------------------------------------------------------
#                           .::End of the Script::.
#------------------------------------------------------------------------------


Imagem dele funcionando:
Spoiler


[close]

Depois que a HUD é ativada (Switch ID 5 ON) o jogo começa a "devorar" a memória RAM. Esse é o primeiro HUD que faço.

Essa imagem está constantemente atualizando, tenta isso daqui u_u.
Fiz 2 coisas, 1 tirei a atualização a cada frame, deixei a cada 8 frames, 2 a imagem eu acho desnecessário ficar redesenhando ela, então coloquei apenas no initialize
#==============================================================================
#                         .::Super Mario Bros. HUD::.
#------------------------------------------------------------------------------
# Criado por: Black_Zero      Data: 10/02/2013      Ultima Revisão: 11/02/2013
#==============================================================================
class Scene_Map < Scene_Base
#------------------------------------------------------------------------------
# Este script cria uma HUD no estilo do Super Mario Bros. mas um pouco mais
# personalizado, pois utiliza uma imagem para mostrar os gráficos, 
#------------------------------------------------------------------------------
  alias hud_1 start
  alias hud_2 update
  alias hud_3 terminate
#------------------------------------------------------------------------------
  def start
    hud_1
    hud_start
  end
  def update
    hud_2
    hud_update if Graphics.frame_count % 8 == 1
  end
  def terminate
    hud_3
    hud_terminate
  end
#------------------------------------------------------------------------------
  def hud_start
    @hud = Sprite.new
    @hud.bitmap = Bitmap.new(1,1)
    @hud_image = Sprite.new
    @hud_image.bitmap = Bitmap.new("Graphics/Pictures/HUD.png")
  end
  def hud_update
    smb_hud
    @hud.visible = @hud_image.visible = $game_switches[5]
  end
  def hud_terminate
    @hud.dispose
    @hud_image.dispose
  end
  def smb_hud
    @hud.bitmap.clear
    @hud.bitmap.draw_text(172, 27, 6 * 16, 16, $game_variables[1])
    @hud.bitmap.draw_text(339, 27, 16, 16, $game_variables[2])
    @hud.bitmap.draw_text(373, 27, 16, 16, $game_variables[3])
    @hud.bitmap.draw_text(10, 27, 7 * 16, 16, $game_variables[4])
    @hud.bitmap.draw_text(485, 27, 3 * 16, 16, $game_variables[5])
    @hud.bitmap.draw_text(517, 390, 16, 16, $game_variables[6])
  end
end
#------------------------------------------------------------------------------
#                           .::End of the Script::.
#------------------------------------------------------------------------------

Testei o script aqui, o jogo voltou ao normal, mas os marcadores de tempo, vidas, etc... sumiram da tela.

Ah sim malz tente isso '-'.
#==============================================================================
#                         .::Super Mario Bros. HUD::.
#------------------------------------------------------------------------------
# Criado por: Black_Zero      Data: 10/02/2013      Ultima Revisão: 11/02/2013
#==============================================================================
class Scene_Map < Scene_Base
#------------------------------------------------------------------------------
# Este script cria uma HUD no estilo do Super Mario Bros. mas um pouco mais
# personalizado, pois utiliza uma imagem para mostrar os gráficos, 
#------------------------------------------------------------------------------
  alias hud_1 start
  alias hud_2 update
  alias hud_3 terminate
#------------------------------------------------------------------------------
  def start
    hud_1
    hud_start
  end
  def update
    hud_2
    hud_update if Graphics.frame_count % 8 == 1
  end
  def terminate
    hud_3
    hud_terminate
  end
#------------------------------------------------------------------------------
  def hud_start
    @hud = Sprite.new
    @hud.bitmap = Bitmap.new(1,1)
    @hud_image = Sprite.new
    @hud_image.bitmap = Cache.picture("HUD")
  end
  def hud_update
    smb_hud
    @hud.visible = @hud_image.visible = $game_switches[5]
  end
  def hud_terminate
    @hud.dispose
    @hud_image.dispose
  end
  def smb_hud
    @hud.bitmap.clear
    @hud.bitmap.draw_text(172, 27, 6 * 16, 16, $game_variables[1])
    @hud.bitmap.draw_text(339, 27, 16, 16, $game_variables[2])
    @hud.bitmap.draw_text(373, 27, 16, 16, $game_variables[3])
    @hud.bitmap.draw_text(10, 27, 7 * 16, 16, $game_variables[4])
    @hud.bitmap.draw_text(485, 27, 3 * 16, 16, $game_variables[5])
    @hud.bitmap.draw_text(517, 390, 16, 16, $game_variables[6])
  end
end
#------------------------------------------------------------------------------
#                           .::End of the Script::.
#------------------------------------------------------------------------------

11/02/2013 às 16:51 #4 Última edição: 11/02/2013 às 17:16 por Black_Zero
Opa agora sim, obrigado por corrigir o problema para mim!

OBS: Descobri esse ultimo problema sozinho, mas de qualquer jeito, obrigado por me ajudar na parte onde o jogo estava "devorando" a memória RAM.