🤔 Para Refletir :
"No alto daquela ideia, plantei um projeto de jogo. A empolgação da ideia bate, o fracasso da ideia cheira."
- DanTheLion

Dúvida com sistema ABS

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

SC19 Masculino

Conde
Membro
Membro
Juntou-se
25 de Junho de 2015
Postagens
356
Bravecoins
289
Estou programando um sistema ABS pro meu projeto, e está tudo indo muito bem. Porém estou empacado numa parte que envolve coordenadas e forks.

Na hora que o inimigo, ou o herói forem realizar o ataque - isso acontece quando um encostra no outro e vice-versa, obviamente - eles teriam de estar cara a cara, portanto fiz uma condição assim:

dmLlGtk.png


Já que os lutadores não se atacam apenas na mesma coordenada, eu coloquei o Greather Than or Equal To ali. Mas o problema é que o ataque é realizado assim não em só uma casa de distância, mas todas que marcam essa coordenada (como uma linha).

tdjqYik.png


Eu já tentei fazer essa parte com Event Touch ao invés de Parallel Process, mas prejudica muito a fluidez do sistema e fica falho.
 
Seria algo tipo, quando o X do personagem for igual ao X do inimigo, o Y do inimigo deverá ser igual ao número natural da subtração do Y do personagem menos o Y do inimigo. Eu não tenho certeza se, por eventos, dá para transformar um número inteiro em um número natural, mas se servir comando por script, tu pode colocar assim na condição:

Código:
($game_variables[22] - $game_variables[24]).abs == 1

Para verificar se estão com a direção voltada a seu respectivo alvo, tu pode usar:

Código:
variável_com_direcao_do_personagem == (10 - variável_com_direcao_do_inimigo)
 
King Gerar comentou:
Seria algo tipo, quando o X do personagem for igual ao X do inimigo, o Y do inimigo deverá ser igual ao número natural da subtração do Y do personagem menos o Y do inimigo. Eu não tenho certeza se, por eventos, dá para transformar um número inteiro em um número natural, mas se servir comando por script, tu pode colocar assim na condição:

Código:
($game_variables[22] - $game_variables[24]).abs == 1

Para verificar se estão com a direção voltada a seu respectivo alvo, tu pode usar:

Código:
variável_com_direcao_do_personagem == (10 - variável_com_direcao_do_inimigo)

Rm2k não roda scripts tipo RGSS e JavaScript a não ser o Destiny, mas não quero usá-lo haha. Quero fazer tudo via eventos mesmo.
No mais, obrigado pela ajuda. Vou tentar umas gambiarras aqui.
 
Não é Javascript lol. Na verdade, nem me atentei à qual versão se passava o problema por a lógica ser a mesma, ao menos quanto às coordenadas.
Seria a subtração da posição Y do personagem pela posição Y do inimigo. Esse resultado seria positivo se o personagem estivesse abaixo do inimigo e negativo se estivesse acima. O .abs converteria esse valor, independente do sinal, em um valor natural, para não precisar fazer a mesma ação duas vezes (acima e abaixo). E sendo igual a 1 significaria que os objetos em questão estariam a um tile de distância entre si.
A conta me trava mesmo na parte da conversão. Certamente algum cálculo o faz, mas não to lembrando de nenhum agora, rápido e curto.
 
Estado
Tópico fechado. Não é possível fazer postagens nela.
Voltar
Topo Inferior