[RMVXA] (Resolvido!) Setar variáveis de posição X e Y automaticamente

4 Respostas   127 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Van

  • *
  • Posts: 133
  • Ouros: 82
  • Não digas nada: Sê!
Tópico criado em: 14/02/2017 às 20:32 - Última modificação por Corvo em 19/06/2018 às 16:44

Boa noite, gente

To começando agora a fuçar com ruby e tava me perguntando se tem alguma forma de programar pra que todos os eventos da tela tenham suas variáveis X e Y setadas automaticamente, assim que você aparece no mapa.
Imagino as mesmas tantas variáveis seriam substituídas a cada mapa, aí eu separo umas 20 ou 30, podendo setar 10 ou 15 eventos.
Blog com meus textos, poemas e inspirações.
Basicamente onde eu devolvo pra vida todos os tapas que ela me dá.


MayLeone

  • Veterano
  • *
  • Posts: 513
  • Ouros: 1405
  • CRM
  • Medalhas Vencedor CRM Awards - Melhor Eventer Membros que se destacaram no Mega-Evento de Reconstrução
Resposta 1: 14/02/2017 às 20:44

Eu uso nas condições na opção 'script' $game_player.x ou $game_player.y pras coordenadas do main player, e $game_map.events[n].x e $game_map.events[n].y pro evento, sendo 'n' a ID dele.
Assim não precisa criar duzentas vars que armazenam as coordenadas deles, basta usar os comparadores na condição.
Por exemplo, verificar se a coordenada x do player é maior que a do evento 1:
$game_player.x > $game_map.events[1].x

 :será:

Van

  • *
  • Posts: 133
  • Ouros: 82
  • Não digas nada: Sê!
Resposta 2: 14/02/2017 às 21:14 - Última modificação por Van em 14/02/2017 às 21:21

aaah, achei interessante, não sabia que o game_map definia isso
no caso, se eu quiser checar se dois eventos tão alinhados pelo eixo Y, eu posso usar  $game_map.events[1].y = $game_map.events[4].y  na função "script" da condição?

Edit: no caso eu testei com > e < e funcionou, mas com = não. Alguma ideia?
Edit2: ok, == é pra comparar, = é pra setar. Tudo resolvido.

@MayLeone, não tenho como te agradecer! Valeu mesmo!
Blog com meus textos, poemas e inspirações.
Basicamente onde eu devolvo pra vida todos os tapas que ela me dá.


Gabriel

Resposta 3: 14/02/2017 às 21:31

Quase isso, mas não.

Os sinais =, +, -, * e / são usados para fazer operações, enquanto os ==, !=, >=, <=,  > e < são usados para fazer conparações entre valores.
Exemplo para operações:
Código: [Selecionar]
x + y #A soma do valor de X com o valor de Y
x - y #A subtração do valor de X com o valor de Y
x * y #A multiplicação do valor de X com o valor de Y
x / y #A divisão  do valor de X com o valor de Y
Exemplo para comparações:
Código: [Selecionar]
se x == y #Se o valor de X for igual o valor de Y
se x != y #Se o valor de X for diferente que o valor de Y
se x >= y #Se o valor de X for maior ou igual ao valor de Y
se x <= y #Se o valor de X for menor ou igual ao valor de Y
se x > y #Se o valor de X for maior que o valor de Y
se x < y #Se o valor de X for menor que o valor de Y

No caso, da forma como você escreveu, você estaria fazendo uma operação com os dois valores fornecidos ($game_map.events[1].y e $game_map.events[4].y).
Basta seguir o exemplo acima que não haverá erro.

Exemplo de aplicação em uma condição (por evento):
Código: [Selecionar]
$game_map.events[1].y == $game_map.events[4].y #A condição só prosseguirá se os valores forem iguais.


Van

  • *
  • Posts: 133
  • Ouros: 82
  • Não digas nada: Sê!
Resposta 4: 18/02/2017 às 23:24

@Skyloftian, deixarei seus exemplos anotados, são bons demais
Obrigado mesmo!
Blog com meus textos, poemas e inspirações.
Basicamente onde eu devolvo pra vida todos os tapas que ela me dá.