[Resolvido][Alarms]Tiro a cada 20 milisegundos.

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

Resolvido [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por BrunoMotaSantos em Dom 06 Out 2013, 01:13

Bom,criei um jogo simples de avião para testar uns comandos novos que aprendi,coloquei uma imagem de um avião e uma imagem de tiro. Bom criei o: obj_player e obj_bala,no evento create do obj_player coloquei: velocidade = 6 e no step do obj_player fiz a movimentação com o seguinte código:
Código:
//Movimentação Vertical
//Movimentação para Cima
if keyboard_check(vk_up)
{
y -= velocidade
image_angle=360
}
else
//Movimentação para baixo
if keyboard_check(vk_down)
{
y += velocidade
image_angle=180
}
else
//Movimentação Horizontal
//Movimentação para Esquerda
if keyboard_check(vk_left)
{
x -=velocidade
image_angle=90
}
else
//Movimentação para Direita
if keyboard_check(vk_right)
{
x += velocidade
image_angle=270
}

//Tiro Horizontal
if keyboard_check(vk_space)
{
if image_angle=270
{
with(instance_create(x+20,y,obj_bala))
{
motion_set(360,20)
}
}
}


if keyboard_check(vk_space)
{
if image_angle=90
{
with(instance_create(x-20,y,obj_bala))
{
motion_set(180,20)
}
}
}


//Tiro Vertical
if keyboard_check(vk_space)
{
if image_angle=360
{
with(instance_create(x,y-20,obj_bala))
{
motion_set(90,20)
}
}
}

if keyboard_check(vk_space)
{
if image_angle=180
{
with(instance_create(x,y+20,obj_bala))
{
motion_set(270,20)
}
}
}
Funcionou muito bem,o código de movimentação,acontece são muitas balas são disparadas,e queria que somente fosse permitido uma bala a cada 20 milissegundos ,eu vi o tutorial do reddragon mais mesmo assim não entendi a parte sobre Alarms,por isso podem me dizer como eu faço isso?


Última edição por BrunoMotaSantos em Dom 06 Out 2013, 15:16, editado 1 vez(es)

BrunoMotaSantos

Número de Mensagens : 21
Idade : 15
Data de inscrição : 28/09/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por PedroSilva em Dom 06 Out 2013, 02:00

No objeto do player faça isso:

CREATE
Código:

atirar = true
No STEP coloca isso para todas direção, arrume o angulo e adireção da bala a ser criada.:
Código:

if keyboard_check(vk_space)
{
if image_angle=180
{
alarm[0] = 30//30 é 1 segundo
atirar = false
with(instance_create(x,y+20,obj_bala))
{
motion_set(270,20)
}
}
}
Agora no ALARM 0:
Código:

atirar = true
flw

PedroSilva

Número de Mensagens : 190
Idade : 18
Data de inscrição : 19/09/2013
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por Willy em Dom 06 Out 2013, 02:21

Te garanto que depois que ler o [Tutorial] - Aprendendo a usar Alarms!, você vai resolver este problema facilmente...

Boa leitura! blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por BrunoMotaSantos em Dom 06 Out 2013, 09:08

PedroSilva escreveu:No objeto do player faça isso:

CREATE
Código:

atirar = true
No STEP coloca isso para todas direção, arrume o angulo e adireção da bala a ser criada.:
Código:

if keyboard_check(vk_space)
{
if image_angle=180
{
alarm[0] = 30//30 é 1 segundo
atirar = false
with(instance_create(x,y+20,obj_bala))
{
motion_set(270,20)
}
}
}
Agora no ALARM 0:
Código:

atirar = true
flw
Cara não funcionou aqui as balas continuam na mesma coisa.

BrunoMotaSantos

Número de Mensagens : 21
Idade : 15
Data de inscrição : 28/09/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por tomxope em Dom 06 Out 2013, 10:41

quando nao tem cão caça-se com gato: tente o seguinte: crie um obj_control. no obj_control cria uma variavel "disparo" valor zero. marque invisivel põe na room. vou explicar em dnd, si sabes pões em codigo:
na tecla que usas para disparar coloque:
"test variable: aplique a object obj_control
crie o alarme0=20
variable: disparo
valor: 0
operation: equal to"
arraste o icon set variable e: aplique a object obj_control, variable: disparo
valor:1 dessa vez marque relative. (explicando: o valor da variavel disparo é 1, si você clicar no botão que dispara nao vai disparar, poque so dispara quando a variavel disparo for=0)
arraste o icone "else"
não fazer nada, ou tocar só o um som de desparo.
no envento alarme0: e arraste o icon set variable e: aplique a object obj_control, variable: disparo
valor:-1. marque relative(o valor da variavel disparo volta a ser 0 e si clicares na tecla de disparo, vai disparar). cria a bala.
até conseguires o cão, podes usar o gato que vai funcionar para a tua pergunta.
ajusta o tempo do alarme si veres que as balas estao a sair muito rapido ou lento.

tomxope

Número de Mensagens : 48
Data de inscrição : 14/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por BrunoMotaSantos em Dom 06 Out 2013, 13:52

tomxope escreveu:quando nao tem cão caça-se com gato: tente o seguinte: crie um obj_control. no obj_control cria uma variavel "disparo" valor zero. marque invisivel põe na room. vou explicar em dnd, si sabes pões em codigo:
na tecla que usas para disparar coloque:
"test variable: aplique a object obj_control
crie o alarme0=20
variable: disparo
valor: 0
operation: equal to"
arraste o icon set variable e: aplique a object obj_control, variable: disparo
valor:1 dessa vez marque relative. (explicando: o valor da variavel disparo é 1, si você clicar no botão que dispara nao vai disparar, poque so dispara quando a variavel disparo for=0)
arraste o icone "else"
não fazer nada, ou tocar só o um som de desparo.
no envento alarme0: e arraste o icon set variable e: aplique a object obj_control, variable: disparo
valor:-1. marque relative(o valor da variavel disparo volta a ser 0 e si clicares na tecla de disparo, vai disparar). cria a bala.
até conseguires o cão, podes usar o gato que vai funcionar para a tua pergunta.
ajusta o tempo do alarme si veres que as balas estao a sair muito rapido ou lento.
Nem com o google tradutor consegui entender o que você escreveu..Se for ajudar formate bem o texto para que eu possa entender o que você quis dizer..

BrunoMotaSantos

Número de Mensagens : 21
Idade : 15
Data de inscrição : 28/09/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por PedroSilva em Dom 06 Out 2013, 14:28

O cara foi mal esqueci de um negócio no code:
Código:

if keyboard_check(vk_space) and atirar = true
{
if image_angle=180
{
alarm[0] = 60//30 é 1 segundo
atirar = false
with(instance_create(x,y+20,obj_bala))
{
motion_set(270,20)
}
}
}
Tenta agora.

PedroSilva

Número de Mensagens : 190
Idade : 18
Data de inscrição : 19/09/2013
Reputação : 22
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por BrunoMotaSantos em Dom 06 Out 2013, 15:15

PedroSilva escreveu:O cara foi mal esqueci de um negócio no code:
Código:

if keyboard_check(vk_space) and atirar = true
{
if image_angle=180
{
alarm[0] = 60//30 é 1 segundo
atirar = false
with(instance_create(x,y+20,obj_bala))
{
motion_set(270,20)
}
}
}
Tenta agora.
Cara era isso mesmo,obrigado!




Tópico trancado.

BrunoMotaSantos

Número de Mensagens : 21
Idade : 15
Data de inscrição : 28/09/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido][Alarms]Tiro a cada 20 milisegundos.

Mensagem por Conteúdo patrocinado Hoje à(s) 06:10


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