Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Tło walki
Autor Wiadomość
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 16 Wrz, 2009 09:57
Tło walki
~ Tło walki ~

Krótki opis
Skrypt pozwala na zmianę tła walki oraz przyporządkowanie poszczególnych obrazków tła do konkretnej mapy. Ponadto zawiera opcję wyłączenia podłoża walki (BattleFloor).

Autor skryptu
Claimh

Poprawki
Ayene [yurika@o2.pl]

Kompatybilność
Tylko VX.

Skrypt
Spoiler:

Kod:
# ==============================================================================
#                             ~ Tło walki ~
#                       Data publikacji: 16.09.2009
#                          Autor: Claimh
#               Tłumaczenie i poprawki: Ayene [yurika@o2.pl]
#          Zapraszam na stronę UltimaForum - http://www.ultimateam.pl
# ==============================================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# ==============================================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# --------------------------- POCZĄTEK SKRYPTU ---------------------------------
module BattleBack
# ---------------------------- POCZĄTEK EDYCJI --------------------------------- 
# Poniżej możesz ustawić rodzaj tła walki:
  #   0 -> falujące tło (domyślne w VX)
  #   1 -> tłem jest mapa, na której walka ma miejsce
  #   2 -> tłem walki jest obrazek (patrz niżej M_B_BACK)
  BB_TYPE = 2
 
# Wyświetlanie podłoża (obrazka o nazwie 'BattleFloor' w folderze 'System')
  #   true -> wyświetla
  #   false -> nie wyświetla
  BT_FLOOR = false

# Tło walki w postaci obrazka (BB_TYPE = 2)
  M_B_BACK = {
    # ID mapy => nazwa obrazka z folderu 'Graphics/System'            
    0 => "mapa_0", # 0 => domyślnie dla map, którym nie ustawiono innego tła.
    1 => "mapa_1",       
    3 => "mapa_3"
  }
  # (optymalna wielkość grafiki to 544 x 416 px; format -> PNG i JPG)

# ----------------------------- KONIEC EDYCJI ---------------------------------- 
end

# -----------NIE EDYTUJ PONIŻEJ, CHYBA ŻE WIESZ CO ROBISZ ^^--------------------
#==============================================================================
# ¦ Klasa Spriteset_Battle
#==============================================================================
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # Tło walki
  #--------------------------------------------------------------------------
  def create_battleback
    case BattleBack::BB_TYPE
    when 0
      source = $game_temp.background_bitmap
      bitmap = Bitmap.new(640, 480)
      bitmap.stretch_blt(bitmap.rect, source, source.rect)
      bitmap.radial_blur(90, 12)
      @battleback_sprite = Sprite.new(@viewport1)
      @battleback_sprite.bitmap = bitmap
      @battleback_sprite.ox = 320
      @battleback_sprite.oy = 240
      @battleback_sprite.x = 272
      @battleback_sprite.y = 176
      @battleback_sprite.wave_amp = 8
      @battleback_sprite.wave_length = 240
      @battleback_sprite.wave_speed = 120
    when 1
      source = $game_temp.background_bitmap
      bitmap = Bitmap.new(640, 480)
      bitmap.stretch_blt(bitmap.rect, source, source.rect)
      @battleback_sprite = Sprite.new(@viewport1)
      @battleback_sprite.bitmap = bitmap
      @battleback_sprite.ox = 320
      @battleback_sprite.oy = 240
      @battleback_sprite.x = 272
      @battleback_sprite.y = 176
    when 2
      @battleback_sprite = BattleBackSprite.new(@viewport1)
    end
  end
  #--------------------------------------------------------------------------
  # Wgranie podłoża walki -> 'BattleFloor'
  #--------------------------------------------------------------------------
  alias create_battlefloor_mbb create_battlefloor
  def create_battlefloor
    create_battlefloor_mbb if BattleBack::BT_FLOOR
  end
  #--------------------------------------------------------------------------
  # Koniec walki -> Zamknięcie 'BattleFloor'
  #--------------------------------------------------------------------------
  alias dispose_battlefloor_mbb dispose_battlefloor
  def dispose_battlefloor
    dispose_battlefloor_mbb if BattleBack::BT_FLOOR
  end
  #--------------------------------------------------------------------------
  # Aktualizacja podłoża walki -> Odświeżenie 'BattleFloor'
  #--------------------------------------------------------------------------
  alias update_battlefloor_mbb update_battlefloor
  def update_battlefloor
    update_battlefloor_mbb if BattleBack::BT_FLOOR
  end
end


#==============================================================================
# ¦ Klasa BattleBackSprite
#==============================================================================
class BattleBackSprite < Sprite
  # Wielkość okna z tłem
  WIDTH  = 544.00
  HEIGHT = 288.00
  #--------------------------------------------------------------------------
  # Rozpoczęcie
  #--------------------------------------------------------------------------
  def initialize(viewport = nil)
    super(viewport)
    if $BTEST
      self.bitmap = Cache.system(BattleBack::M_B_BACK[0])
    elsif BattleBack::M_B_BACK[$game_map.map_id].nil?
      self.bitmap = Cache.system(BattleBack::M_B_BACK[0])
    else
      self.bitmap = Cache.system(BattleBack::M_B_BACK[$game_map.map_id])
    end
    # Dopasowanie tła w szerokości i wysokości
    @x_zoom = WIDTH / self.bitmap.width
    @y_zoom = HEIGHT / self.bitmap.height
    @zoom = @x_zoom > @y_zoom ? @x_zoom : @y_zoom
    # Zoom -> przybliżenie
    self.zoom_x = @zoom
    self.zoom_y = @zoom
    # Pozycja tła -> wycentrowanie tła
    self.ox = self.bitmap.width / 2
    self.oy = self.bitmap.height / 2
    self.x = (self.bitmap.width / 2)  * @zoom
    self.y = (self.bitmap.height / 2) * @zoom
  end
end
# --------------------------- KONIEC SKRYPTU -----------------------------------


Demo
niepotrzebne

Screenshot
Spoiler:


Domyślne tło walki


Tłem jest mapa, na której walka ma miejsce


Tłem walki jest ustawiony w skrypcie obrazek


Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.

Piszcie w razie problemów.

tlo_walki.txt
Pobierz Plik ściągnięto 570 raz(y) 5,46 KB

________________________


 
 
 
Hemp Gru 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 14 Gru 2009
Posty: 56
Skąd: Bełchatów
Wysłany: Wto 12 Sty, 2010 23:07
Ej skąd wziąc te tła????????
 
 
 
bionicl 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 06 Gru 2009
Posty: 99
Skąd: z Huty Mińskiej
Wysłany: Wto 12 Sty, 2010 23:52
Najlepiej z XP-ka... Jeżeli nie masz, to ściągnij RTP...
________________________
Gość, podoba ci się moja gra? ;)
 
 
Hemp Gru 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 14 Gru 2009
Posty: 56
Skąd: Bełchatów
Wysłany: Sro 13 Sty, 2010 09:09
Kurcze no jak wklejam do vx to przy walce wyświetla mi się tylko połowa tła :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 13 Sty, 2010 16:01
Jasiekrpg, wystarczy przeczytać instrukcję zawartą w skrypcie:
Kod:
(optymalna wielkość grafiki to 544 x 416 px; format -> PNG i JPG)
________________________


 
 
 
dawidos989 




Preferowany:
RPG Maker VX

Pomógł: 6 razy
Dołączył: 04 Lis 2009
Posty: 87
Skąd: z tond
Wysłany: Czw 04 Lut, 2010 17:17
a jak to dodać? to tło
________________________
Pomogłem? Daj "
 
 
bionicl 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 06 Gru 2009
Posty: 99
Skąd: z Huty Mińskiej
Wysłany: Czw 04 Lut, 2010 17:21
Cytat:
Instrukcja
1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.


Domyśl się...
________________________
Gość, podoba ci się moja gra? ;)
 
 
dawidos989 




Preferowany:
RPG Maker VX

