[VX / VXAce] Can't convert Fixnum into Color - Wersja do druku
Ultima Forum
[VX / VXAce] Can't convert Fixnum into Color - Wersja do druku

+- Ultima Forum (https://forum.ultimateam.pl)
+-- Dział: RPG Maker (/Forum-RPG-Maker)
+--- Dział: Wsparcie (/Forum-Wsparcie)
+--- Wątek: [VX / VXAce] Can't convert Fixnum into Color (/Thread-VX-VXAce-Can-t-convert-Fixnum-into-Color)



Can't convert Fixnum into Color - Yotta - 30-11-15 21:26

Siemka. Mam problem ze skryptem. Próbuję zrobić jakiś HUD. Mam tam opcję draw_gauge. Gdy wprowadzę do niej argumenty (0, 64, 192, 5, 0, 0), po odpaleniu gry pokazuje mi błąd o treści z tematu. O co chodzi?
Kod:
class YttScr_Window < Window_Base
  def initialize()
    super(0, 0, 256, 128)
  end
  def change_text( text )
    return unless text.is_a?(String)
    contents.clear
    draw_text(text, 0, 0, 128, 32, 0)
    draw_icon(495, 144, 0)
    draw_gauge(0, 64, 192, 5, 0, 0)
  end
  #--------------------------------------------------------------------------
  # ● テキストの描画
  #     args : Bitmap#draw_text と同じ
  #--------------------------------------------------------------------------
  def draw_text(text, x, y, text_width, text_height, alignment = 0)
    contents.draw_text(x, y, text_width, text_height, text, alignment)
  end
end



RE: Can't convert Fixnum into Color - Ayene - 30-11-15 23:05

Wklej tu całą definicję 'draw_gauge'. Jesteś pewny, że dobrze ją wywołujesz?


RE: Can't convert Fixnum into Color - Yotta - 01-12-15 18:16

Chyba dobrze, niestety, nie znam japońskiego, a jest tam coś co trzech ostatnich argumentach.
Kod:
#--------------------------------------------------------------------------
  # ● ゲージの描画
  #     rate   : 割合(1.0 で満タン)
  #     color1 : グラデーション 左端
  #     color2 : グラデーション 右端
  #--------------------------------------------------------------------------
  def draw_gauge(x, y, width, rate, color1, color2)
    fill_w = (width * rate).to_i
    gauge_y = y + line_height - 8
    contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
    contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2)
  end



RE: Can't convert Fixnum into Color - Ayene - 01-12-15 19:17

Mhm, wywołujesz wersję domyślną, a w niej wartości "color1" i "color2" nie są wartościami liczbowymi. Trzeba zamiast ostatnich dwóch cyfr wpisać albo zadeklarowany w "Window_Base" kolor: hp_gauge_color1, power_up_color, itd., albo wpisać np. text_color(23). Można ewentualnie podać w wywołaniu funkcji od razu color RGB poprzez Color.new(201, 142, 3).


RE: Can't convert Fixnum into Color - Yotta - 01-12-15 19:46

Dzięki Ayene, teraz pięknie działa. Zamykam.