Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - JMAA

#21
Modelado / ¡Antonio! ¡Saca la basura, anda!
24 de Diciembre de 2007, 10:56:24 AM
Cubo de basura hecho en Wings3d. Creo que la textura anda mal porque la pinté yo. Pero bueno, os podéis hacer a la idea.
#22
Off-topic / [Humor] Santi está agotado
30 de Noviembre de 2007, 10:27:18 PM
Sí, ya sé que este audio es un poco viejo, pero al menos me ha prometido unas risas.
http://www.chisteina.com/audio/bin/santsegura.mp3
Por favor, escuchadlo entero. xD
#23
General Grafistas / Psico Perdío: Juan, el Héroe
27 de Noviembre de 2007, 05:10:21 PM
El prota de mi juego, en forma de un concept art sencillito.


Es un dibujo muy sencillo, ya que pienso en ir rápido cuando hago concept art. Sin sombreado ni nada, trazos, negros y a tomar por culo. Pero parece a mi vista muy efectivo si quieres darte un poco de prisa. En fin.

No me habléis de sombreado, etc. Lo sé, no es bueno, es un boceto o garabato. Pero sirve para hacerse a la idea.
#24
General Audio / Deathmatch a Saco Paco
26 de Noviembre de 2007, 09:51:52 PM
http://rapidshare.com/files/72490173/DeathmatchaSacoPaco.mp3.html
Intenté hacer algo parecido a Quake III Arena. Me salió esta cosa sexy de industrial que oís ahí.

Pienso ponerlo en Psico Perdío. Lo malo es que falta pulido. Creo yo, vamos. Pero a mí me gusta.
#25
ArtFutura / Fui a las proyecciones en Donosti.
26 de Noviembre de 2007, 06:23:17 PM
Fui con la clase hace un porrón y vimos cosas como trailers de World of Warcraft, Heavenly Sword, Pain... en fin, de lo mejorcito que hay, y además unos cortos 3d muy majos, como el Okti, el del barco enorme ese y el de MTV, los dos ultimos no me acuerdo como se llamaban (espero que alguien sea buen samaritano de recordármelos). Nada en especial, espero vuestras opiniones.

Aparte, decir que el que más me gustó fue el que hicieron para MTV o algo así. Me recuerda a Blood 2. En cuanto a juegos, hay uno que me encantó y ya dije, que es el de Pain (lanzas a un tío en un tirachinas hacia la ciudad y le haces puré. Hilarante.).
#26
General Programadores / [Blitz3d] Cel Shading
26 de Noviembre de 2007, 06:13:11 PM
Vamos a ver... tengo una dudilla por ahí que es... ¿es lo mismo hacer con el flag Flat-Shaded de EntityFX y usar una función más compleja de por ahí? En fin, ¿cual de las dos es más efectiva?
#27
Guión y Diseño / Psico Perdío: Abierto a críticas
26 de Noviembre de 2007, 05:58:21 PM
Esto es lo que es la trama de Psico Perdío. Podéis criticarla y si eso, dar consejo acerca de ella.
Psico Perdío (definitivo)
-------------------------
Eres Juan. Eres un chico con sentido común, no como el resto de descerebrados humanos. Sin embargo, desprecias a la raza humana desde tu nacimiento, por su completa idiotez y lo que ha provocado a lo largo de la historia (guerras, política, el pez grande se come al pequeño...).

Un "buen" día en el ordenador, Juan recibe una llamada de sus colegas. Sin mirar el horario del tren, que se supone que tiene que pasar por el para llegar, se dispone a bajar al apeadero del barrio. De ahí surge todo: unos yonkis deciden asaltarte para robar tu pasta y obviamente dejar tu cadáver, lo cual significa que tendrás que empezar a pegarte con ellos.

Mientras, ocurren distintas invasiones alienígenas de una raza llamada Chun'Ogg por toda la Península Ibérica. Algo que Juan no sabe, pero bueno, es problema de la Humanidad (allá ellos). ¿Por qué invaden la Tierra? Por su afán de dominar el Universo. Ahora, creemos que Juan se enteró de esto en Internet.

Bueno, supongo que a Juan le toca salvar el mundo de paso. O liarla.

FINALES:
--------
1. Juan vence a los Chun'Ogg y salva el mundo.
2. Juan se une a ellos con la intención de destruir el planeta por ser tan IDIOTA.
3. Juan se convierte en un asesino independiente de la humanidad, independientemente de los Chun'Ogg (esto se consigue mediante la llegada al silo nuclear, ya lo veremos).
4. Juan muere heroicamente y va al cielo, con el resultado de que el fuese rechazado y fuera al Infierno (si mueres en el silo nuclear).

Niveles:
--------
Zonas Iniciales:
Introducción: Desde casa al apeadero.
Apeadero: Del apeadero a, entre otras cosas, la Estacion del Norte (andando), Loiola (paso al Silo Nuclear) o Amara (camino más largo a la Estación del Norte).

Camino A (el que lleva al Silo)
Loiola: Aquí se empieza a jugar sin la ayuda de personajes secundarios y a matar a todo lo que se mueva. Sigue al Barrio Marginal.
Barrio Marginal. Hacia la Autopista (atajo al Silo) o hacia el Campo Montañoso (camino más largo).
A-Autopista: Se necesita conducir una moto para llegar directamente al Silo.
B-Campo Montañoso: No es necesaria una moto. Pasa al campo de Pruebas Nucleares.
B-Campo de Pruebas Nucleares: Amorfos a tutiplén. Sigue a la Incineradora.
B-Incineradora: Trampas, trampas y más trampas. Sigue al Silo.
Silo Nuclear: Aquí hay dos opciones: morir ante cualquier cosa e ir al Mas Allá, o llegar al centro de Comando y lanzar un misil nuclear a Madrid.

Camino B (el que se dirige a los Chun'Ogg)
Estación del Norte: De aquí se llega al Cristina Enea, donde se encontrará con JD, Daroka y Pagal.
Cristina Enea: Aquí por culpa de los estúpidos yonkis, te detiene la pasma. Vas a la Cárcel y las Cloacas.
Carcel y Cloacas: Descubres una vieja vía de escape de un anterior interno, que lleva a las cloacas. Sales de ellas y creen que la carcel no es suficiente, así que te llevan al Manicomio.
Manicomio: Un fallo del sistema de seguridad provoca una fuga de todos los internos. Haz tu paso hacia el helicóptero a la Zona Gubernamental.
Zona Gubernamental: Descubres que en ella hay experimentos con extraterrestres, entre ellos los Chun'Ogg. Uno de ellos te pega una paliza y despiertas en la Nave Nodriza.
Nave Nodriza: Te convierten en un humano reforzado con un ojo biónico, y la marina española te rescata hasta que la nave se estrella en el puro Apocalipsis.
Apocalipsis: Las calles están infestadas de zombis de control mental que intentan matarte. Tienes que subir al Crucero Principal gracias a la ayuda de un piloto de F-12.
Crucero Principal: Entras y te enfrentas al jefe final: el Comandante Chun'Ogg. Aquí o te unes a él (final 2) o acabas con él y salvas al mundo (final 1).

Armas:
------
Pistola Desert Eagle
Motosierra
Escopeta de Caza de Doble Cañon
Barra de metal (o cañería rota)
Cuchillos de Cocina (se tiran)
Cañon Vulcan (Minifusil)
Rifle Francotirador AWP
AK-47
Arma alienígena (un rifle de plasma)
EGPC 4000 (El Gran Putisimo Cañon 4000, para los que aman las siglas)
(Este ultimo en lugar de lanzar bolas como las BFG lanzan rayos laser enormes a lo Dragon Ball Z)
Granadas
Lanzacohetes o Lanzador de RPG's (digo "Granadas Propulsadas por Cohete", es decir, COHETES)


EDIT: Añado antes que nada, que el juego en sí pretende ser un poco humorístico en todo caso.
#28
Modelado / Textura de una Desert Eagle
26 de Noviembre de 2007, 05:56:21 PM
Aupa.
Espero que yo, al menos, no de mucho el coñazo como antes hacía. Eso espero porque parece que reflexioné sobre el tema.

En fin, he hecho este modelo para una Desert Eagle, en Wings:


El problema es que en cuanto a texturizado, no tengo ni la más zorra idea, y claro, me sale hecha la textura una mierda. Entonces, aquí incluyo un archivo wings para que el más benevolente pueda hacer una textura para un Desert Eagle dorado.
http://rapidshare.com/files/72440449/deserteagle.wings.html
Gracias de antemano.
#29
Off-topic / ¡Ajjjj! ¡Cagonlahostia!
03 de Febrero de 2007, 12:05:21 AM
Y es que cada vez que busco, no encuentro, porque la verdad, desde que instalé el lector de CD nuevo y jodí la posición de mi disco USB ya nada es igual. No sólo me ha bajado la autoestima en cuanto a Game-Developing se refiere, sino que se ha jodido cualquier oportunidad para desarrollar juegos. Visual Studio se ha esfumado, los engines que encuentro no son más que código fuente mareante... ¡estoy seguro de que me ha dado el bajón!

A partir de aquí mando las míticas botellitas de mensajes S.O.S. a los barcos, esperando que alguien me ayude y me saque de esta isla desierta de mierda (que por cierto, ando atascado en cuanto a ideas sobre qué hacer, porque entre Ultima Online y mi otra web ya ando un poco estancado).

Una vez más, ¡SOCORRO!
#30
General / Mi blog
15 de Enero de 2007, 10:09:15 PM
Haganme un favor, aunque esto va especialmente al encargado de Planet Stratos...

Pongan mi blog en Planet Stratos, o al menos diganme con quien debo contactar...

http://devjtr.blogspot.com
#31
Industria y mercado / Ayuda para Trabajo en Equipo
03 de Enero de 2007, 12:57:59 AM
Hola.

Posteo aquí unos cuantos enlaces sobre el desarrollo de videojuegos (o mods de juegos) en equipo. Eso sí, en inglés o en castellano.

Español:
http://es.wikibooks.org/wiki/Creaci%C3%B3n_de_videojuegos/Producci%C3%B3n/Solo_o_en_equipo#Un_m.C3.A9todo_para_desarrollo_en_equipo_sin_contrato_laboral

Inglés:
http://developer.valvesoftware.com/wiki/Successful_Mod_Team_Tips
http://www.gamasutra.com/features/20051108/mencher_01.shtml

Iré actualizando poco a poco. Si me ayudais un poquillo, como que mejor.
#32
General Programadores / C# (por donde empezar)
03 de Enero de 2007, 12:13:04 AM
Hola.

Sé que esto es una preguntilla un poco pesada, pero, ¿donde podría empezar para hacer juegos/engines 3d/2d en C#? Precisamente me había decantado por este lenguaje tan singular y sencillo.

Gracias de adelanto.
#33
Principiantes / Me pica el gusanillo...
18 de Diciembre de 2006, 03:05:26 PM
Y es que la verdad podría pedir permiso a mi papaito para que entre a algun grupo de iniciación. Supondré que después de que os diga que me haya dado permiso tendré que hacer algo, ¿no? ¿O tendré que quedarme de autodidacta?

Salu2.
#34
General Programadores / Blender (A.K.A. volveré)
17 de Diciembre de 2006, 05:51:19 PM
Buenas. Siento la temible depresión de caballo que se me vino hace como décadas, pero parece ser que gracias al soporte de Mr. Sandman, he estado animándome un poco para volver a remontar Psico Perdío.

Pero antes quisiera hacer una preguntilla: ¿Es posible usar un sistema de renderizado de Blender (ej.: YafRay) con el Game Engine de Blender?

Muchas gracias.
#35
Off-topic / Se acabó.
08 de Septiembre de 2006, 09:02:52 PM
Vine a hacer un anunciamiento bastante serio.

Hace mucho tiempo que vine aquí a Stratos con mis dos primeros incompletos proyectos, Distopian Wars y Limbo Online, proclamando ser el jefe de un grupo desarrollador llamado Rippersoft. Luego vine con varias ideas hasta acabar en un proyecto llamado Psico Perdío, que luego se convirtió en el proyecto de Mr. Sandman.

Bueno, he de decir que ha llegado mi hora de dejarlo todo. Digo esto porque tenéis razón, soy un completo inútil. Un fracaso. Un don-nadie en el mundo del desarrollo. Simplemente soy basura social que se hace pensar que es un DaVinci artístico. Y lo que soy ahora, soy todo lo contrario.

Lo que quiero que hagáis en memoria mía, que seguramente no volveré a Stratos en toda mi vida, es que ayudéis a Mr. Sandman con su proyecto en todo lo posible.

Adiós, Strateros. Os echaré de menos, especialmente a todos los que me habéis ayudado a improvisar mi carácter.
#36
General Audio / Doblaje amateur
04 de Agosto de 2006, 02:07:26 PM
Por favor, ¿alguien sabría decirme dónde encontrar doblaje amateur (de esos que te graban sin cobrar nada, solo por amor al arte)?

Se agradecería cualquier ayuda.
#37
General / Topics fantasma D8
28 de Julio de 2006, 11:50:37 AM
La verdad es que navegando por los foros me encontré con otro problemilla, y es que, veo un tema, entro en el y me sale el mensajito de "No posts exist for this topic". Digo yo, que será uno de esos topics fantasma que salen por ahí, vamos.
#38
General Programadores / ¿Donde pongo el mapa?
12 de Julio de 2006, 04:43:32 PM
Bueno, antes que nada, os pongo estas dos (grandes) piezas de código:

;----------;
;Anthro Civ;
;----------;
;| ENGINE |;
;ISOMETRICO;
;----------;

;Variables Globales. No significan nada. Cambiaran eventualmente.

Global mapx, mapy
Global minimapimage
Global iUpdateMiniMap, iShowMiniMap, iOnMiniMap

Global tltilex, tltiley, brtilex, brtiley, scalex#, scaley#, plotx, ploty

Global ProbMar

Global ProbRecurso = 25

Global ProbRec2

;Tamaño de los Tiles:

Const tilewidth = 64
Const tileheight = 32

;Tamaño de un mapa, en Tiles:

Const mapwidth = 512
Const mapheight = 256

;Para identificar el tipo de terreno, hacemos unos cuantos arrays:

Dim TerrenoID(mapwidth,mapheight)
Dim NombreT$(mapwidth,mapheight)
Dim ImagenTile(mapwidth,mapheight)
Dim TasaProd(mapwidth,mapheight);
Dim TasaRiqu(mapwidth,mapheight);Multiplicadores de tasa de produccion, riqueza y poblacion.
Dim TasaPobl(mapwidth,mapheight);
Dim Oceano(mapwidth,mapheight)  ;¿Es un oceano? (Los oceanos solo son compatibles con barcos y aereos)
Dim Recurso(mapwidth,mapheight) ;ID del recurso que alberga
Dim Explorado(mapwidth,mapheight,8)
Dim Granja(mapwidth,mapheight,8)
Dim Mina(mapwidth,mapheight,8)
Dim Carretera(mapwidth,mapheight,8)
Dim Ciudad(mapwidth,mapheight,8)  ;ID de la ciudad que alberga

;¡Mas arrays! Esta vez, la ciudad.
Dim CiudadID(8)
Dim CiudadNombre$(8)
Dim CiudadRecursoID(8)
Dim CiudadEsPuerto(8)

;Las imagenes de los tiles.
Global oceanotile = LoadImage("images\tileset\water.bmp")
Global hierbatile = LoadImage("images\tileset\isogras.bmp")
Global desiertotile = LoadImage("images\tileset\isodesert.bmp")
Global articotile = LoadImage("images\tileset\artic.bmp")
Global colinastile = LoadImage("images\tileset\isohills.bmp")
Global montanatile = LoadImage("images\tileset\isomountain.bmp")
Global pantanotile = LoadImage("images\tileset\isoswamp.bmp")
Global arbolestile = LoadImage("images\tileset\isotrees.bmp")

;Posicion del mapa inicial en Tiles:
mapx = 0
mapy = 0

;Minimapa:
Global minimapx = 700
Global minimapy = 500

;El array del mapa:
Dim map(mapwidth, mapheight)

;La funcion principal del engine.
Function isometrico()

minimapimage = CreateImage(100, 100)
MaskImage minimapimage, 255, 0, 255

funcInitMiniMap
iShowMiniMap = 1

Cls

funcGetPlayerInput
funcDrawMap

; Debug stuff

; Text 200, 200, MouseX()
; Text 200, 220, MouseY()
; Text 200, 240, mousemapcol + " = " + mousemapcolr + " " + mousemapcolg + " " + mousemapcolb
; Text 200, 260, tilesx
; Text 200, 280, tilesy
; Text 200, 300, mousemapx
; Text 200, 320, mousemapy
; Text 200, 340, scalex#
; Text 200, 360, scaley#
; Text 200, 400, tltilex
; Text 200, 420, tltiley
; Text 200, 440, brtilex
; Text 200, 460, brtiley

If iShowMiniMap = 1 Then
DrawImage minimapimage, minimapx, minimapy

; Draw the rectangle for the screen area on the MiniMap
Color 255, 255, 255
Rect tltilex / scalex# + minimapx, tltiley / scaley# + minimapy, ((brtilex - tltilex) / scalex#), ((brtiley - tltiley) / scaley#), 0
End If

Flip
End Function

; Obtener el input del jugador.
Function funcGetPlayerInput()
; Scroll con el teclado.
If KeyDown(203) And mapx > 0 Then
mapx = mapx - 8
End If

If KeyDown(205) And mapx < (((mapwidth + 1) * tilewidth) + (tilewidth / 2)) - 640
mapx = mapx + 8
End If

If KeyDown(200)  And mapy > 0 Then
mapy = mapy - 4
End If

If KeyDown(208) And mapy < ((mapheight + 1) * (tileheight / 2)) + (tileheight / 2) - 480
mapy = mapy + 4
End If

; Decirnos si estamos moviendonos por el mapa.
If iShowMiniMap = 1 Then
If MouseX() >= minimapx And MouseX() <= minimapx + 100 And MouseY() >= minimapy And MouseY() <= minimapy + 100 Then
iOnMiniMap = 1
Else
iOnMiniMap = 0
End If
End If

; Permitir movimiento de camara si el raton no esta sobre el minimapa o el minimapa no es visible.
If iShowMiniMap = 0 Or iOnMiniMap = 0
If MouseDown(1) Then
map(selectx, selecty) = 1
iUpdateMiniMap = 1
End If

If MouseDown(2) Then
map(selectx, selecty) = 0
iUpdateMiniMap = 1
End If

; Esto controla el movimiento del raton.
If MouseX() = 0 And mapx > 0 Then
mapx = mapx - 8
End If

If MouseX() = 639 And mapx < (((mapwidth + 1) * tilewidth) + (tilewidth / 2)) - 640
mapx = mapx + 8
End If

If MouseY() = 0 And mapy > 0 Then
mapy = mapy - 4
End If

If MouseY() = 479 And mapy < ((mapheight + 1) * (tileheight / 2)) + (tileheight / 2) - 480
mapy = mapy + 4
End If
Else
; Esto mueve al lugar clickeado en el minimapa.
If MouseDown(1) Then
iMapXPlace = MouseX() - minimapx - (((brtilex - tltilex) / scalex#) / 2)
iMapYPlace = MouseY() - minimapy - (((brtiley - tltiley) / scaley#) / 2)

mapx = (iMapXPlace * scalex#) * tilewidth
mapy = (iMapYPlace * scaley#) * (tileheight / 2)

; Asegurarnos de que no nos salgamos del area del mapa.
If mapx <= 0 Then
mapx = 0
Else If mapx > (((mapwidth + 1) * tilewidth) + (tilewidth / 2)) - 640 Then
mapx = (((mapwidth + 1) * tilewidth) + (tilewidth / 2)) - 640
End If

If mapy <= 0 Then
mapy = 0
Else If mapy > ((mapheight + 1) * (tileheight / 2)) + (tileheight / 2) - 480 Then
mapy = ((mapheight + 1) * (tileheight / 2)) + (tileheight / 2) - 480
End If
End If
End If

; Permitir que el minimapa sea visto.
If KeyDown(28) Then
If iShowMiniMap = 0 Then
iShowMiniMap = 1
Else
iShowMiniMap = 0
End If
End If

; Actualizar el minimapa si es posible.
If iUpdateMiniMap = 1 Then
funcUpdateMiniMap
iUpdateMiniMap = 0
End If
End Function

; Dibuja el mapa
Function funcDrawMap()
; Calcular cuantos tiles vamos a dibujar...
tltilex = (0 + mapx) / tilewidth
tltiley = ((0 + mapy) / tileheight) * 2

brtilex = ((639 + mapx) / tilewidth) - 1
brtiley = (((479 + mapy) / tileheight) * 2)

; Asegurarnos de que los mapas mas pequeños que la pantalla se vean bien.
If brtilex > mapwidth Then
brtilex = mapwidth
End If

If brtiley > mapheight Then
brtiley = mapheight
End If

; Arreglar los valores para que al moverse se vea bien.
If tltilex > 0 Then
tltilex = tltilex - 1
End If

If tltiley > 0 Then
tltiley = tltiley - 1
End If

If brtilex < mapwidth Then
brtilex = brtilex + 1
End If

If brtiley < mapheight Then
brtiley = brtiley + 1
End If

; Hacer que se llenen los bordes del mapa para asi dar la sensacion de "infinito".

; Arriba
If tltiley = 0 Then
y = -1
For x = tltilex -1 To brtilex
plotx = (x * tilewidth + (y And 1) * (tilewidth / 2)) - mapx
ploty = (y * (tileheight / 2)) - mapy

DrawImage oceanotile, plotx, ploty
Next
End If

; Abajo
If brtiley = mapheight Then
y = brtiley + 1
For x = tltilex -1 To brtilex
plotx = (x * tilewidth + (y And 1) * (tilewidth / 2)) - mapx
ploty = (y * (tileheight / 2)) - mapy

DrawImage oceanotile, plotx, ploty
Next
End If

; Izquierda
If tltilex = 0 Then
x = -1
For y = tltiley To brtiley
plotx = (x * tilewidth + (y And 1) * (tilewidth / 2)) - mapx
ploty = (y * (tileheight / 2)) - mapy

DrawImage oceanotile, plotx, ploty
Next
End If

; Derecha
If brtilex = mapwidth Then
x = brtilex + 1
For y = tltiley To brtiley
plotx = (x * tilewidth + (y And 1) * (tilewidth / 2)) - mapx
ploty = (y * (tileheight / 2)) - mapy

DrawImage oceanotile, plotx, ploty
Next
End If

; Ahora el area principal del mapa que estamos mirando
For y = 0 To mapheight
For x = 0 To mapwidth
plotx = (x * tilewidth + (y And 1) * (tilewidth / 2)) - mapx
ploty = (y * (tileheight / 2)) - mapy
ProbMar = Rnd(0,100)
If ProbMar < 30 Then
TerrenoID(x,y) = 0
NombreT(x,y) = "Oceano"
ImagenTile(x,y) = oceanotile
TasaProd(x,y) = .25
TasaRiqu(x,y) = .75
TasaPobl(x,y) = 1
Oceano(x,y) = 1
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
Else
TerrenoID(x,y) = Rnd(1,7)
Select TerrenoID(x,y)
Case 1
NombreT(x,y) = "Planos"
ImagenTile(x,y) = hierbatile
TasaProd(x,y) = 1
TasaRiqu(x,y) = .75
TasaPobl(x,y) = .25
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 2
NombreT(x,y) = "Desierto"
ImagenTile(x,y) = desiertotile
TasaProd(x,y) = .50
TasaRiqu(x,y) = 1
TasaPobl(x,y) = .50
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 3
NombreT(x,y) = "Artico"
ImagenTile(x,y) = articotile
TasaProd(x,y) = .75
TasaRiqu(x,y) = 1
TasaPobl(x,y) = .25
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 4
NombreT(x,y) = "Colinas"
ImagenTile(x,y) = colinastile
TasaProd(x,y) = 1
TasaRiqu(x,y) = .75
TasaPobl(x,y) = .25
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 5
NombreT(x,y) = "Montanas"
ImagenTile(x,y) = montanatile
TasaProd(x,y) = 1
TasaRiqu(x,y) = .75
TasaPobl(x,y) = .25
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 6
NombreT(x,y) = "Pantano"
ImagenTile(x,y) = pantanotile
TasaProd(x,y) = .75
TasaRiqu(x,y) = 1
TasaPobl(x,y) = .25
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
Case 7
NombreT(x,y) = "Bosque"
ImagenTile(x,y) = arbolestile
TasaProd(x,y) = 1
TasaRiqu(x,y) = .25
TasaPobl(x,y) = .75
Oceano(x,y) = 0
ProbRec = Rnd(0,100)
If ProbRec < ProbRecurso Then

Else

EndIf
For juan = 0 To 8
Explorado(x,y,juan) = 0
Granja(x,y,juan) = 0
Mina(x,y,juan) = 0
Carretera(x,y,juan) = 0
Ciudad(x,y,juan) = 0
Next
DrawImage ImagenTile(x,y), plotx, ploty
End Select
EndIf
Next
Next
End Function

Function funcInitMiniMap()
; Dibujar el buffer del minimapa
SetBuffer ImageBuffer(minimapimage)

For y = 0 To mapheight
For x = 0 To mapwidth
; Reescalar el mapa.
scalex# = mapwidth
scalex# = scalex# / 100
scaley# = mapheight
scaley# = scaley# / 100

; Saber donde se encuentra cada "plot" (?)
plotx = x / scalex#
ploty = y / scaley#

; Poner el color adecuado
Select TerrenoID(x,y)
Case 0
Color 0, 0, 255
Case 1
Color 0, 255, 0
Case 2
Color 255, 255, 0
Case 3
Color 255, 255, 255
Case 4
Color 75, 255, 75
Case 5
Color 150, 255, 150
Case 6
Color 0, 255, 255
Case 7
Color 0, 150, 0
End Select

; Ver el pixel correcto
Plot plotx, ploty
If scalex# < 0.5 Then
Plot plotx + 2, ploty
Plot plotx + 1, ploty
Else If scalex# < 1 Then
Plot plotx + 1, ploty
End If
Next
Next

;Recuperar el dibujo al buffer principal
SetBuffer BackBuffer()
End Function

; Actualiza el minimapa
Function funcUpdateMiniMap()
; Dibujar en el buffer
SetBuffer ImageBuffer(minimapimage)

For y = tltiley To brtiley
For x = tltilex To brtilex
; Otro plotting
plotx = x / scalex#
ploty = y / scaley#

; Poner el color adecuado
Select TerrenoID(x,y)
Case 0
Color 0, 0, 255
Case 1
Color 0, 255, 0
Case 2
Color 255, 255, 0
Case 3
Color 255, 255, 255
Case 4
Color 75, 255, 75
Case 5
Color 150, 255, 150
Case 6
Color 0, 255, 255
Case 7
Color 0, 150, 0
End Select

; Mas plotting
Plot plotx, ploty
If scalex# < 0.5 Then
Plot plotx + 2, ploty
Plot plotx + 1, ploty
Else If scalex# < 1 Then
Plot plotx + 1, ploty
End If
Next
Next

;Recuperar el dibujo en el buffer principal
SetBuffer BackBuffer()
End Function


Y el programa original:
;------------
; Anthro Civ
;------------
;Primeramente, la resolucion y lo demas
Graphics 800, 600, 16, 2
SetBuffer BackBuffer(  )
HidePointer

;Titulo de la aplicacion
AppTitle "Anthro Civ v1.0"

;Includes!
Include "blitzui.bb"
Include "sounds.bb"
Include "loadscreen.bb"
Include "Extras\MessageBox.bb"
Include "ciencia.bb"
Include "isoengine.bb"

;Variables!
Global Dificultad1P% = 0
Global JugadoresCPU% = 1
Global MapaCreado = 1

Dim Indice%(8)
Dim Nombre$(8)
Dim Descripcion$(8)
Dim Gobernador$(8)
Dim Oro%(8)
Dim PoliticaID%(8)
Dim Poblacion%(8)

Const P_despo = 0 ; 0 = Despotismo
Const P_monar = 1 ; 1 = Monarquia
Const P_repub = 2 ; 2 = Republica
Const P_democ = 3 ; 3 = Democracia
Const P_comun = 4 ; 4 = Comunismo
Const P_anarq = 5 ; 5 = Anarquia

Global Indice2% = 0
Global Nombre2$ = ""
Global Descripcion2$ = ""
Global Gobernador2$ = ""

Dim genmap(100,100)
Dim backmap(100,100)

Global Edad% = 5000
Global ACDC$ = "aC"

Dim CitaAleatoria$(6)

Citaaleatoria2% = Rand(0,6)

CitaAleatoria$(0) = "No se puede progresar hacia la felicidad por medio de la acción política. -Skinner"
CitaAleatoria$(1) = "El hombre es un animal político. -Aristoteles"
CitaAleatoria$(2) = "No tengo ninguna estima por el hombre que a los veinte años no ha sido nacionalista o comunista. -Daudet"
CitaAleatoria$(3) = "La política es una guerra sin efusión de sangre; la guerra una política con efusión de sangre. -Mao Tse Tung"
CitaAleatoria$(4) = "Las convicciones políticas son como la virginidad: una vez perdidas, no vuelven a recobrarse. -Pi i Maragall"
CitaAleatoria$(5) = "Es muy difícil hacer compatibles la política y la moral. -Bacon"
CitaAleatoria$(6) = "La política es un acto de equilibrio entre la gente que quiere entrar y aquellos que no quieren salir. -Bossuet"

Global trampaactual$ = "Trampa"

Global espiaindice% = 1

Dim AI(8).Civilizacion

;Los archivos de script BlitzBasic (necesarios para la pantalla de carga)
bb_blitzui$ = "blitzui.bb"
bb_blitzui_backup$ = "blitzui_backup.bb"
bb_icons$ = "icons.bb"
bb_loadscreen$ = "LoadScreen.bb"
bb_main$ = "main.bb"
bb_sounds$ = "sounds.bb"
bb_extras_colorpicker$ = "Extras\ColorPicker.bb"
bb_extras_messagebox$ = "Extras\MessageBox.bb"
bb_extras_opensavedialog$ = "Extras\OpenSaveDialog.bb"

;La Pantalla de Carga
Global pantallacarga.TLoadScreen = LoadScreen_Create(9, 8, 150, 0.38, 0.35 )
LoadScreen_SetImage(pantallacarga, "cargando.jpg")
LoadScreen_SetFont(pantallacarga, "Book Antiqua", 20, True)
LoadScreen_SetSound(pantallacarga, "music\Loading_Theme9.mp3" )
LoadScreen_PlaySound(pantallacarga)

LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;1
Delay FileSize(bb_blitzui$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;2
Delay FileSize(bb_blitzui_backup$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;3
Delay FileSize(bb_icons$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;4
Delay FileSize(bb_loadscreen$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;5
Delay FileSize(bb_main$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;6
Delay FileSize(bb_sounds$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;7
Delay FileSize(bb_extras_colorpicker$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;8
Delay FileSize(bb_extras_messagebox$)/128
LoadScreen_Update(pantallacarga, True, 0, 98, 39) ;9
Delay FileSize(bb_extras_opensavedialog$)/128

Delay 1000
Color 0,0,0
Text GraphicsWidth()/2, GraphicsHeight() - 160, CitaAleatoria$(CitaAleatoria2%),True,False
Text GraphicsWidth()/2, GraphicsHeight() - 300, "Pulsa la barra espaciadora para empezar.",True,False : Flip

While Not KeyHit(57) : Wend

If LoadScreen_Destroy(pantallacarga) Then DebugLog "La pantalla de carga ha sido destruida..."

;Archivos del interface!
gui_back = LoadImage("images\gui_back.bmp")

;Cargando el interface.
Initialise(  )

;Selecciona una dificultad
win_difficulty = Window( 160, 56, 348, 363, "Selecciona una Dificultad", "0", 1, 0, 0, 0 )
btn_difficultyselected = Button( 176, 274, 146, 33, "Sigue...", "0", 1, 0, 0 )
btn_difficultyback = Button( 17, 272, 137, 35, "Atras", "0", 1, 0, 0 )
grp_difficulty = GroupBox( 164, 17, 168, 302, "Selecciona una dificultad de la lista" )
img_veryeasy = ImageBox( 16, 9, 64, 64, "images\difficulties\muyfacil.bmp", 0, 0, 1 )
img_easy = ImageBox( 86, 50, 67, 62, "images\difficulties\facil.bmp", 0, 0, 1 )
img_medium = ImageBox( 17, 97, 64, 64, "images\difficulties\medio.bmp", 0, 0, 1 )
img_hard = ImageBox( 88, 138, 62, 60, "images\difficulties\dificil.bmp", 0, 0, 1 )
img_veryhard = ImageBox( 18, 181, 62, 63, "images\difficulties\muydificil.bmp", 0, 0, 1 )
rad_veryeasy = Radio( 178, 39, "Jefe (el mas facil)", 1, 1 )
rad_easy = Radio( 178, 75, "Senor de la Guerra", 0, 1 )
rad_medium = Radio( 178, 115, "Principe", 0, 1 )
rad_hard = Radio( 178, 159, "Rey", 0, 1 )
rad_veryhard = Radio( 177, 202, "Emperador (el mas dificil)", 0, 1 )

;Salir
win_exit = Window( 225, 110, 227, 268, "Salir", "0", 1, 0, 0, 0 )
btn_yesexit = Button( 100, 53, 117, 28, "Si", "0", 1, 0, 0 )
btn_notexit = Button( 99, 84, 120, 30, "No", "0", 1, 0, 0 )
img_exit = ImageBox( 8, 8, 86, 225, "images\anthrocivexit.bmp", 0, 0, 1 )
lbl_exitquestion = Label( 99, 9, "Estas seguro de " + Chr(10) + "que quieres salir?", 0 )

;Menu principal
win_mainmenu = Window( 247, 33, 169, 361, "Menu Principal", "0", 1, 0, 0, 0 )
btn_singleplayer = Button( 10, 154, 146, 26, "Un Jugador", "0", 1, 0, 0 )
btn_multiplayer = Button( 10, 185, 147, 27, "Multijugador", "0", 1, 0, 0 )
SendMessage( btn_multiplayer, "BM_DISABLE" )
btn_credits = Button( 10, 254, 147, 33, "Creditos", "0", 1, 0, 0 )
btn_exit = Button( 10, 292, 147, 35, "Salir", "0", 1, 0, 0 )
img_title = ImageBox( 7, 6, 152, 142, "images\title.bmp", 0, 0, 1 )

;Selecciona numero de CPU's
win_botnumber = Window( 159, 57, 348, 364, "Selecciona numero de CPU's", "0", 1, 0, 0, 0 )
btn_cpuback = Button( 10, 301, 145, 29, "Atras", "0", 1, 0, 0 )
btn_cpuselected = Button( 171, 300, 162, 30, "Sigue...", "0", 1, 0, 0 )
lbl_cpunumber = Label( 88, 131, "Jugadores de CPU", 0 )
sldcpuplayers = Slider( 58, 103, 228, 19, Float(JugadoresCPU), 1.0, 8.0, 0, 0, "210,210,210", "210,210,210" )
tbox_cpunumber = TextBox( 58, 127, 27, 21, 0, 1, 18, 10, 1 )
SendMessage( tbox_cpunumber, "TM_DISABLE" )
SendMessage( tbox_cpunumber, "TM_SETTEXT", 0, "1" )

;Selecciona tu civilizacion
win_civselect = Window( 71, 131, 501, 226, "Selecciona tu civilizacion", "0", 1, 0, 0, 0 )
btn_civback = Button( 15, 97, 137, 34, "Atras", "0", 1, 0, 0 )
btn_civselected = Button( 15, 139, 137, 35, "A jugar!", "0", 1, 0, 0 )
lst_civselect = ListBox( 15, 12, 139, 54, 20, 20, 10, 0 )
AddListBoxItem( lst_civselect, 1, "Nyapaes", "" )
AddListBoxItem( lst_civselect, 2, "Anglonia", "" )
AddListBoxItem( lst_civselect, 3, "Babonia", "" )
AddListBoxItem( lst_civselect, 4, "Nilosia", "" )
AddListBoxItem( lst_civselect, 5, "Asiatica", "" )
AddListBoxItem( lst_civselect, 6, "Ruski", "" )
AddListBoxItem( lst_civselect, 7, "Niponia", "" )
AddListBoxItem( lst_civselect, 8, "Romania", "" )
AddListBoxItem( lst_civselect, 9, "Grequia", "" )
AddListBoxItem( lst_civselect, 10, "Estados Unidos de Aquerima", "" )
AddListBoxItem( lst_civselect, 11, "Franquia", "" )
AddListBoxItem( lst_civselect, 12, "Germania", "" )

txt_civdesc = TextBox( 161, 14, 331, 25, 1, 0, 18, 10, 0 )
SendMessage( txt_civdesc, "TM_DISABLE" )
SendMessage( txt_civdesc, "TM_SETTEXT", 0, "Selecciona tu civilizacion." )
txt_governor = TextBox( 14, 68, 138, 21, 0, 0, 18, 10, 1 )
SendMessage( txt_governor, "TM_SETTEXT", 0, "Sin Nombre" )

;Window
win_gamestatus = Window( 1, 76, 181, 400, "Estado", "0", 0, 0, 0, 0 )
btn_endturn = Button( 7, 354, 164, 35, "Fin del Turno", "0", 1, 0, 0 )
lbl_population = Label( 5, 153, "Poblacion", 0 )
lbl_year = Label( 5, 130, "Anyo", 0 )
lbl_gold = Label( 7, 86, "Tesoro:", 0 )
lbl_politics = Label( 6, 61, "Politica:", 0 )
lbl_research = Label( 4, 4, "Desarrollando:", 0 )
prg_research = ProgressBar( 5, 29, 167, 22, 0 )
txt_population = TextBox( 55, 151, 114, 21, 0, 0, 18, 10, 0 )
SendMessage( txt_population, "TM_SETTEXT", 0, "" )
SendMessage( txt_population, "TM_DISABLE" )
txt_year = TextBox( 36, 126, 80, 21, 0, 0, 18, 10, 0 )
SendMessage( txt_year, "TM_SETTEXT", 0, "" )
SendMessage( txt_year, "TM_DISABLE" )
txt_gold = TextBox( 48, 82, 123, 21, 0, 1, 18, 10, 0 )
SendMessage( txt_gold, "TM_SETTEXT", 0, "" )
SendMessage( txt_gold, "TM_DISABLE" )
txt_politics = TextBox( 48, 57, 123, 21, 0, 0, 18, 10, 0 )
SendMessage( txt_politics, "TM_SETTEXT", 0, "" )
SendMessage( txt_politics, "TM_DISABLE" )
txt_research = TextBox( 79, 2, 94, 21, 0, 0, 18, 10, 0 )
SendMessage( txt_research, "TM_SETTEXT", 0, "" )
SendMessage( txt_research, "TM_DISABLE" )

;Window
win_gamemenu = Window( 1, 0, 640, 77, "Menu del juego", "0", 1, 1, 0, 0 )
mnut_game = MenuTitle( "Juego" )
mnui_open = MenuItem( mnut_game, "Abrir", "Ctrl+a", "0", 0, 0, 0 )
mnui_save = MenuItem( mnut_game, "Guardar", "Ctrl+g", "0", 0, 0, 0 )
mnui_saveas = MenuItem( mnut_game, "Guardar Como...", "", "0", 0, 0, 0 )
mnui_newgame = MenuItem( mnut_game, "Nuevo Juego", "Ctrl+n", "0", 0, 0, 0 )
mnui_credits = MenuItem( mnut_game, "Creditos", "", "0", 0, 0, 0 )
mnui_exit = MenuItem( mnut_game, "Salir", "Alt+q", "0", 0, 0, 0 )
mnut_government = MenuTitle( "Gobierno" )
mnui_advisors = MenuItem( mnut_government, "Consejeros", "Shift+c", "0", 0, 0, 0 )
mnui_politics = MenuItem( mnut_government, "Cambiar Politica", "", "0", 0, 0, 0 )
mnui_despotism = MenuItem( mnui_politics, "Despotismo", "", "0", 0, 0, 0 )
mnui_monarchy = MenuItem( mnui_politics, "Monarquia", "", "0", 0, 0, 0 )
mnui_democracy = MenuItem( mnui_politics, "Democracia", "", "0", 0, 0, 0 )
mnui_communism = MenuItem( mnui_politics, "Comunismo", "", "0", 0, 0, 0 )
mnui_republic = MenuItem( mnui_politics, "La Republica", "", "0", 0, 0, 0 )
mnui014 = MenuItem( mnui_politics, "-----------", "", "0", 0, 0, 0 )
mnui_revolt = MenuItem( mnui_politics, "Ir a la Revolucion", "", "0", 0, 0, 0 )
mnui_research = MenuItem( mnut_government, "Investigacion", "", "0", 0, 0, 0 )
mnui_diplomacy = MenuItem( mnut_government, "Diplomacia...", "", "0", 0, 0, 0 )
mnut_times = MenuTitle( "El Historiador" )
mnut_orders = MenuTitle( "Ordenes" )
mnui_goto = MenuItem( mnut_orders, "Ir A...", "m", "0", 0, 0, 0 )
mnui_patrol = MenuItem( mnut_orders, "Patrullar", "p", "0", 0, 0, 0 )
mnui_fortress = MenuItem( mnut_orders, "Fortificar", "f", "0", 0, 0, 0 )
mnui021 = MenuItem( mnut_orders, "---------", "", "0", 0, 0, 0 )
mnui_buildcity = MenuItem( mnut_orders, "Construir Ciudad", "b", "0", 0, 0, 0 )
mnui_buildroad = MenuItem( mnut_orders, "Construir Carretera", "", "0", 0, 0, 0 )
mnui_buildrailroad = MenuItem( mnut_orders, "Construir Ferrocarril", "", "0", 0, 0, 0 )
mnui_buildmine = MenuItem( mnut_orders, "Construir Mina", "", "0", 0, 0, 0 )
mnui_buildfarm = MenuItem( mnut_orders, "Construir Regadio", "", "0", 0, 0, 0 )
mnui027 = MenuItem( mnut_orders, "---------", "", "0", 0, 0, 0 )
mnui_attack = MenuItem( mnut_orders, "Atacar", "a", "0", 0, 0, 0 )
mnut_cheats = MenuTitle( "Trampas" )
mnui_activatecheats = MenuItem( mnut_cheats, "Activar Trampa...", "", "0", 0, 0, 0 )
SendMessage( win_gamemenu, "WM_SETLOCKED" )

;Window
win_cheats = Window( 253, 198, 315, 164, "Activar Trampa", "0", 1, 0, 0, 0 )
btn_cheatselected = Button( 177, 87, 113, 38, "Dale!", "0", 1, 0, 0 )
btn_cheatback = Button( 13, 82, 159, 43, "Atras", "0", 1, 0, 0 )
lbl_cheats = Label( 14, 14, "Escribe la trampa aqui:", 0 )
txt_cheats = TextBox( 13, 31, 285, 21, 0, 0, 18, 10, 1 )
SendMessage( txt_cheats, "TM_SETTEXT", 0, "Trampa" )

;Window
win_spycheat = Window( 620, 2, 179, 226, "Espia!", "0", 1, 0, 0, 0 )
btn_indexselectedspy = Button( 100, 163, 70, 34, "OK", "0", 1, 0, 0 )
lbl_indexspy = Label( 5, 138, "Introduce el Numero " + Chr(10) + "del Jugador IA", 0 )
txt_AIplayer1 = TextBox( 10, 13, 156, 21, 0, 0, 18, 10, 1 )
SendMessage( txt_AIplayer1, "TM_DISABLE" )
SendMessage( txt_AIplayer1, "TM_SETTEXT", 0, "Jugador 1" )
txt_AIplayer2 = TextBox( 12, 38, 153, 21, 0, 0, 18, 10, 1 )
SendMessage( txt_AIplayer2, "TM_DISABLE" )
SendMessage( txt_AIplayer2, "TM_SETTEXT", 0, "Jugador 2" )
txt_AIPlayer3 = TextBox( 10, 61, 158, 21, 0, 0, 18, 10, 1 )
SendMessage( txt_AIPlayer3, "TM_DISABLE" )
SendMessage( txt_AIPlayer3, "TM_SETTEXT", 0, "Jugador 3" )
txt_indexinsert = TextBox( 113, 138, 43, 21, 0, 1, 18, 10, 1 )
SendMessage( txt_indexinsert, "TM_SETTEXT", 0, "1" )

SendMessage( win_difficulty, "WM_CLOSE" )
SendMessage( win_exit, "WM_CLOSE" )
SendMessage( win_botnumber, "WM_CLOSE" )
SendMessage( win_civselect, "WM_CLOSE" )
SendMessage( win_gamestatus, "WM_CLOSE" )
SendMessage( win_gamemenu, "WM_CLOSE" )
SendMessage( win_cheats, "WM_CLOSE" )
SendMessage( win_spycheat, "WM_CLOSE" )
mus_title = PlayMusic("music\title_anthrociv.mp3")
Repeat
DrawImage gui_back,0,0
;Draw the GUI and update the mouse
UpdateGUI(  )

;Event Handling
Select app\Event
Case EVENT_WINDOW
Select app\WindowEvent
End Select
Case EVENT_MENU
Select app\MenuEvent
End Select
Case EVENT_GADGET
Select app\GadgetEvent
Case btn_singleplayer
StopChannel mus_title
mus_frontend = PlayMusic("music\frontend_theme18.mp3")
SendMessage( win_mainmenu, "WM_CLOSE" )
SendMessage( win_difficulty, "WM_OPEN" )
Case rad_veryeasy
Dificultad1P = 0
Case rad_easy
Dificultad1P = 1
Case rad_medium
Dificultad1P = 2
Case rad_hard
Dificultad1P = 3
Case rad_veryhard
Dificultad1P = 4
Case btn_difficultyback
StopChannel mus_frontend
mus_title = PlayMusic("music\title_anthrociv.mp3")
SendMessage( win_difficulty, "WM_CLOSE" )
SendMessage( win_mainmenu, "WM_OPEN" )
Case btn_difficultyselected
SendMessage( win_difficulty, "WM_CLOSE" )
SendMessage( win_botnumber, "WM_OPEN" )
Case sldcpuplayers
JugadoresCPU = SendMessage( sldcpuplayers, "SM_GETVALUE" )
SendMessage( tbox_cpunumber, "TM_SETTEXT", 0, JugadoresCPU )
Case btn_cpuback
SendMessage( win_botnumber, "WM_CLOSE" )
SendMessage( win_difficulty, "WM_OPEN" )
Case btn_exit
SendMessage( win_mainmenu, "WM_CLOSE" )
SendMessage( win_exit, "WM_OPEN" )
Case btn_yesexit
app\Quit = True
Case btn_notexit
SendMessage( win_exit, "WM_CLOSE" )
SendMessage( win_mainmenu, "WM_OPEN" )
Case btn_cpuselected
SendMessage( win_botnumber, "WM_CLOSE" )
SendMessage( win_civselect, "WM_OPEN" )
Case lst_civselect
Indice2% = SendMessage( lst_civselect, "LM_GETINDEX" )
Nombre2$ = SendMessage( lst_civselect, "LM_GETCAPTION" )
Select Indice2%
Case 1
Descripcion2$ = "Mejoras: Agricultura y Navegacion."
Case 2
Descripcion2$ = "Mejoras: Riqueza y Navegacion."
Case 3
Descripcion2$ = "Mejoras: Construccion e Infanteria."
Case 4
Descripcion2$ = "Mejoras: Agricultura y Navegacion."
Case 5
Descripcion2$ = "Mejoras: Agricultura e Infanteria."
Case 6
Descripcion2$ = "Mejoras: Riqueza y Ciencia."
Case 7
Descripcion2$ = "Mejoras: Agricultura y Riqueza."
Case 8
Descripcion2$ = "Mejoras: Construccion y Riqueza."
Case 9
Descripcion2$ = "Mejoras: Construccion y Ciencia."
Case 10
Descripcion2$ = "Mejoras: Ciencia e Infanteria."
Case 11
Descripcion2$ = "Mejoras: Navegacion e Infanteria."
Case 12
Descripcion2$ = "Mejoras: Infanteria y Navegacion."
End Select
SendMessage( txt_civdesc, "TM_SETTEXT", 0, Descripcion2$ )
Case txt_governor
Gobernador2$ = SendMessage( txt_governor, "TM_GETTEXT" )
Case btn_civback
SendMessage( win_civselect, "WM_CLOSE" )
SendMessage( win_botnumber, "WM_OPEN" )
Case btn_civselected
Indice%(0) = Indice2%
Nombre$(0) = Nombre2$
Descripcion$(0) = Descripcion2$
Gobernador$(0) = Gobernador2$
Oro%(0) = 50
PoliticaID%(0) = P_despo
Poblacion%(0) = 0
For juan = 1 To JugadoresCPU
 Indice%(juan) = Rnd(1,12)
                 Select Indice%(juan)
                    Case 1
                       Nombre$(juan) = "Nyapaes"
                    Case 2
                       Nombre$(juan) = "Anglonia"
                    Case 3
                       Nombre$(juan) = "Babonia"
                    Case 4
                       Nombre$(juan) = "Nilosia"
                    Case 5
                       Nombre$(juan) = "Asiatica"
                    Case 6
                       Nombre$(juan) = "Ruski"
                    Case 7
                       Nombre$(juan) = "Niponia"
                    Case 8
                       Nombre$(juan) = "Romania"
                    Case 9
                       Nombre$(juan) = "Grequia"
                    Case 10
                       Nombre$(juan) = "Estados Unidos de Aquerima"
                    Case 11
                       Nombre$(juan) = "Franquia"
                    Case 12
                       Nombre$(juan) = "Germania"
                 End Select
                 Select Indice%(juan)
                    Case 1
                       Descripcion$(juan) = "Mejoras: Agricultura y Navegacion."
                    Case 2
                       Descripcion$(juan) = "Mejoras: Riqueza y Navegacion."
                    Case 3
                       Descripcion$(juan) = "Mejoras: Construccion e Infanteria."
                    Case 4
                       Descripcion$(juan) = "Mejoras: Agricultura y Navegacion."
                    Case 5
                       Descripcion$(juan) = "Mejoras: Agricultura e Infanteria."
                    Case 6
                       Descripcion$(juan) = "Mejoras: Riqueza y Ciencia."
                    Case 7
                       Descripcion$(juan) = "Mejoras: Agricultura y Riqueza."
                    Case 8
                       Descripcion$(juan) = "Mejoras: Construccion y Riqueza."
                    Case 9
                       Descripcion$(juan) = "Mejoras: Construccion y Ciencia."
                    Case 10
                       Descripcion$(juan) = "Mejoras: Ciencia e Infanteria."
                    Case 11
                       Descripcion$(juan) = "Mejoras: Navegacion e Infanteria."
                    Case 12
                       Descripcion$(juan) = "Mejoras: Infanteria y Navegacion."
                 End Select
                 Select Indice%(juan)
                    Case 1
                       Gobernador$(juan) = "Rodriguez Pescadero"
                    Case 2
                       Gobernador$(juan) = "Reina Isabel XII"
                    Case 3
                       Gobernador$(juan) = "Nabocodosur"
                    Case 4
                       Gobernador$(juan) = "Ramises V"
                    Case 5
                       Gobernador$(juan) = "Chuang Ching Chung"
                    Case 6
                       Gobernador$(juan) = "Ilich Ulianovich Linin"
                    Case 7
                       Gobernador$(juan) = "Mutsobitsi Imokawa"
                    Case 8
                       Gobernador$(juan) = "Julii Quaesar"
                    Case 9
                       Gobernador$(juan) = "Pedrocles"
                    Case 10
                       Gobernador$(juan) = "Abe Locohn"
                    Case 11
                       Gobernador$(juan) = "Jacques Chubaque"
                    Case 12
                       Gobernador$(juan) = "Arrolf Himmler"
                 End Select
                 Oro%(juan) = 50 * Dificultad1P
                 PoliticaID%(juan) = P_despo
                 Poblacion%(juan) = 0
Next
SendMessage( win_civselect, "WM_CLOSE" )
SendMessage( win_gamemenu, "WM_OPEN" )
SendMessage( win_gamestatus, "WM_OPEN" )
Repeat
UpdateGUI()
If MapaCreado = 1 Then
isometrico()
MapaCreado = 0
EndIf
SendMessage( txt_population, "TM_SETTEXT", 0, Str Poblacion%(0) )
SendMessage( txt_year, "TM_SETTEXT", 0, Edad% + " " + ACDC$ )
SendMessage( txt_gold, "TM_SETTEXT", 0, Oro%(0) + " U.M." )
Select PoliticaID%(0)
Case P_despo
SendMessage( txt_politics, "TM_SETTEXT", 0, "Despotismo" )
Case P_monar
SendMessage( txt_politics, "TM_SETTEXT", 0, "Monarquia" )
Case P_repub
SendMessage( txt_politics, "TM_SETTEXT", 0, "Republica" )
Case P_democ
SendMessage( txt_politics, "TM_SETTEXT", 0, "Democracia" )
Case P_comun
SendMessage( txt_politics, "TM_SETTEXT", 0, "Comunismo" )
Case P_anarq
SendMessage( txt_politics, "TM_SETTEXT", 0, "Anarquia" )
End Select
Select app\Event
Case EVENT_WINDOW
Select app\WindowEvent
End Select
Case EVENT_MENU
Select app\MenuEvent
Case mnui_activatecheats
SendMessage( win_cheats, "WM_OPEN" )
End Select
Case EVENT_GADGET
Select app\GadgetEvent
Case txt_cheats
trampaactual = SendMessage( txt_cheats, "TM_GETTEXT" )
Case btn_cheatselected
If trampaactual = "ninoaleman" Then
MessageBox("Has activado el espia aleman!", "Trampa activada!", 1)
SendMessage( win_spycheat, "WM_OPEN" )
Else
MessageBox("Codigo Incorrecto.", "Ups...", 1)
EndIf
Case btn_cheatback
SendMessage( win_cheats, "WM_CLOSE" )
Case txt_indexinsert
espiaindice% = SendMessage( txt_indexinsert, "TM_GETTEXT" )
Case btn_indexselectedspy
If espiaindice% < 9 Then
SendMessage( txt_AIPlayer1, "TM_SETTEXT", 0, Nombre$(espiaindice%) )
SendMessage( txt_AIPlayer2, "TM_SETTEXT", 0, Descripcion$(espiaindice%) )
SendMessage( txt_AIPlayer3, "TM_SETTEXT", 0, Gobernador$(espiaindice%) )
Else
MessageBox("No puedes poner mas del" + Chr(10) + "maximo de jugadores de IA!", "Control de sanidad...", 1)
EndIf
End Select
End Select
DrawMouse()
ResetEvents()
Flip
Cls
Until KeyHit( 1 ) Or app\Quit = True
End Select
End Select

;Draw the mouse
DrawMouse(  )

;Reset all GUI events
ResetEvents(  )

Flip
Cls

Until KeyHit( 1 ) Or app\Quit = True
;Liberar todas las imagenes creadas por el BlitzUI
Destroy(  )

End


Bien, pues quiero decir lo siguiente: he intentado poner el mapa detrás del GUI pero lo que hace es aparecer y desaparecer al instante. (isometrico() es la funcion que genera el mapa) ¿Alguien sabe donde coloco isometrico()?
#39
General Programadores / Engine isometrico para Blitz
07 de Julio de 2006, 09:47:08 PM
Hola.

Quisiera agradeceros a todos por toda la ayuda que me habéis dado. Ahora bien, pregunto:

¿Alguien conoce algún engine isométrico para Blitz?

Gracias.
#40
General Programadores / Otro Problema Blitz
07 de Julio de 2006, 02:14:48 AM
Tengo este código:
For juan = 1 To JugadoresCPU
j.Civilizacion = New Civilizacion
j\Numero% = juan
j\Indice% = Rnd(1,12)
Select j\Indice%
Case 1
j\Nombre$ = "Nyapaes"
Case 2
j\Nombre$ = "Anglonia"
Case 3
j\Nombre$ = "Babonia"
Case 4
j\Nombre$ = "Nilosia"
Case 5
j\Nombre$ = "Asiatica"
Case 6
j\Nombre$ = "Ruski"
Case 7
j\Nombre$ = "Niponia"
Case 8
j\nombre$ = "Romania"
Case 9
j\nombre$ = "Grequia"
Case 10
j\nombre$ = "Estados Unidos de Aquerima"
Case 11
j\nombre$ = "Franquia"
Case 12
j\nombre$ = "Germania"
End Select
Select j\Indice%
Case 1
j\Descripcion$ = "Mejoras: Agricultura y Navegacion. Desarrollo: Alfareria."
Case 2
j\Descripcion$ = "Mejoras: Riqueza y Navegacion. Desarrollo: Escritura."
Case 3
j\Descripcion$ = "Mejoras: Construccion e Infanteria. Desarrollo: Alfareria."
Case 4
j\Descripcion$ = "Mejoras: Agricultura y Navegacion. Desarrollo: Enterramiento Ceremonial."
Case 5
j\Descripcion$ = "Mejoras: Agricultura e Infanteria. Desarrollo: Alfareria."
Case 6
j\Descripcion$ = "Mejoras: Riqueza y Ciencia. Desarrollo: Acunyacion."
Case 7
j\Descripcion$ = "Mejoras: Agricultura y Riqueza. Desarrollo: Alfareria."
Case 8
j\Descripcion$ = "Mejoras: Construccion y Riqueza. Desarrollo: Acunyacion."
Case 9
j\Descripcion$ = "Mejoras: Construccion y Ciencia. Desarrollo: Metalurgia."
Case 10
j\Descripcion$ = "Mejoras: Ciencia e Infanteria. Desarrollo: Acunyacion."
Case 11
j\Descripcion$ = "Mejoras: Navegacion e Infanteria. Desarrollo: Acunyacion."
Case 12
j\Descripcion$ = "Mejoras: Infanteria y Navegacion. Desarrollo: Metalurgia."
End Select
Select j\Indice%
Case 1
j\Gobernador$ = "Rodriguez Pescadero"
Case 2
j\Gobernador$ = "Reina Isabel XII"
Case 3
j\Gobernador$ = "Nabocodosur"
Case 4
j\Gobernador$ = "Ramises V"
Case 5
j\Gobernador$ = "Chuang Ching Chung"
Case 6
j\Gobernador$ = "Ilich Ulianovich Linin"
Case 7
j\Gobernador$ = "Mutsobitsi Imokawa"
Case 8
j\Gobernador$ = "Julii Quaesar"
Case 9
j\Gobernador$ = "Pedrocles"
Case 10
j\Gobernador$ = "Abe Locohn"
Case 11
j\Gobernador$ = "Jacques Chubaque"
Case 12
j\Gobernador$ = "Arrolf Himmler"
End Select
j\Oro% = 50 * Dificultad1P
j\PoliticaID% = P_despo
j\Poblacion% = 0
Next

Se supone que todo esto pone los nombres, descripciones, etc. a los jugadores de la IA, pero algo falla: no salen. ¿Hay alguna manera de llamar lo mismo de una Field o variable de type que de la variable puesta en el For?





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.