Graficar un mapa con PHP y coordenadas desde un txt

Pues, esta vez necesitaba generar una imagen con la posicion de mis aliados en el popular juego ikariam, sabemos que existen varios generadores de mapas, pero nunca esta de mas jugar un poco con PHP y ver lo que se puede hacer n.n

El presente código coge un archivo de texto “coordenadas.txt” (con coordenadas numéricas de las posiciones que se desean pintar) e interpreta su contenido dando color a la imagen en los puntos especificados.

Código:

############################################################
# Autor: Julio César Fernández Báez
# Resumen:
# 1.- Crear imagen.
# 2.- Leer coordenadas
# 3.- Pintar cuadraditos
# 4.- Pintar Grilla
# 5.- Generar Imagen
############################################################

set_time_limit(10);


ini_set('max_execution_time', 10);

// Create a 300x100 image
//$im = imagecreate(1000, 1000);

// Set the background to be red
//imagecolorallocate($im, 0, 0, 0);

// Get the color index for the background
//$bg = imagecolorat($im, 0, 0);

// Set the backgrund to be blue
//imagecolorset($im, $bg, 0, 0, 0);

############################################################
#################### 1.- Crear imagen. #####################
############################################################

// Creando una imagen de 1000x1000
$im = imagecreate(1000, 1000);

// Estableciendo el color de fondo a negro
imagecolorallocate($im, 0, 0, 0);

// Creando una funcion que pinte los cuadraditos de coordenadas i,j en la imagen $im
function pintarCuadradito($i,$j,$im){

	//estableciendo color rojo para pìntar los cuadraditos
	$rojo = imagecolorallocate($im, 255, 0, 0);
	
	//tamaño de los cuadraditos = 10 (x2-x/y2-y)
	$x2 = $i+10;
	$y2 = $j+10;
	
	//pintando el cuadradito
	for($x=$i ; $x<$x2 ; $x++){
		for($y=$j;$y<$y2;$y++){
			imagesetpixel ($im, $x, $y, $rojo);
		}
	}
	
}


############################################################
#################### 2.- Leer Coordenadas. #################
############################################################


################################# inicio - leer coordenadas de archivo ################################



$archivo = file("coordenadas.txt");
$lineas = count($archivo);

for($i=0; $i < $lineas; $i++){
	//dreamhost
	//$x=substr($archivo[$i], -7, 2);
	//$y=substr($archivo[$i], -4, 2);
	
	$x=substr($archivo[$i], -8, 2);
	$y=substr($archivo[$i], -5, 2);
	
	pintarCuadradito($x*10,$y*10,$im);
}

################################# fin - leer coordenadas de archivo ################################




//Pintando los cuadraditos

/*
pintarCuadradito(600,600,$im);
pintarCuadradito(800,500,$im);
pintarCuadradito(90,400,$im);
pintarCuadradito(50,500,$im);
pintarCuadradito(200,550,$im);
pintarCuadradito(500,900,$im);
*/

//pintar lineas en imagen($im)
function pintarLineas($im){
	//estableciendo color blanco para pìntar las lineas de la cuadricula
	$blanco = imagecolorallocate  ( $im ,  255 , 255 , 255 );  
	
	//pintando las lineas verticales
	for ($x=0 ; $x<1000 ; $x+=200){
		imageline ( $im , $x , 1000 , $x , 0 , $blanco  );
	}
	//pintando las lineas horizontales
	for ($y=0 ; $y<1000 ; $y+=200){
		imageline ( $im , 1000 , $y , 0 , $y , $blanco  );
	} 
}
pintarLineas($im);


// Mostrando la imagen en el navegador
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

Muestra: http://12titanes.nacgam.com/mapa/IkaMapTitan.php

Ejemplo descargable: IkaMapTitan

Ikariam, uno de los mejores juegos de navegador

Ikariam, uno de los mejores juegos online en modo web

Hace tiempo escuche hablar de Ogame y Travian, seguramente han oido hablar de ellos al igual que yo o talves los juegan, pero no los jugue porque no me llamaron mucho la atencion ( y eso que Ogame tiene un entorno espacial y futurista que a mi tanto me gusta), en fin, a Ikariam si lo econtre interesante, sobre todo porque tiene servidores en varios paises incluyendo a Perú ^^ , y como se puede jugar con otros peruanos pues es mas interesante, ademas de estar en varios idiomas como el nuestro.

¿Que es Ikariam?

Poblacion Euforica.

Poblacion Euforica.

Es un juego de navegador, es decir, lo puedes jugar desde cualquier sistema operativo, solo necesitas el navegador web que siempre estara instalado en todo ordenador, esto es bueno porque no necesitas estar llevando nada extra en el usb o en tu laptop, puedes usar cualquier ordenador en cualquier parte del mundo para acceder al juego.

Algunas características:

Lo bueno de este juego es que lo puedes jugar en tus tiempos libres y no requiere de mucho tiempo de juego, esto debido a que todas las acciones como: construir, recoger recursos, atacar, comerciar, etc. Se realizan en lapsos de tiempo grandes, es decir:  8 horas o mas en algunos casos (Días para evolucionar tecnologias),  30 minutos y otros tiempos pequeños cuando estas en niveles iniciales.

Enlaces de interes:

Web Ikariam Peru:
http://www.ikariam.com.pe

TIps para ikariam:
http://ikariamtips.com/

Personalizar Ikariam:
http://www.sc2-esp.com/showthread.php?p=45751

Related Posts Plugin for WordPress, Blogger...