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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 25/06/2011
Número de Mensagens : 32
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

[Reaberto]Tiro da torre

em Qui 30 Jun 2011, 01:45
Ola pessoal!

Tenho a seguinte situação:

Alarm 0 do obj_torre
Código:

if(distance_to_object(obj_inimigo) <= alcance_torre)
{           
    //cria a bala
    v = instance_create(x, y, obj_bala);   
    v.impacto_tiro = 40;
    v.vel = 20;
}

Create do obj_bala
Código:

set variable vel to 0
set variable impacto_tiro to 0

    //localiza o inimigo mais proximo
    inimigoProximo = instance_nearest(x, y, obj_inimigo);

    //move a bala ate ele   
    move_towards_point(inimigoProximo.x, inimigoProximo.y, vel);

Nessa situação a bala é criada certinho em cima da torre, porém, sua velocidade é zero e ela fica parada.
Imagino eu que isso acontece porque eu estou tentando mover a bala no create dela, e no create da bala reparem que o valor de vel = 0.
Gostaria de saber se tem alguma maneira de setar os valores de velocidade da bala antes do create. computador


Última edição por destroierdds em Sex 01 Jul 2011, 00:21, editado 2 vez(es)
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 06:12
oi Destroier.
Mas pq vc quer criar o 'obj_Bala' com velocidade 0 ?
É, foi só por a velocidade Maior que 0 que a Bala sai certinho.

pra setar essa Velocidade antes, vc poderia usar uma variável Global como
'vel_Bala' por exemplo.
E por um valor nela ao iniciar o Game, e usa-la no lugar da var 'vel' da Bala na hora de mover para o Inimigo.

Ou vc pode setar a 'vel' da Bala no Create, e no próprio Create chamar um
Alarm[0] .
E no Alarm[0] da Bala colocar esse código para ir até o Inimigo.
Depende do porquê tu ker deixar essa vel em 0.
avatar
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 09:24
Faz assim:

Alarm 0 do obj_torre
Código:

if(distance_to_object(obj_inimigo) <= alcance_torre)
{           
    //cria a bala
    v = instance_create(x, y, obj_bala);   

}


Create do obj_bala
Código:

vel=20
impacto_tiro=40

//localiza o inimigo mais proximo
inimigoProximo = instance_nearest(x, y, obj_inimigo);

//move a bala ate ele   
move_towards_point(inimigoProximo.x, inimigoProximo.y, vel);
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 09:42
Eu esperaria que o código digitado no objeto que cria a bala ficasse "por cima" do código do create dela, deixando vel e impact_tiro diferentes de 0.
Mostre os códigos de movimento dela. Enquanto isso, rode um debug pra confirmar esses valores.
avatar
Data de inscrição : 25/06/2011
Número de Mensagens : 32
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 16:49
fredcobain

Não criei do geito que vc disse ,pq assim seria muito facil e eu nao quero que a bala defina sua velocidade.
quero que quem atire ela defina que velo ela vai ter.

Da maneira que eu estou criando o codigo ,qualquer torre atira com uma mesma bala ,ou seja só preciso ter um obj_bala que recebe as propriedades da torre.

Porque tem tores que tem uma velocidade de tiro maio e uma força de impacto maior. E quando a bala é criada ela sai com as especificacoes que a torre mandar.

Eudes - Hyo
Foi por esse motivo que deixei em zero a vel da bala, pq eu quero alterar essa vel quando a bala é criada.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 17:03
Você rodou o debug? Fiz um teste aqui e, realmente, não importa ter ou não ter essas variáveis definidas no create da bala.
O problema deve estar na movimentação mesmo. Pra encontrar, preciso ver o step da bala.

Edit: Ah, entendi!
Passe o move_towards_point pro step.
avatar
Data de inscrição : 25/06/2011
Número de Mensagens : 32
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 17:43
Ai Saim

Funciono mantive a inicialização das variaves locais no create e passei o move_towards para o step da bala e fico blz

Obrigado a todos pela ajuda!
avatar
Ranking : Nota B
Notas recebidas : E + B+B
Data de inscrição : 02/06/2009
Número de Mensagens : 513
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 19:00
tu colocou no STEP? o0
mas se o Inimigo se mover, a Bala não irá segui-lo?

bom se funcionou, blz
avatar
Data de inscrição : 25/06/2011
Número de Mensagens : 32
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: [Reaberto]Tiro da torre

em Qui 30 Jun 2011, 22:28
@Eudes - Hyo escreveu:tu colocou no STEP? o0
mas se o Inimigo se mover, a Bala não irá segui-lo?

bom se funcionou, blz

É verdade agora o problema é que a bala segue o inimigo.

Continuo com o problema.

Como setar as variaveis da bala antes do create e sem adicionar evento de step na bala.

__
Concegui fazer com que a bala não siga o inimigo.

No obj_bala ao inves de usar step eu coloquei um Alarm com
number of steps = 1;

pq assim ja é tempo suficiente para as variaveis da bala serem alteradas
conforme manda a torre.
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 19/05/2008
Número de Mensagens : 581
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Sex 01 Jul 2011, 00:16
Tópico reaberto a pedido do usuário.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: [Reaberto]Tiro da torre

em Sex 01 Jul 2011, 00:32
hah. Não, a coisa é bem mais simples. O problema é que eu NUNCA uso move_towards, então acabo me esquecendo dessas armadilhas.
O que você precisa é definir uma DIREÇÃO no create event e se mover nessa direção. Esqueça que existe move_towards.

Dá até pra usar direction e speed, se você gostar de built-ins. Caso contrário, defina a direção e abuse do lengthdir, no step.
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