[RESOLVI]Limite de tiros

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

Resolvido [RESOLVI]Limite de tiros

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 15:02

Estou fazendo um jogo estilo "Battlecity" e não estou conseguindo colocar um limite de tiros...
Olhe so o que coloquei no meu player(O player 2)

CREATE:

Código:

global.tiros_2=2//Tiros que se tem no momento

STEP
Código:

//Criar tiro se apertar spaço mais cima
if keyboard_check_pressed(vk_space)
and
keyboard_check_pressed(vk_up)
instance_create(player_2.x,player_2.y,obj_tiro_cim_2)
if instance_create(player_2.x,player_2.y,obj_tiro_cim_2)
global.tiros_2 -=1

//Criar tiro se apertar spaço mais esquerdo
if keyboard_check_pressed(vk_space)
and
keyboard_check_pressed(vk_left)
instance_create(player_2.x,player_2.y,obj_tiro_esq_2)
instance_create(player_2.x,player_2.y,obj_tiro_esq_2)
global.tiros_2 -=1

//Criar tiro se apertar spaço mais direito
if keyboard_check_pressed(vk_space)
and
keyboard_check_pressed(vk_right)
instance_create(player_2.x,player_2.y,obj_tiro_dir_2)
if instance_create(player_2.x,player_2.y,obj_tiro_dir_2)
global.tiros_2 -=1

//Criar tiro se apertar spaço mas baixo
if keyboard_check_pressed(vk_space)
and
keyboard_check_pressed(vk_down)
instance_create(player_2.x,player_2.y,obj_tiro_baix_2)
instance_create(player_2.x,player_2.y,obj_tiro_baix_2)
global.tiros_2 -=1

//Desativar objetos(tiro)quando não houver mais tiros
if global.tiros_2 =0 instance_deactivate_all(obj_tiro_dir_2)
if global.tiros_2 =0 instance_deactivate_all(obj_tiro_cim_2)
if global.tiros_2 =0 instance_deactivate_all(obj_tiro_baix_2)
if global.tiros_2 =0 instance_deactivate_all(obj_tiro_esq_2)

Quando eu coloco isto o player_2 n chega nem a atirar no inicio.
O globa.tiros_2 é por que é o player 2 ok!?

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por fonetico em Seg 30 Ago 2010, 15:07

Acredito que o problema está em:

keyboard_check_pressed...

Como você sabe, esse código só é executado no momento que batemos na tecla e não mas. Por ser um período curto, é extremamente difícil apertamos as duas teclas exatamente na hora. Tente mudar esse código por outro, ou, para não ficar criando balas infinitivamente, usar algo parecido com:

if keyboard_check(vk_space) and keyboard_check_pressed(vk_down)
{
//seu codigo
}


Com esse código, somente enquanto estivermos pressionando espaço, e apertamos alguma tecla, ele irá atirá, e não só no momento que pressionarmos as teclas.


Última edição por souzalucasjose em Seg 30 Ago 2010, 15:08, editado 1 vez(es)

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVI]Limite de tiros

Mensagem por †Ceifador em Seg 30 Ago 2010, 15:08

Outro detalhe, se não checar o número de tiros restantes de que adianta decrescer a variável? Adicione outro if ex: if tiros > 0 { seucodigo; }

†Ceifador

Número de Mensagens : 154
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 15:10

souzalucasjose escreveu:Acredito que o problema está em:

keyboard_check_pressed...

Como você sabe, esse código só é executado no momento que batemos na tecla e não mas. Por ser um período curto, é extremamente difícil apertamos as duas teclas exatamente na hora. Tente mudar esse código por outro, ou, para não ficar criando balas infinitivamente, usar algo parecido com:

if keyboard_check(vk_space) and keyboard_check_pressed(vk_down)
{
//seu codigo
}


Com esse código, somente enquanto estivermos pressionando espaço, e apertamos alguma tecla, ele irá atirá, e não só no momento que pressionarmos as teclas.

Souza... Eu tentei fazer o que vc pediu mas mesmo assim não deu.

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por fonetico em Seg 30 Ago 2010, 15:15

Marlon_Locci escreveu:
souzalucasjose escreveu:Acredito que o problema está em:

keyboard_check_pressed...

Como você sabe, esse código só é executado no momento que batemos na tecla e não mas. Por ser um período curto, é extremamente difícil apertamos as duas teclas exatamente na hora. Tente mudar esse código por outro, ou, para não ficar criando balas infinitivamente, usar algo parecido com:

if keyboard_check(vk_space) and keyboard_check_pressed(vk_down)
{
//seu codigo
}


Com esse código, somente enquanto estivermos pressionando espaço, e apertamos alguma tecla, ele irá atirá, e não só no momento que pressionarmos as teclas.

Souza... Eu tentei fazer o que vc pediu mas mesmo assim não deu.

Não? oO Por acaso você colocou algum código de colisão do player com a bala que a faça se destruir?

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVI]Limite de tiros

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 15:27

fonetico escreveu:
Marlon_Locci escreveu:
souzalucasjose escreveu:Acredito que o problema está em:

keyboard_check_pressed...

Como você sabe, esse código só é executado no momento que batemos na tecla e não mas. Por ser um período curto, é extremamente difícil apertamos as duas teclas exatamente na hora. Tente mudar esse código por outro, ou, para não ficar criando balas infinitivamente, usar algo parecido com:

if keyboard_check(vk_space) and keyboard_check_pressed(vk_down)
{
//seu codigo
}


Com esse código, somente enquanto estivermos pressionando espaço, e apertamos alguma tecla, ele irá atirá, e não só no momento que pressionarmos as teclas.

Souza... Eu tentei fazer o que vc pediu mas mesmo assim não deu.

Não? oO Por acaso você colocou algum código de colisão do player com a bala que a faça se destruir?

Não por exemplo:
Eu fiz 8 balas sendo 4 para o player 1 e as outras para o player 2
entao eu botei que quando a bala do player 1 colidir com o player 2 ele se destrua entendeu?
Ou seja as balas n estao sendo destruidas pelo proprio proprio player

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 15:50

Desculpe o post-duplo mais agora eu estou com outro problema olhe so o codigo no momento:

STEP:

Código:


if global.tiros_2 <=0 instance_deactivate_object(obj_tiro_dir_2)
if global.tiros_2 <=0 instance_deactivate_object(obj_tiro_cim_2)
if global.tiros_2 <=0 instance_deactivate_object(obj_tiro_baix_2)
if global.tiros_2 <=0 instance_deactivate_object(obj_tiro_esq_2)

if global.tiros_2 =0 instance_deactivate_object(obj_tiro_dir_2)
if global.tiros_2 =0 instance_deactivate_object(obj_tiro_cim_2)
if global.tiros_2 =0 instance_deactivate_object(obj_tiro_baix_2)
if global.tiros_2 =0 instance_deactivate_object(obj_tiro_esq_2)

if global.tiros_2>=0
if keyboard_check(vk_space)
and
keyboard_check(vk_up)
instance_create(player_2.x,player_2.y,obj_tiro_cim_2*1)

//Criar tiro se apertar spaço mais esquerdo
if keyboard_check(vk_space)
and
keyboard_check(vk_left)
instance_create(player_2.x,player_2.y,obj_tiro_esq_2*1)

//Criar tiro se apertar spaço mais direito
if keyboard_check(vk_space)
and
keyboard_check(vk_right)
instance_create(player_2.x,player_2.y,obj_tiro_dir_2*1)

//Criar tiro se apertar spaço mas baixo
if keyboard_check(vk_space)
and
keyboard_check(vk_down)
instance_create(player_2.x,player_2.y,obj_tiro_baix_2*1)

if global.tiros_2 >=0 instance_activate_object(obj_tiro_dir_2)
if global.tiros_2 >=0 instance_activate_object(obj_tiro_cim_2)
if global.tiros_2 >=0 instance_activate_object(obj_tiro_baix_2)
if global.tiros_2 >=0 instance_activate_object(obj_tiro_esq_2)

Agora quando o tiro é ativado ele não vai para lugar nenhum ele fica parado junto com o player 2

Alguem tem alguma forma de como o tiro se mover dpos dele ser ativado?
Rolling Eyes

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por †Ceifador em Seg 30 Ago 2010, 15:54

Defina um movimento para ele, pode ser motion_set, ou variação de x no step, enfim, programe o movimento do contrário não sairá do lugar mesmo.

†Ceifador

Número de Mensagens : 154
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 16:07

†Ceifador escreveu:Defina um movimento para ele, pode ser motion_set, ou variação de x no step, enfim, programe o movimento do contrário não sairá do lugar mesmo.

Eu já havia configurado para as balas andarem para o lado certo,agora eu configurei para se mover quando for ativada,so que agora tambem esta sendo deletada quase que na hora que é criada,será que alguem n tem um code para deixar com um max de tiros n?Ou um script???

>>EDITE<<
Consegui resolver o problema,muito obrigado a todos que me aconselharam o que eu devia fazer.
RESOLVIDO
XD

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
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: [RESOLVI]Limite de tiros

Mensagem por Conteúdo patrocinado Hoje à(s) 12:31


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