Comunidad de diseño web y desarrollo en internet online

Controlar permanentemente coaliciones con multiples objetos

Citar            
MensajeEscrito el 01 Jun 2011 02:06 am
Hola a todos. El motivo de este hilo es porque me surgió una duda y si bien tengo una solución en la mente no sé si es la mejor.
Estoy haciendo un juego donde se tendrán en pantalla muchos elementos, el hecho es que quiero controlar cuando estos elementos se choquen y dependiendo de qué tipo sean reaccionarían de diferentes formas. Lo que se me ocurrió es que cada uno de estos MovieClip extienda de una clase (por ejemplo “Entity”) que contenga un EnterFrame con un for que recorra todos los elementos de su padre (con numChildren) y me retorne con que o cuales objetos está colisionando. Ahora lo que me pregunto es si, teniendo, por dar un número, 100 elementos al mismo tiempo, esto me traiga problemas de rendimiento. Además puede ser que exista una forma mucho más simple que no se me ocurrió.

Por Eze

30 de clabLevel



Genero:Masculino  

Lo mas recondito de esta maldita Tierra

firefox
Citar            
MensajeEscrito el 01 Jun 2011 01:57 pm
Por supuesto que traerá problemas de rendimiento. Si quieres hacer algo en serio, mirate alguna librería de física, por ejemplo http://box2dflash.sourceforge.net/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Jun 2011 02:24 pm
Gracias Jorge, a pesar de que lo que estoy haciendo obviamente es "algo en serio" no concidero prudente usar una librería de física solamente para resolver un problema de colisión (en el título puse "coaliciones" :P ) Pero queda claro que mi forma no es para nada óptima, voy a seguir buscando.

Saludos.

Por Eze

30 de clabLevel



Genero:Masculino  

Lo mas recondito de esta maldita Tierra

firefox
Citar            
MensajeEscrito el 01 Jun 2011 02:26 pm
Tip: cualquier intento serio usa un solo onEnterFrame para todo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Jun 2011 02:31 pm
Buen punto, aunque por ejemplo FlashPunk no hace eso (cada entidad tiene un bucle) creo que se hicieron muchos juegos con ese framework, no se si son serios. Considero lo tuyo una opinión y no un afirmación. Saludos.

Por Eze

30 de clabLevel



Genero:Masculino  

Lo mas recondito de esta maldita Tierra

firefox
Citar            
MensajeEscrito el 01 Jun 2011 11:42 pm
Eze Jorge tiene mucha razon . hasta diria que no utilizar un enter frame sino un Timer dado que el enter frame podria tener fallo de rendimiento.Despues bucles optimizados .
por ejemplo que solo se chekee una colisión si los objetos estan a menos de una distancia . El problema de rendimiento se agraba si en el mismo bucle detectaramos y movieramos los objetos al mismo tiempo. Serian varia funciones distintas que hicieran cada una lo suyo: una funcion detecta si hay colision otra funcion mueve los objetos,Es un rollo pero lo juegos hacen trabajar mucho la cabeza

Por maximil13

70 de clabLevel



Genero:Masculino  

Programador, estudiante de sistemas.

firefox
Citar            
MensajeEscrito el 02 Jun 2011 01:02 am
En mi opinión (no creo que es la verdad absoluta...) es correcto usar enterFrame con cada objeto Timer que se crea, se está reservando memoria, en cambio con enterFrame, no crea un nuevo objeto, sino que guarda una tabla de objetos suscritos. Además de nada de me sirve tener un timer que controle una colisión cada 5 milésimas por ejemplo cuando flash player "renderiza" cada tantos frames por segundos o sea a la velocidad de un enterFrame.

Por Eze

30 de clabLevel



Genero:Masculino  

Lo mas recondito de esta maldita Tierra

firefox
Citar            
MensajeEscrito el 02 Jun 2011 01:13 am

Por maximil13

70 de clabLevel



Genero:Masculino  

Programador, estudiante de sistemas.

firefox
Citar            
MensajeEscrito el 02 Jun 2011 01:52 am
Muy interesante, lo voy a tener en cuenta. También dejo este articulo que me parece interesante.

http://llops.com/blog/2008/07/27/enterframe-vs-timer-i/

Saludos y gracias por compartir esta información tan util.

Por Eze

30 de clabLevel



Genero:Masculino  

Lo mas recondito de esta maldita Tierra

firefox

 

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