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

Nenhum

Ver toda a lista


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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

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

POSSIBILIDADE DE DIMINUIR O CODE.

em Ter 04 Maio 2010, 23:42
o codigo (abaixo a pergunta)

//CRIA E ATIRA O MISSEL
//o missel segue automaticamente o inimigo, sempre o que estiver mais proximo.
//portanto algumas variaveis para equivalencia...
//...instance - equivale a isntance mais proxima do inimigo (instance = exemplo)
//objeto - essa variavel é para que a instance mais proxima seja de...
//...qualquer objeto e não apenas de um especifico

if instance_exists(obj_player)
{
if keyboard_check_released(ord("Z"))
if(tiro_especial = true) then
{
if instance_exists(obj_inimigo1) or instance_exists(obj_inimigo2)
{
var instance1, instance2, missil, objeto; //variaveis temporarias
objeto := 0;
instance1 := instance_nearest(x,y,obj_inimigo1);//vai na direçao da instance mais proxima
instance2 := instance_nearest(x,y,obj_inimigo2);
missil := instance_create(x,y,obj_arma_missil);
if instance1 < 0 objeto := instance2;
if instance2 < 0 objeto := instance1;
if objeto = 0 if distance_to_point(instance1.x,instance1.y) <
distance_to_point(instance2.x,instance2.y) then objeto := instance1 else objeto := instance2;

with (missil) {move_towards_point(objeto.x,objeto.y,15)//missil segue inimigo
image_angle = point_direction(x, y,objeto.x,objeto.y)}//missil vai no angulo do inimigo
}
}
}
Com esse codigo o missel é criado e vai na instance mais proxima seja qual for o inimigo se é o nimigo1 ou o inimigo2. Ta funcionando como eu queria, a pergunta...
Se eu criar 20 tipos de objetos (inimigo3, inimigo4...), o code vai ficar gigantesco, alguem sabe alguma maneira de eu criar por exemplo até 20 objetos, com um code que não fique imenso? Daria aqui para usar o comando FOR ou alguma outra maneira que eu nao teria que repetir esses codes até o objeto 20?. OBRIGADO!

Editado por CyraxX: Topico resolvido.
Trancado.
Se o autor quiser reabrir o tópico envie MP para algum administrador ou moderador.
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 13

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

Re: POSSIBILIDADE DE DIMINUIR O CODE.

em Qua 05 Maio 2010, 07:27
Crie um objeto "objPai" por exemplo
não coloque nada nesse objeto

depois nos objetos dos inimigos coloque em "Parent" com "objPai"

então toda vez que você se referir ao "objPai" você estará se referindo a todos inimigos..
ou seja em vez de usar
instance_nearest (x, y, obj_inimigo1)
instance_nearest (x, y, obj_inimigo2)
instance_nearest (x, y, obj_inimigo3)

basta usar
instance_nearest (x, y, objPai) e você estará incluindo todos os inimigos que estão com a opção "Parent" marcadas como "objPai"
avatar
Data de inscrição : 14/01/2010
Número de Mensagens : 348
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

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

Re: POSSIBILIDADE DE DIMINUIR O CODE.

em Qua 05 Maio 2010, 19:03
VALEU meu camarada, deu certo.
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