Pomógł: 6 razy
Dołączył: 04 Lis 2009
Posty: 87
Skąd: z tond
Wysłany: Czw 04 Lut, 2010 17:22
tak tylko że nie kumam nic z niego nie kumam
________________________
Pomogłem? Daj "
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 04 Lut, 2010 18:20
Przeczytaj dokładnie część konfiguracji skryptu, a dokładnie tę część:
Kod:
# Tło walki w postaci obrazka (BB_TYPE = 2)
  M_B_BACK = {
    # ID mapy => nazwa obrazka z folderu 'Graphics/System'           
    0 => "mapa_0", # 0 => domyślnie dla map, którym nie ustawiono innego tła.
    1 => "mapa_1",       
    3 => "mapa_3"
  }
________________________


 
 
 
Valdali 




Preferowany:
RPG Maker VXAce

Ranga RM:
1 gra

Pomógł: 20 razy
Dołączył: 19 Mar 2010
Posty: 421
Skąd: Reykjavik
Wysłany: Pon 19 Kwi, 2010 20:25
nie kumam tego :D. moze jestem ciemny. wytłumaczyłby mi ktoś jak to sie robi xd?
________________________
Moje anime w RPG Makerze. Zapraszam!
ZOBACZ :!: :!: :!:
Spoiler:

Moimi Mistrzami i Wielkimi Nauczycielami są: Melvin i Angius!

Dziennik Krejzolów:
Ayene
Angius
Melvin
Yoroiookami
CrasheR
Finwe

Moi ziomale :D

 
 
 
 
Drawestien 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 01 Gru 2010
Posty: 127
Wysłany: Pon 10 Sty, 2011 20:40
Bleah...szukałem tego a ty dopiero to na 5 stronie pozostawiasz bez opieki?
Nie będźie lizaka! :-PP :diabel:
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Pią 04 Lut, 2011 19:59
A ja mam prośbę. Czy dałoby radę zrobić, żeby ustawić odcień tła walki taki co jest np. ustawiony? Używam skryptu dnia i nocy.
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
Shlizer 




Preferowany:
RPG Maker XP

Pomógł: 11 razy
Dołączył: 02 Sty 2011
Posty: 138
Skąd: /var/tmp
Wysłany: Sob 05 Lut, 2011 01:43
Wszystko się da.. nawet na wiele sposobów. Odcień tła zmieniasz konwertując grafikę z RGB na HSB/HSL i zmieniając pierwszą wartość - hue.. brzmi groźnie, ale całe szczęście w RMXP (więc i zapewne VX) jest funkcja bitmap.hue_change(stopnie), gdzie stopnie to liczba z przedziału 0-360 (http://en.wikipedia.org/wiki/Hue).
Możesz też najzwyczajniej tylko przyciemnić obraz w zależności od pory dnia (nie znam tego skryptu, ale masz pewnie zmienną odpowiedzialną za sprawdzenie godziny/pory dnia). Wtedy rysujesz bitmapę wielkości pola bitwy, wypełniasz ją czarnym kolorem ( 'fill_rect(x, y, width, height, color)' lub 'fill_rect(rect, color)' ), a następnie zmieniasz opacity bitmapy (a w zasadzie sprite'a)..

sorry jeśli coś zamotałem albo źle zrozumiałem =p
________________________
Aversum Framework Demo
Aktualnie pracuję nad NSO =p
 
 
jmielczarek7 



Preferowany:
RPG Maker VXAce

Dołączył: 08 Kwi 2010
Posty: 25
Wysłany: Nie 06 Lut, 2011 20:54
ja nie rozumiem jak mam ustawić to tło proszę o pomoc
 
 
Czeliosss 



Ranga RM:
1 gra

Pomógł: 49 razy
Dołączył: 02 Lis 2009
Posty: 661
Skąd: Wa-wa
Wysłany: Nie 06 Lut, 2011 21:28
Shlizer, nie kapuję tego. Może Ayene dałaby radę to przerobić? Ja się na tym ruby nie znam.
jmielczarek7,
Cytat:
# Tło walki w postaci obrazka (BB_TYPE = 2)
M_B_BACK = {
# ID mapy => nazwa obrazka z folderu 'Graphics/System'
0 => "mapa_0", # 0 => domyślnie dla map, którym nie ustawiono innego tła.
1 => "mapa_1",
3 => "mapa_3"
}
________________________
...Amelanduil & FireBlade words will be remembered...
...Amelanduil & FireBlade acts will be remembered...
...Amelanduil & FireBlade never gonna die...

Nie pisać, bo nie odpiszę.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene