Entrar
Últimos assuntos
» Colisões não funcionandopor RastaMaan Ontem à(s) 19:49
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
Fazer com que o Sprite atire
3 participantes
Página 1 de 1
Fazer com que o Sprite atire
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
guga- Data de inscrição : 17/12/2008
Reputação : 1
Número de Mensagens : 49
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazer com que o Sprite atire
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".
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- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Fazer com que o Sprite atire
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
agora no evento alarm[0]
pode=1
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
Re: Fazer com que o Sprite atire
Valeu pessoal!!
guga- Data de inscrição : 17/12/2008
Reputação : 1
Número de Mensagens : 49
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos