Página 1 de 1

[GAME MAKER] instance_change() dúvida

Enviado: Qua Jun 13, 2018 8:37 pm
por Foxy Of Jungle
Eu tenho 2 objetos, quero que o objeto 1 se transforme no objeto 2 e o objeto 2 se transforme no objeto 1 ao mesmo tempo, parece confuso mas esta imagem ajudará:

Imagem

E depois de 10 segundos essas instâncias voltem a ser elas mesmas, (não quero usar image_index)

É tipo o Super Mario World onde tem aquele Pow [P] que quando pisa transforma as moedas em rochas e rochas em moedas.


Eu tentei isto mas não funciona corretamente (ao ler da pra entender porquê)

Código: Selecionar todos

with(obj_block_rock) {instance_change(obj_coin,1)}
with(obj_coin) {instance_change(obj_block_rock,1)}
alarm[11]=10*room_speed //10 sec
e no alarm[11]

Código: Selecionar todos

with(obj_block_rock) {instance_change(obj_coin,1)}
with(obj_coin) {instance_change(obj_block_rock,1)}
Apenas um dos objetos se transforma no outro e fica "bugado"

Algúem sabe alguma alternativa?

Re: [GAME MAKER] instance_change() dúvida

Enviado: Qua Jun 13, 2018 11:09 pm
por None
Faz tudo dentro do objeto Control e usar o instance destroy.

Não precisa do with.
Porém ha um problema neste modelo, você precisa avisar quem vai mudar, não sei se você tem dois objetos diferentes para a pedra, mas se não tiver você precisar informar que está é a pedra que vira moeda e visse versa.
Um jeito é criar uma variável chamada virapedra e viramoeda por exemplo, aí no Destroy event do objeto ele chega, se sua variável de virar for true ele então cria uma pedra/moeda em seu lugar, se for false ele não faz nada.
E para garantir que quando o player pegue a moeda, está não vire pedra você faz no momento de colisão com o player o valor da variável da moeda mudar para false, mesmo esquema no evento em que o player de uma cabeçada na pedra.

Desculpe pelos erros, estou no celular...

Re: [GAME MAKER] instance_change() dúvida

Enviado: Sex Jun 15, 2018 10:33 pm
por Foxy Of Jungle
Obrigado pela resposta None, todavia eu já havia pensado nisso, é que eu não queria colocar códigos no Destroy da moeda ou da rocha, queria transformá-las só no Control, mas acho que a única alternativa é usar as variáveis no Destroy mesmo.
OBS: Eu quero transformar todos as moedas em rochas e todas rochas em moedas.

VLW!