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

Colisão entre eventos[pisos]

Iniciado por SoyeR, 05/01/2019 às 10:52

05/01/2019 às 10:52 Última edição: 05/01/2019 às 12:54 por Vash
Estou tentando fazer um puzzle onde o personagem precisa mover os pisos para formar uma imagem. a movimentação já ta pronta porem os eventos acabam entrando um dentro do outro impossibilitando a conclusão do puzzle.

Então como fazer para os pisos se movimentarem sem entrarem "dentro" do outro evento "piso".





São dois eventos? Nas prioridades eles tem de ser iguais.

serão mais de 2 mas na prioridade todos estão abaixo do personagem.





Você quer uma colisão entre os eventos de piso ou uma colisão com o jogador e o piso?

Se quer que o jogador passe por cima do piso coloque através.

Em uma are 4x3 existem 11 pisos o jogador vai pisar no piso que quer mover porem só tem 1 espaço livre sempre que ele mexe um piso outro espaço fica livre porem como não há colisão entre os pisos o jogador ta conseguindo mover um piso para dentro do outro





Qual o evento que se move quando o jogador clima no piso? É o piso ? Então coloca uma swit para piso igual aos personagem, em todos os eventos de piso.

Se for igual ao personagem o personagem não consegue pisar nos pisos.





Ao pisar em um piso tu pode guardar as coordenadas X e Y de destino (para onde ele será movido) dele e utilizar elas no comando de evento Informação de Posição para verificar o ID do evento que há nessas coordenadas. Se esse comando retornar um valor 0, significa que não há evento naquela coordenada, portanto tu pode executar o movimento, do contrário, já existe um evento lá.

Citação de: SoyeR online 05/01/2019 às 11:30
Se for igual ao personagem o personagem não consegue pisar nos pisos.
Aba1 = abaixo do personagem
Aba2= interruptor ligado, igual a os personagens

Gerar a ideia é boa tava tentando fazer isso aqui mas o que vai impedir o jogador de pisar no piso mais distante e mover para o lugar livre?

Hategum com isso só consigo alterar o piso que o jogador está em cima mas os outros vão continuar abaixo do jogador, mas vou tentar um modo usando as abas.

to tentando fazer isso aqui:






Citação de: SoyeR online 05/01/2019 às 11:40
Gerar a ideia é boa tava tentando fazer isso aqui mas o que vai impedir o jogador de pisar no piso mais distante e mover para o lugar livre?[...]
Justamente o fato de ele estar distante. O jogador pisou em determinado tile, tu vai verificar se acima dele está livre, se não estiver, verifica a direita, a esquerda e abaixo. Se nenhuma direção estiver livre, o tile não move, se alguma estiver, ele move na que está e para de verificar as próximas direções. E o bom é que tu só programa isso uma vez, e pode colar essa programação em todos os outros tiles.

Consegui! valeu gerar fiz as verificações e dai ele só se move se tiver livre  :wow: :wow:





Eu não entendi, como assim verifica?

Citação de: hategum rpg online 05/01/2019 às 12:19
Eu não entendi, como assim verifica?
Basicamente, o que acontecerá é que a programação orientada ao objeto (tile) fará um "scan" para analisar as possibilidades de movimento do tile... Ele verificará nos 4 sentidos (cima, baixo, esquerda e direita)... caso uma delas esteja livre significa dizer que o jogador pisou ali e então o tile se mexe para ocupar o lugar livre... caso não esteja, significa que o jogador não pisou ali e o tile não se move...
de maneira simples é isso... agora como fazer isso, não sei ao certo  :coffee:
Em breve:

Exatamente como mencionado acima eu verifico a posição do "piso" e verifico em cima, baixo, esquerda e direita[Coordenadas do Mapa X e Y] Exemplo: adiciono +1 X para verificar se a direita está livre. se estiver ele move e finaliza o evento.
Mas precisei adicionar eventos ao redor da area pq se não os tiles das pontas não mechem ou saem da area designada.