UltimaForum

Wsparcie [VX] - Problemy z wyświetlaniem obrazków w Menu.

Prometherion - Sro 23 Mar, 2011 21:00
Temat postu: Problemy z wyświetlaniem obrazków w Menu.
Oto screen wiele wyjaśniający.

Spoiler:



Jest to ostatni problem, który muszę ominąć. Jak widać na załączonym zrzucie, wyświetlanie obrazka w poszczególnych sektorach różni się. Raz jest tłem, na którym wszystko widać. Raz także jest tłem, tylko nie dla kursora, który jest "pod obrazkiem". Kolejnym problemem jest wyświetlanie obrazka nad wszystkimi napisami.

Otóż, chciałbym się dowiedzieć jak sprawić aby w każdym sektorze wyświetlany obrazek służył za tło i nie zakrywał wszystkich statystyk, kursora czy napisów. Korzystam z takiego skrypciku na wyświetlanie tła:

Kod:
 img = Cache.picture("PM - Okno główne")   
src_rect = Rect.new(0, 0, img.width, img.height)   
self.contents.blt(0, 0, img, src_rect)


Jest to z pewnością moja ostatnia prośba dotycząca Menu. Prosiłbym o wyjaśnienie i podanie rozwiązania.

Ayene - Czw 24 Mar, 2011 16:46

A nie lepiej by było Tobie zrobić jeden duży obrazek o wymiarach 544x416 px i nie wrzucać kawałków w okna tylko jeden w klasę Scene?
Przykładowo, jeśli złączysz już sobie taki obrazek, użyj tego skryptu:
Spoiler:

Kod:
class Scene_Equip < Scene_Base
  alias scbit_sceq_start start
  def start
    scbit_sceq_start
    @help_window.opacity = 0
    @equip_window.opacity = 0
    @status_window.opacity = 0   
    for i in 0...EQUIP_TYPE_MAX
      @item_windows[i].opacity = 0
    end
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture("NAZWA")   
  end
 
  alias scbit_sceq_terminate terminate
  def terminate   
    scbit_sceq_terminate
    @sprite.bitmap.dispose
    @sprite.dispose
  end   
end


Obrazek o nazwie "NAZWA" wrzuć do folderu Graphics/Pictures.
Może tak będzie lepiej, a jak nie no to pomyśli się nad innym rozwiązaniem ;-)

Prometherion - Czw 24 Mar, 2011 17:27

Wszystko ładnie pięknie, lecz jak przerobić ten skrypt aby działał także w Przedmiotach, Umiejętnościach itd.
Ayene - Czw 24 Mar, 2011 18:27

Nadpisz wcześniejszy skrypt:
Spoiler:

Kod:
class Scene_Equip < Scene_Base
  alias scbit_sceq_start start
  def start
    scbit_sceq_start
    @help_window.opacity = 0
    @equip_window.opacity = 0
    @status_window.opacity = 0   
    for i in 0...EQUIP_TYPE_MAX
      @item_windows[i].opacity = 0
    end
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture("NAZWA")   
  end
 
  alias scbit_sceq_terminate terminate
  def terminate   
    scbit_sceq_terminate
    @sprite.bitmap.dispose
    @sprite.dispose
  end   
end

class Scene_Item < Scene_Base
  alias scbit_scit_start start 
  def start   
    scbit_scit_start
    @help_window.opacity = 0
    @item_window.opacity = 0
    @target_window.opacity = 0
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture("NAZWA")
  end
  alias scbit_scit_terminate terminate
  def terminate   
    scbit_scit_terminate
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end

class Scene_Skill < Scene_Base 
  alias scbit_scskill_start start 
  def start
    scbit_scskill_start   
    @help_window.opacity = 0
    @status_window.opacity = 0
    @target_window.opacity = 0
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture("NAZWA")
  end
  alias scbit_scskill_terminate terminate
  def terminate   
    scbit_scskill_terminate
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end

class Scene_File < Scene_Base
  alias scbit_scfile_start start 
  def start
    scbit_scfile_start       
    @help_window.opacity = 0
    for i in 0..3
      @savefile_windows[i].opacity = 0
    end
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture("NAZWA")
  end 
  alias scbit_scfile_terminate terminate
  def terminate   
    scbit_scfile_terminate
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end


Prometherion - Czw 24 Mar, 2011 18:44

Dziękuję bardzo! Mam już wszystko co chciałem zmienić w Menu, więc już dłużej głowy nie zawracam.

Powered by phpBB modified by Przemo © 2003 phpBB Group