Página 1 de 1
[GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 12:21 am
por Muquirana
Estou participando da ludum dare e eu dei uma travada na implementação em uma mecanica do meu jogo, vamos la:
Tenho essa parede e gostaria que a cada 5 ou 10 segundos ela descesse verticalmente, tentei usar alarm e o random_range(5,10) para os segundos, mas ela não descia, então usei o vspeed e ela desceu de uma vez, e também gostaria de saber como fazer ela acompanhar o player ( como se fosse uma hud ) para dar a impressão que ela está se fechando.
Obrigado.
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 9:07 am
por None
Eu não sei como você está implementado a parede, mas já que você disse que o vspeed funcionou, use dois alarmes, um deles aplica valor ao vspeed e o outro será o vspeed.
Por exemplo
Alarme 0
Vspeed = 2;
Alarm1 = room_speed/4;
Alarme 1
Vspeed = 0;
Alarm0 = room_speed * choose(5,10);
Desse jeito ele desce um pouco e fica 5 ou 10 segundos até descer de novo.
Eu particularmente não usaria este método, mas a única coisa que eu sei sobre a sua parede é que o vspeed funcionou uma.vez para isso.
Em relação a hud, é a mesma coisa, eu não sei como você está implementado a parede, provavelmente (se você quer como uma hud) você deve ter que desenhar outra parede no draw gui.
Já se for apenas acompanhar o player fisicamente, é só usar o X do player como base, criar um offset (distância, margem) para o player e definir o X dela com base no do player e do offset.
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 10:44 am
por Muquirana
None escreveu:Eu não sei como você está implementado a parede, mas já que você disse que o vspeed funcionou, use dois alarmes, um deles aplica valor ao vspeed e o outro será o vspeed.
Por exemplo
Alarme 0
Vspeed = 2;
Alarm1 = room_speed/4;
Alarme 1
Vspeed = 0;
Alarm0 = room_speed * choose(5,10);
Desse jeito ele desce um pouco e fica 5 ou 10 segundos até descer de novo.
Eu particularmente não usaria este método, mas a única coisa que eu sei sobre a sua parede é que o vspeed funcionou uma.vez para isso.
Em relação a hud, é a mesma coisa, eu não sei como você está implementado a parede, provavelmente (se você quer como uma hud) você deve ter que desenhar outra parede no draw gui.
Já se for apenas acompanhar o player fisicamente, é só usar o X do player como base, criar um offset (distância, margem) para o player e definir o X dela com base no do player e do offset.
Tentei implementar e agora ela está subindo e de uma vez só sem esperar os segundos.
E sobre ela acompanhar o player, seria fisicamente mesmo durante o level, dando a impressão do level todo estar sendo “ imprensado “
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 11:50 am
por None
Você poderia colocar o código que você está usando para ver o que está sendo feito?
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 11:58 am
por Muquirana
None escreveu:Você poderia colocar o código que você está usando para ver o que está sendo feito?
Ja ia dar um edit na mensagem anterior, bom consegui um resultado, a parede agora está descendo ( de uma vez sem esperar o tempo ), então vamos la:
alarm 0 event:
vspeed = 2;
alarm[1] = room_speed/4;
alarm 1 event:
vspeed = 0;
alarm[0] = room_speed * random_range(5,10);
step event:
vspeed = -alarm[1];
( era pra ser um gif )
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 12:27 pm
por None
Então você quer que ela fique descendo o tempo todo?
O que você quer é que ela aumente a velocidade caindo ou algo do tipo?
O seu step event está sobrescrevendo ambos os alarmes.
Se você quer a parede caindo sempre, basta dar um valor baixo para o vspeed dela e conforme o alarme é ativo você aumentar um pouco o valor do vspeed, nem precisa de dois alarmes neste caso.
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 12:33 pm
por Muquirana
None escreveu:Então você quer que ela fique descendo o tempo todo?
O que você quer é que ela aumente a velocidade caindo ou algo do tipo?
O seu step event está sobrescrevendo ambos os alarmes.
Se você quer a parede caindo sempre, basta dar um valor baixo para o vspeed dela e conforme o alarme é ativo você aumentar um pouco o valor do vspeed, nem precisa de dois alarmes neste caso.
Quero q ela desça por exemplo : o jogador está andando pelo level, passa 5 segundos a parede desce 2 pixels, passa mais 5 segundos, ela desce +2 e assim vai, e caso o player demore de passar o level ele morre pela parede, e como as rooms terão tamanhos diferentes a parede acompanharia o player dando a impressão de ser a room toda.
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 12:44 pm
por None
Neste caso é bem simples.
Start event
alarm[0] = room_speed * irandom_range(2, 4);
alarm[0] event
Y += 2;
alarm[0] = room_speed * irandom_range(2, 4);
Pronto, desta forma a cada 2-4 segundos a parede desce 2 pixels.
Isso funciona se a sua parede for um objeto único, se forem vários objetos você precisa evitar o random range individual, aí ou você usa um valor fixo de tempo ou usa um controlador para definir o tempo do alarme deles.
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 1:45 pm
por Muquirana
None escreveu:Neste caso é bem simples.
Start event
alarm[0] = room_speed * irandom_range(2, 4);
alarm[0] event
Y += 2;
alarm[0] = room_speed * irandom_range(2, 4);
Pronto, desta forma a cada 2-4 segundos a parede desce 2 pixels.
Isso funciona se a sua parede for um objeto único, se forem vários objetos você precisa evitar o random range individual, aí ou você usa um valor fixo de tempo ou usa um controlador para definir o tempo do alarme deles.
Cara funcionou perfeitamente, você não tem ideia do alivio que eu to agora, consegui fazer essa paredona seguir o player também, obrigado de verdade, vou conseguir entregar a tempo
Re: [GMS2][Duvida] Objeto acompanhar o player pela view port e o mesmo objeto descer a cada 10 segundos
Enviado: Seg Ago 13, 2018 1:48 pm
por None
Fico feliz por ter sido útil :)
Posta o projeto aqui depois!