Foros del Web » Creando para Internet » Flash y Actionscript »

Rendimiento y buenas practicas

Estas en el tema de Rendimiento y buenas practicas en el foro de Flash y Actionscript en Foros del Web. Me gustaría que me orientaran con unas dudas con respecto a rendimiento de AS3 Estoy desarrollando un juego de disparos en flash, consta de un ...
  #1 (permalink)  
Antiguo 15/09/2011, 08:10
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 18 años, 7 meses
Puntos: 14
Pregunta Rendimiento y buenas practicas

Me gustaría que me orientaran con unas dudas con respecto a rendimiento de AS3

Estoy desarrollando un juego de disparos en flash, consta de un robot que gira en su propio eje, tengo los siguientes archivos

game.as
robot.as
mira.as
municion.as

game.as se encarga de controlar el juego, agregar los elementos, stop, continue, etc…
robot.as tiene las acciones de disparar y rotar
mira.as controla el movimiento de la mira del arma
municion.as es la clase que va atada a cada bala, la mueve y comprueba colisiones

Ahora bien, podría hacer los "loops y eventos" de 2 formas diferentes

1. hacerlos todos en game.as

Código:
addEventListener(Event.ENTER_FRAME, loopGame);
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
De esta primera forma tendría 1 solo ENTER_FRAME, MOUSE_MOVE y MOUSE_DOWN, y en cada uno colocaría todas las callbacks que disparan esos eventos, ejemplo.

Código:
private function mouseMoveHandler(e:MouseEvent) {
	this.myMira.move(e);
	this.myRobot.rotate(e);
}
Código:
private function loopGame(e:Event):void {
	this.updateMuniciones();  //recorre todas las municiones, actualiza su posición y comprueba colisiones
	this.updateEnemigos();  //recorre todas los enemigos y actualiza su posición
}

2. Hacerlo dentro de cada objeto
De esta forma tendría los listeners dentro de cada objeto del juego, por ejemplo

Robot.as tendría un MOUSE_MOVE propio para rotar
Código:
stage.addEventListener(MouseEvent.MOUSE_MOVE, rotate);
mira.as, tendría un MOUSE_MOVE propio para mover su posición
Código:
stage.addEventListener(MouseEvent.MOUSE_MOVE, mover);
dentro de cada bala tendría un ENTER_FRAME propio que cambiaría su posición actual y comprobaría colisiones
Código:
this.addEventListener(Event.ENTER_FRAME, updateBala);
A nivel de practicidad y rendimiento ¿Cuál de los 2 métodos es el correcto y porque?

Si alguien conoce un manual, libro de buenas practicas o patrones de diseño en AS3 le agradeceria el dato :)

Espero haberme explicado bien, gracias
__________________
Juegos
Juegos iphone

Última edición por minkweb; 15/09/2011 a las 08:19

Etiquetas: as3, diseño, patrones, prácticas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:18.