O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

colocar o menu de escolhas no meio da tela(rpg maker vx ace)

Iniciado por Candy Floos, 31/10/2018 às 19:14

31/10/2018 às 19:14 Última edição: 04/11/2018 às 04:33 por Sotelie
olá , e se você já percebeu eu ultimamente eu to aparecendo muito site perguntado muitas
perguntas mais é que esse site tá me ajudando muito eu consegui muitas coisas tipo fazer
um sistema de perseguição e usar itens então obrigada.



bom eu estou com uma pequena dúvida, uma coisa tem me incomodado
no menu de escolhas o fato das escolhas aparecerem no canto da tela,
além de isso ser feio na minha visão e ficar chato para mim e o jogador, eu
queria saber como colocar o menu de escolhas no meio da tela tipo the witchs house
castelo mogeko etc. Eu queria saber se tem um script também ou como mudar
e qual posição eu tenho que colocar  para o menu ficar no meio da tela.

bjs


rpg maker vx ace

Citação de: Candy Floos online 31/10/2018 às 19:14
olá , e se você já percebeu eu ultimamente eu to aparecendo muito site perguntado muitas
perguntas mais é que esse site tá me ajudando muito eu consegui muitas coisas tipo fazer
um sistema de perseguição e usar itens então obrigada. [...]
Que bom que está encontrando um suporte que atenda o que precisa. Ao menos para mim, e acredito que para toda a comunidade, é gratificante ver o pessoal saciando dúvidas aqui, seguindo com seus projetos e melhorando suas habilidades.

Enfim, quanto à sua dúvida, o código que cuida da janela de escolhas é o Window_ChoiceList. Dentro desse código há o método update_placement (segue observando no seu projeto), que como o comentário acima dele fala, ele é responsável pela atualização da posição da janela

#--------------------------------------------------------------------------
  # * Atualização da posição da janela
  #--------------------------------------------------------------------------
  def update_placement
    self.width = [max_choice_width + 12, 96].max + padding * 2
    self.width = [width, Graphics.width].min
    self.height = fitting_height($game_message.choices.size)
    self.x = Graphics.width - width
    if @message_window.y >= Graphics.height / 2
      self.y = @message_window.y - height
    else
      self.y = @message_window.y + @message_window.height
    end
  end


A coordenada horizontal da janela é definida ali na linha "self.x = Graphics.width - width" onde o código fala que, o X da janela (self.x) é igual à largura da janela do jogo (Graphics.width) menos a largura da janela de escolhas (width) que está sendo calculada nas linhas acima. Isso faz com que a janela fica no canto direito da tela. Tu pode alterar aí para ir testando, substituindo essa linha por "self.x = 100", por exemplo, para tu ver como essa mudança impacta ali.
A posição vertical da janela é controlada por uma condição, pois varia conforme a posição da janela de mensagens. Tu também pode substituir essa condição, apagando tudo do "if" ao primeiro "end" e colocando "self.y = 250", por exemplo, no lugar. Mas sempre salve a parte que modificou em um canto, para depois voltar o código ao normal. O ideal é fazer essas mudanças em um código separado.

Tu já sabe onde queria deixar essa janela? Te ajudo a montar o código.

olá muito obrigada mesmo , e  me desculpe(desculpa mesmo) por só responder agora, bom se não for
incomodo e não te atrapalhar  eu queria o menu de escolhas bem na frente da tela sabe como the witch's house
,castelo mogeko etc. Muito obrigada mesmo ficarei grata

Citação de: Candy Floos online 01/11/2018 às 01:48
[...] eu queria o menu de escolhas bem na frente da tela sabe como the witch's house
,castelo mogeko etc. [...]
Não sei, nunca joguei esses jogos. Eles têm a janela de escolhas centralizadas na tela?

 Oi
Gostaria de oferecer uma ideia. Você poderia fazer por eventos, ao invés de alterar a posição da janela das escolhas, utilizando imagens e condições. É bem simples de ser feito e você tem a total liberdade de escolher, dentro dos 544x416, onde que a imagem vai ficar posicionada.
Vou fazer algo como exemplo pra você estudar e fazer o seu com as modificações necessárias.



Edit: Fiz aqui um sistema. Deixei o que a maioria das coisas fazem explicadas em comentários nos eventos. É bem básico e com um pouquinho de empenho você consegue modificar bem fácil.
Para você abrir o menu de escolhas pressione a tecla "A".
https://mega.nz/#!eINAQaAD!NJOWxc_hoS_PV6TCkTt99SEVxrtHZ2P5iS3rvy_S1h4

Bons estudos.  :XD:

Talvez este possa ser útil.
Lembrando que as dicas dos membros acima são bem úteis e melhores pois não dependerá de scripts de terceiros além de aprender a manusear melhor a ferramenta. o/

Citação de: King Gerar online 01/11/2018 às 05:51
Não sei, nunca joguei esses jogos. Eles têm a janela de escolhas centralizadas na tela?
sim




Citação de: Speed online 01/11/2018 às 08:13
Oi
Gostaria de oferecer uma ideia. Você poderia fazer por eventos, ao invés de alterar a posição da janela das escolhas, utilizando imagens e condições. É bem simples de ser feito e você tem a total liberdade de escolher, dentro dos 544x416, onde que a imagem vai ficar posicionada.
Vou fazer algo como exemplo pra você estudar e fazer o seu com as modificações necessárias.



Edit: Fiz aqui um sistema. Deixei o que a maioria das coisas fazem explicadas em comentários nos eventos. É bem básico e com um pouquinho de empenho você consegue modificar bem fácil.
Para você abrir o menu de escolhas pressione a tecla "A".
https://mega.nz/#!eINAQaAD!NJOWxc_hoS_PV6TCkTt99SEVxrtHZ2P5iS3rvy_S1h4

Bons estudos.  :XD:


olá bom sistema e parabéns e muito obrigada mais não é oque eu quero especificamente ,
desculpe continue com o seu maravilhoso trabalho.

Então tu vai fazer o seguinte: procure pelo código Window_ChoiceList que citei anteriormente em seu projeto. Nele, copie a chamada da classe e o método def update_placement que, como também falei anteriormente, é o responsável pela posição da janela de escolhas. Daí crie um novo código no local apropriado e é nele que faremos as modificações. O código até então deverá ficar assim:

class Window_ChoiceList < Window_Command
  def update_placement
    self.width = [max_choice_width + 12, 96].max + padding * 2
    self.width = [width, Graphics.width].min
    self.height = fitting_height($game_message.choices.size)
    self.x = Graphics.width - width
    if @message_window.y >= Graphics.height / 2
      self.y = @message_window.y - height
    else
      self.y = @message_window.y + @message_window.height
    end
  end


Após a chamada do método, as três primeiras linhas definem a largura (width) e a altura (height) da janela. Nessas linhas não mexeremos. As linhas que iniciam com o "self.x" e a condição do "if" ao primeiro "end" são as que controlam o posicionamento da janela, portanto é aí que mexeremos.

Para alterar a coordenada X da janela é bem fácil. Até agora, o código subtrai a largura da janela de escolhas da largura da janela do jogo (tela), deixando as escolhas no canto direito. Se dividirmos o valor dessa subtração por 2 a janela ficará no meio da tela, mas devemos nos atentar a deixar a subtração entre parênteses, para que ela aconteça primeiro. Dessa forma, a linha "self.x = Graphics.width - width" deverá ficar assim:

self.x = (Graphics.width - width) / 2


Agora quanto à coordenada Y, a condição verifica onde a janela de mensagens está para colocar a janela de escolhas próxima a ela. Não precisaremos disso, vez que a janela de escolhas ficará sempre centralizada, portanto podemos apagar do "if" ao primeiro "end" e no lugar montar uma equação similar à que fizemos anteriormente, porém para a variável "self.y":

self.y = (Graphics.width - width) / 2


Porém, "Graphics.width" é a variável que guarda a largura da tela, e como estamos calculando o Y da janela, precisamos da altura. Para obter a altura é simples, é só substituir o "Graphics.width" por "Graphics.height". A variável "width" se refere à largura da janela de mensagens e precisamos da altura para esse cálculo. Olhando nas linhas anteriores, vemos que a variável que guarda a altura da janela é a "height". Substituindo na equação para as variáveis corretas, teremos:

self.y = (Graphics.height - height) / 2


E por fim, mas não menos importante, copiamos a chamada da classe, mas não copiamos o fechamento dela, que ficava lá no final do código Window_ChoiceList. Então, na última linha do código, adicione "end".

Testa aí e vê se consegue desenvolver esse código e se o resultado é o que deseja. Caso dê algum erro ou não fique como queria, poste uma imagem do erro e/ou o seu código.

eu tentei mais deu erro então eu tive que arrumar o código e voltou a normal ,eu tentei
de novo e a janela mudou de local  só que foi para esquerda , poderia mandar uma imagem
para facilitar.

Posta como ficou teu código e te ajudo a consertar ele. Se conseguiu mover a janela para a esquerda é porque já fez alguma coisa correta nele.

eu apenas troquei width  por height eu basicamente troquei self.y = (Graphics.width - width) / 2 para
self.y = (Graphics.height - height) / 2 , não é mais fácil você liberar uma imagem  de como se faz ???
É claro se quiser

Coloque acima de main:

class Window_ChoiceList < Window_Command
  
  alias :m_upd_plcmnt :update_placement
  def update_placement
    m_upd_plcmnt
    self.x = Graphics.width * 0.5 - self.width * 0.5
    self.y = Graphics.height * 0.5 - self.height * 0.5
  end
  
end


Se quiser que a posição y seja automática como o padrão, remova a linha 7.

Citação de: King Gerar online 31/10/2018 às 22:13
Que bom que está encontrando um suporte que atenda o que precisa. Ao menos para mim, e acredito que para toda a comunidade, é gratificante ver o pessoal saciando dúvidas aqui, seguindo com seus projetos e melhorando suas habilidades.

Enfim, quanto à sua dúvida, o código que cuida da janela de escolhas é o Window_ChoiceList. Dentro desse código há o método update_placement (segue observando no seu projeto), que como o comentário acima dele fala, ele é responsável pela atualização da posição da janela

#--------------------------------------------------------------------------
  # * Atualização da posição da janela
  #--------------------------------------------------------------------------
  def update_placement
    self.width = [max_choice_width + 12, 96].max + padding * 2
    self.width = [width, Graphics.width].min
    self.height = fitting_height($game_message.choices.size)
    self.x = Graphics.width - width
    if @message_window.y >= Graphics.height / 2
      self.y = @message_window.y - height
    else
      self.y = @message_window.y + @message_window.height
    end
  end


A coordenada horizontal da janela é definida ali na linha "self.x = Graphics.width - width" onde o código fala que, o X da janela (self.x) é igual à largura da janela do jogo (Graphics.width) menos a largura da janela de escolhas (width) que está sendo calculada nas linhas acima. Isso faz com que a janela fica no canto direito da tela. Tu pode alterar aí para ir testando, substituindo essa linha por "self.x = 100", por exemplo, para tu ver como essa mudança impacta ali.
A posição vertical da janela é controlada por uma condição, pois varia conforme a posição da janela de mensagens. Tu também pode substituir essa condição, apagando tudo do "if" ao primeiro "end" e colocando "self.y = 250", por exemplo, no lugar. Mas sempre salve a parte que modificou em um canto, para depois voltar o código ao normal. O ideal é fazer essas mudanças em um código separado.

Tu já sabe onde queria deixar essa janela? Te ajudo a montar o código.




olá sobre o menu de escolhas eu fiquei vasculhando e lendo varias vezes  o seu comentário
até que descobri e ficou certinho do jeito que eu queria  muito obrigada não sei como agaredeçer
você valeu mesmo