Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Spawn dos inimigos

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Nat_2005
Novato
Novato
Reações: 0
Mensagens: 19
Contato:

Spawn dos inimigos

Mensagem por Nat_2005 » Dom Jun 21, 2020 3:34 am

É um jogo de uma nave que tem que destruir rochas indo para sua direção (180). Não quero ficar adicionando rochas lá na frete para todas irem para direção da nave, queria fazer um sistema spawn; o jogo cria as rochas la na frente em um eixo Y aleatório, mas as rochas não estão sendo criadas. Alguém sabe o que aconteceu?

Criei um sprite, transformei em objeto (obj_spawn), ele deve criar rochas la na frente. O código de step dele é esse:

Step
if(random(100) > 90){
instance_create_layer(random_range(sprite_get_width(spr_rocha),room_width - sprite_get_width(spr_rocha)), -sprite_get_height(spr_rocha), "Instances", obj_rocha);
}


Obs: Esse código está muito comprido no Game Maker, se alguém souber uma forma de colocar parte dele em outra linha, ou uma forma mais curta de fazer um spawn, eu aceito ;-;

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Spawn dos inimigos

Mensagem por Chuaschinai » Dom Jun 21, 2020 1:57 pm

Pelo que vi, criando deve estar, só não deve estar no enquadramento da tela, pois você esta fazendo ele ser aleatório no eixo X e não no eixo Y, você colocou para ele ficar negativo no eixo Y então ele esta provavelmente para fora da tela, deveria ser assim.

Código: Selecionar todos

var sprh = sprite_get_height(spr_rocha);
var ry = random_range(sprh, room_height-sprh);
if(random(100) > 90){
    instance_create_layer(0, ry, "Instances", obj_rocha);
}

Avatar do usuário
Nat_2005
Novato
Novato
Reações: 0
Mensagens: 19
Contato:

Re: Spawn dos inimigos

Mensagem por Nat_2005 » Dom Jun 21, 2020 3:12 pm

Top, começaram a spawnar, mas as rochas estão dando spawn na esquerda, e saindo da tela, quero que elas deem spawn na direita da tela, pois a nave esta na esquerda.
Acho que entendi o código (só acho). O room_height se refere a ambos os lados da room, mas e se eu me refiro ao lado direito? É isso que eu deveria mudar para as rochas darem spawn na direita?

Obs: Minha nave deu uma esticada com esse código

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Spawn dos inimigos

Mensagem por Chuaschinai » Dom Jun 21, 2020 3:25 pm

Sim o room_height você utiliza para o eixo Y e o room_width para o X
Para nascerem no lado direito basta adicionar o room_width no eixo X.

Código: Selecionar todos

instance_create_layer(room_width, ry, "Instances", obj_rocha);

Avatar do usuário
Nat_2005
Novato
Novato
Reações: 0
Mensagens: 19
Contato:

Re: Spawn dos inimigos

Mensagem por Nat_2005 » Dom Jun 21, 2020 4:12 pm

Top man, ta dando certinho. Vlw.
Tu sabe como resolver esse negocio da nave estar esticando? Isso já aconteceu comigo em outro jogo, e consegui resolver, mas nesse código ai, eu não sei não.

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Spawn dos inimigos

Mensagem por Chuaschinai » Dom Jun 21, 2020 4:51 pm

Deve ser o image_xscale e o image_yscale, só tentar mundar eles com o tamanho padrão que é 1.

Código: Selecionar todos

image_xscale = 1;
image_yscale = 1;
Qualquer coisa coloca eles no final de todo o código no step.

O problema também pode ser no Draw, você pode estar usando o draw_sprite_ext(), nele possui o image_xscale/y, talvez tenha alguma variável erra lá.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes