Comunidad de diseño web y desarrollo en internet online

Tipo de simbolo...

Citar            
MensajeEscrito el 15 May 2011 04:10 am
Bueno, lo que pasa es que quiero hacer un juego con as3 pero hay algo que me detiene desde siempre...

lo que pasa es que en el ecenario pongo enemigos con addChild(), y pues en la clase del enemigo pongo sus acciones y propiedades, asi que cada enemigo que se pone en el campo funciona con una sola clase...

haora el problema es que nesesito algo asi como... Si el simbolo "player" toca a cualquier simbolo enemigo "desaparesca

he pensado en hacer una propiedad "tipo" dentro de la clase enemigo y asi enviarle informacion al player que esta chocando con un simbolo de "tipo" "enemigo" y ejecutar una funcion que lo desaparesca... pero el problema esque apenas me estoy migrando de as2 a as3 y no conosco muchas de las funciones

me podrian ayudar con este problema?... de preferencia que no tenga que poner .name a cada simbolo que cree

Por swek

23 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 May 2011 02:50 pm
Yo tendria una clase madre que se encarga de analizar las colisiones (si no me equivoco es hitTestObject, corrijanme). A su vez tendria getters tanto en los enemigos como en el player (u otros elementos colisionables en pantalla) y cuando colisionan, la clase madre sepa quienes chocaron. Por ejemplo, el player tiene un Id "1", el enemigo un Id "2" y los demas elementos en pantalla un Id "3".
Cuando chocan se analiza que tipo de simbolo era segun su numero de ID (por ponerle algun nombre) y en base a eso ejecuta una accion que corresponda.

Por nykko

23 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 May 2011 12:54 am
perdona mi ignorancia pero.. ¿que son los getters?

Por swek

23 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2011 04:40 am
Pasate por la web de citrusengine, peor igual es como dicen arriba, con una clase para las colisiones es mucho mas facil, busca ejemplos de hitTestObject en AS 3.0 y veras que no estan complicado.

Por Daniel8902

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 18 May 2011 07:19 am
Lo que se usa en estos casos es colocar todos tus enemigos en un Array.
creas una funcion que se ejecute cada enter frame y revise si hay colisiones. esta tendria que estar en una clase principal que controle parte del juego lo mismo que el array. Asi siempre accedes a ellos sin necesidad de propiedades especiales.

Código ActionScript :

package

{
 public class Main extends MovieClip
{
  public var enemigo:ClaseEnemigo;
public var enemigos:Array;
public var player:ClasePlayer;
// el constructor de main "carga" el juego y listeners
public function Main()
{enemigos=new Array();

// y aqui guardas los enemigos en array.
for(var i:int=0,i<cantidad_de_enemigos,i++) 
{
var TempEnemig=new ClaseEnemigo();
addChild(TempEnemig);
enemigos.push(tempEnemig);

}
player=new ClasePlayer();
addchild(player);
stage.addEventListener(Event.ENTER_FRAME,runGame);
}

// la funcion que buscará colisiones entre los enemigos guardados
public function runGame(e:Event):void{
for(var e:int=0;e<enemigos.legnth,e++){

if(player.hitTestObject(enemigos[e])){

//aca tendrás la accion por si hay colision.con un enemigos.slice(enemigos[e],1)borrarias el enemigo del array , solo faltaria eliminarlo primero del escenario
}

}
}
}

}


Es más o menos asi lo resumí mucho, lo encontraras en cualquier tutorial de video juegos ,(Asteriodes). suerte y asta pronto

Por maximil13

70 de clabLevel



Genero:Masculino  

Programador, estudiante de sistemas.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.