Animacja nad obrazkiem.
Aktualny czas: 07-10-26, 12:01 Witaj! Przejdź do zakładki Logowanie lub Rejestracja

To była dobra przygoda. Dziękujemy!
Po wielu wspólnych latach Ultima Forum przechodzi w tryb archiwalny.
Zostawiamy je tutaj takim, jakie stworzyliśmy je razem,
z tysiącami postów, projektów, porad, skryptów i wspomnień.
Dziękujemy każdemu, kto był częścią Ultimy.


Odpowiedz 
[VXAce] Animacja nad obrazkiem.
Ayene Offline
*


Liczba postów: 758
Dołączył: 09-04-13

Pomógł: 112



Post: #4
RE: Animacja nad obrazkiem.

Wydaje mi się, że najlepiej by było nie używać polecenia picture w zdarzeniach walki, tylko skonfigurować animację poszczególnych przeciwników bezpośrednio w skryptach. Dzięki czemu nie występuje problem z tzw. "viewportem" i jego współrzędną z.

Może poniższe rozwiązanie Ci się przyda. Poszczególne animacje muszą być nazwane jak battler i dodane kolejno cyferki, np. battler nazywa się Slime, więc jego kolejne klatki będą Slime1, Slime2, Slime3, itd.

Następnie w konfiguracji na górze skryptu trzeba by było podać, że przeciwnik o id 1 (czyli slime), będzie miał np. 6 klatek animacji.

Nie wiem, czy korzystasz ze skryptu na sideview battle, jeśli tak to skrypt trzeba będzie przerobić, aby odnosił się do klasy Game_Enemy.

class Sprite_Battler < Sprite_Base
  
  ENEMY_FRAMES = { #id przeciwnika => liczba klatek animacji
    1 => 6,
  }
  
  SZYBKOŚĆ_ANIMACJI = 32
  #--------------------------------------------------------------------------
  def initialize(viewport, battler = nil)
    super(viewport)
    @battler = battler
    @battler_visible = false
    @effect_type = nil
    @effect_duration = 0
    self.bitmap = Cache.battler(@battler.battler_name, @battler.battler_hue) if @battler
    @duration = 0
    @frame = 0
  end
  #--------------------------------------------------------------------------
  def update_bitmap
    @duration += 1    
    if @duration > SZYBKOŚĆ_ANIMACJI
      @duration = 0
      @frame = 1 if @frame >= ENEMY_FRAMES[@battler.enemy_id]
      @frame += 1
      new_bitmap = Cache.battler(@battler.battler_name + @frame.to_s, @battler.battler_hue)
      if bitmap != new_bitmap
        self.bitmap = new_bitmap
        init_visibility
      end
    end  
  end
end

[Obrazek: aye_furniture_pres.png]
17-06-18 18:24
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
"Pomógł" przyznał(a): Revlis
Odpowiedz 


Wiadomości w tym wątku
Animacja nad obrazkiem. - Revlis - 15-06-18, 22:03
RE: Animacja nad obrazkiem. - Ayene - 17-06-18 18:24

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.