🤔 Para Refletir :
"Escrever para o seu jogo já começa nas mecânicas"
- AbsoluteXandy

rpg maker xp Como mudar a cor da fonte do menu titulo?

Estado
Tópico fechado. Não é possível fazer postagens nela.

Riven

Cidadão
Membro
Membro
Juntou-se
13 de Fevereiro de 2017
Postagens
133
Bravecoins
4
Como mudar a cor da fonte do menu titulo?

Sabe o s1, s2, s3 do rpg maker xp (script Scene_Title), para o novo jogo, continuar etc, strings, qual comando utilizar neles para mudarem de cor e de fonte?

Por exemplo está lá s1 = Novo Jogo
tentei o que vi no script main, e mudei para s1.Font.default_name = "nome da minha fonte" e também a cor s2.Font.default_color =... dentro da criação da janela @command_window = Window_Command.new(192, [s1.Font.default_name..., s2, s3])

Dá erro dizendo em ingles: método fonte não definido para "Novo Jogo" : String

Então, tentei também assim:  @fonte = Font.new
    @command_window = Window_Command.new(192, [s1.@fonte.default_name = "Arial", s2, s3])
 
dá erro de sintaxe.

rpg maker xp
 
Olá!

Para mudar a cor, você precisa preparar a classe Window_Command para receber as cores igual é feito com as opções.


Vamos alterar a classe Window_Command para receber um terceiro parâmetro "cores".

Código:
  def initialize(width, commands, colors = nil)
    # Aqui é calculada a altura da janela em relação ao número de escolhas
    super(0, 0, width, commands.size * 32 + 32)
    @item_max = commands.size
    @commands = commands
    @colors = colors
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end

Neste código, adicionei um parâmetro opcional

def initialize(width, commands, colors = nil)

E também guardei os valores das cores em uma variável que pode ser acessada fora do método, igual é feito com a variável @commands:

    @item_max = commands.size
    @commands = commands
  @colors = colors

Após feito isso, a nossa classe já suportará receber as cores como parâmetros, então vamos utilizar essas cores para pintar cada opção.

Altere o método [refresh] da mesma classe "Window_Command", deixando-o assim:
Código:
  def refresh
    self.contents.clear
    for i in 0...@item_max
      color = @colors ? @colors[i] : normal_color
      draw_item(i, color)
    end
  end

A alteração neste método é a seguinte:

color = @colors ? @colors : normal_color
draw_item(i, color)

Criamos a variável "color", e adicionamos um if ternário que vai verificar se a nossa variável @colors está presente,
caso não esteja, a cor padrão será usada.

Com isso, basta alterar a classe Scene_Title, passando as cores junto com as opções s1, s2 e s3:

No método main da Scene_Title, crie um array de cores (cada cor para uma opção).
Passe o seu array de cores, para o método new da Window_Command:

....
Código:
    s1 = "Novo Jogo"
    s2 = "Continuar"
    s3 = "Sair"

    colors = [
              Color.new(255, 255, 64, 255), # cor do s1
              Color.new(255, 111, 64, 255), # cor do s2
              Color.new(255, 255, 99, 100)  # cor do s3
            ]

    @command_window = Window_Command.new(192, [s1, s2, s3], colors)
....


Sugiro que tente fazer o mesmo processo para a fonte, caso não consiga, farei para você.

Até mais  :^-^:
 
Estado
Tópico fechado. Não é possível fazer postagens nela.
Voltar
Topo Inferior