Conectar-se
Quem está conectado
27 usuários online :: 3 usuários cadastrados, Nenhum Invisível e 24 Visitantes

gart30, Tedi Ripper, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

[RESOLVI]Limite de tiros

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!?
avatar
Data de inscrição : 05/10/2009
Número de Mensagens : 1830
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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)
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 154
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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; }
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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.
avatar
Data de inscrição : 05/10/2009
Número de Mensagens : 1830
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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?
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 154
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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.
avatar
Data de inscrição : 28/08/2010
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [RESOLVI]Limite de tiros

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
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