Conectar-se
Quem está conectado
23 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 23 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 17/12/2008
Número de Mensagens : 49
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   :
   :
   :
Ver perfil do usuário

Fazer com que o Sprite atire

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
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 11

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Fazer com que o Sprite atire

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".
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 25/04/2008
Número de Mensagens : 318
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://brasilgame.forumbrasil.net

Re: Fazer com que o Sprite atire

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
avatar
Data de inscrição : 17/12/2008
Número de Mensagens : 49
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Fazer com que o Sprite atire

em Qua 07 Jan 2009, 18:25
Valeu pessoal!!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum