Foros del Web » Programando para Internet » PHP »

Un mapa con cuadros

Estas en el tema de Un mapa con cuadros en el foro de PHP en Foros del Web. Buenas compañeros tengo un problema con un objeto que estoy haciendo. Se trata de un mapa que contiene cuadros o casillas. Entonces cada cuadro tiene ...
  #1 (permalink)  
Antiguo 12/12/2011, 16:42
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 15 años, 3 meses
Puntos: 6
Pregunta Un mapa con cuadros

Buenas compañeros tengo un problema con un objeto que estoy haciendo. Se trata de un mapa que contiene cuadros o casillas.

Entonces cada cuadro tiene su coordenada dentro del mapa, como los de verdad xD Bueno el problema es como guardar estos cuadros dentro del objeto. Yo lo que hago es un array para las x y luego cada posición de este array que fuese otro array que representa las y. No se si me he explicado bien. Más o menos para meter el cuadro anterior sería algo así:

Código:
//añadimos un cuadro con coordenada (15, -5)
$cuadros = new array(); //array de las x
$cuadros["15"] = new array(); //la coordenada x del cuadro
$cuadros["15"]["-5"] = new Cuadro();//la y del cuadro
Entonces esto es muy lento y ocupa mucha memoria sobre todo al guardar el objeto (que uso serialize(), no se si hay algún modo mejor). Y claro cuando el mapa este tiene muchos cuadros pues se hace de un tamaño increíble y no puedo pasarlo como variable de sesión de una pagina a otra porque me da error (Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 3426282 bytes) in Unknown on line 0).

Mi pregunta es como puedo guardar la información de los cuadros en el mapa sin ocupar tanto espacio? Por ejemplo (ya se que está hecho en :P) Minecraft guarda muchos cubos con sus coordenadas y los archivos no ocupan tanto...


un saludo compañeros y muchas gracias =)

Etiquetas: cuadros, mapa
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 06:01.