Fazer com que o Sprite atire

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Fazer com que o Sprite atire

Mensagem por guga em Qua 07 Jan 2009, 09:21

Gostaria de saber a forma mais simples de fazer com que meu sprite atire ao virar para a direita e tbm para a esquerda. Como faço tbm para posicionar a saída do tiro a partir da arma? Orbigado affraid

guga

Número de Mensagens : 49
Idade : 34
Data de inscrição : 17/12/2008
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Fazer com que o Sprite atire

Mensagem por Igor KinGamer em Qua 07 Jan 2009, 10:59

Você quer dizer atirar para a esquerda ou direita dependendo da direção? Se sim, faz assim:

Primeiro cria uma variável pra saber se ele tá virado pra esquerda ou pra direita:

No evento create:

direita = true;

No evento de apertar para a direita:

direita = true;

No evento de apertar para a esquerda:

direita = false;

Step:

//Isso muda o sprite de acordo com o lado
if direita == true
{
sprite_index = spr_Direita;
}
else
{
sprite_index = spr_Esquerda;
}

Agora, no evento de apertar para atirar (o botão que vc escolheu, como espaço):

if direita == true
{
tiro = instance_create(x, y, objeto_tiro)
tiro.hspeed = 5;
}
else
{
tiro = instance_create(x, y, objeto_tiro)
tiro.hspeed = -5;
}

Para o tiro sair na altura da arma do carinha, você tem que aumentar o valor de y em "instance_create(x, y, objeto_tiro)".

Para descobrir a altura certa da arma, entra no editor de sprites, aumenta bem a imagem e coloca o mouse em cima do ponto que está a arma. Na parte de baixo da janela, vai aparecer dois números, que são o x e o y.
Nas duas direções (direita e esquerda) o y vai ser o mesmo, mas o x vai mudar (provavelmente), então você coloca alguma coisa assim:

if direita == true
{
tiro = instance_create(x+27, y+12, objeto_tiro)
tiro.hspeed = 5;
}
else
{
tiro = instance_create(x+5, y+12, objeto_tiro)
tiro.hspeed = -5;
}

Isso vai funcionar se a origin do sprite for (0, 0).

Se você não sabe o que é origin:



O padrão é (0, 0), se você clica ali no botão "center", a origin vai pro centro do sprite. Origin é praticamente a parte pela qual o objeto é "segurado".

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Fazer com que o Sprite atire

Mensagem por rodrigo1434 em Qua 07 Jan 2009, 11:03

Vc pode usar um sprite para a direita andando, ooutro da direita atirando
dai vc centraliza eles, e usa a variavel image_xscale que muda a scale horizontal dos sprites
fazendo virar para a esquerda e para a direita, crie uma variavel velo com o valor 4
essa é sua velocidade, e a variavel pode que é se ele pode ou não pode atirar pode=1, agora no step ou no evento any key

Código:
if keyboard_check(vk_right){
image_xscale=1
if place_free(x+velo,y)
x+=velo}


if keyboard_check(vk_left){
image_xscale=-1
if place_free(x-velo,y)
x-=velo}


if keyboard_check(vk_space) and pode=1{ // só atira se poder
pode=0
alarm[0]=5

with(instance_create(x+5,y)){  // cria a bala conforme os lados
if image_xscale=1
motion_set(0,5)
else
motion_set(180,5)}     
sound_play(snd_tiro)  // vc toca um som de tiro
}

agora no evento alarm[0]
pode=1

rodrigo1434

Ranking : Nota C
Número de Mensagens : 318
Idade : 23
Data de inscrição : 25/04/2008
Notas recebidas : C
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://brasilgame.forumbrasil.net

Voltar ao Topo Ir em baixo

Re: Fazer com que o Sprite atire

Mensagem por guga em Qua 07 Jan 2009, 18:25

Valeu pessoal!!

guga

Número de Mensagens : 49
Idade : 34
Data de inscrição : 17/12/2008
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Fazer com que o Sprite atire

Mensagem por Conteúdo patrocinado Hoje à(s) 15:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum