JUEGOS
eLectronic @ magaZine #0
Técnica Bounding box
La técnica básica, pero muy utilizada en los video juegos que se basan
en 'BIT MAPS' (imágenes 2d), es la llamada "bounding box technique".
Consiste en un rectángulo imaginario que rodea a cada 'sprite' del juego.
Para saber si entre dos de estos 'sprites' existe una colisión, analizamos
si sus 'bounding box'se sobreponen.
Entonces... sean dos objetos (sprites), A y B, con sus 'bounding box' de
igual o distintos tamaños, probamos si se están chocando mediante el siguiente
"pseudo-c":
Supongamos que (x, y) son las coordenadas del 'sprite', que tienen como origen el extremo
superior izquierdo del BITMAP.
x_A, y_A coordenadas del 'sprite' A
x_B, y_B coordenadas del 'sprite' B
int xmin_A,
ymin_A,
xmax_A,
ymax_A;
xmin_A = x_A;
xmax_A = x_A + ANCHO_A;
ymin_A = y_A;
ymax_A = y_A + LARGO_A;
xmin_B = x_B;
xmax_B = x_B + ANCHO_B;
ymin_B = y_B;
ymax_B = y_B + LARGO_B;
/* esta el 'sprite' B completamente a la izquierda del A? */
if(xmax_B < xmin_A) return(FALSE); /* no hay colisi¢n */
/* esta el 'sprite' B completamente a la derecha del A? */
if(xmin_B > xmax_A) return(FALSE);
/* esta el 'sprite' B completamente por encima del A? */
if(ymax_B < ymin_A) return(FALSE);
/* esta el 'sprite' B completamente por debajo del A? */
if(ymin_B > ymax_A) return(FALSE);
/* entonces existe colisi¢n!! */
return(TRUE);
Podemos optimizar este código si todos nuestros 'sprites' tienen el mismo
tamaño de 'bounding box':
int dx, dy;
dx = abs(x_A - x_B); /* el uso de abs es para obtener un valor sin signo */
dy = abs(y_A - y_B);
if(dx < ANCHO && dy < LARGO)
return(TRUE);
else
return(FALSE);
Bueno... esto es lo básico en lo que se refiere a la técnica "bounding box",
espero que sea de utilidad...
Cualquier duda o error que encuentren pueden escribirme a:
leocd@adinet.com.uy
QUAKE
Quake es un juego desarrollado por
Id Software (sí, los de Doom) que tiene por objeto masacrar todo
lo que se mueva en pantalla (¿os suena de algo?). Vale, eso lo
hacen el 90% de los juegos del planeta, entonces ¿qué tiene de
nuevo Quake?.
- Lo primero son los gráficos, alucinantes,
por fin son 3d "reales". Cuando le das la
vuelta a una figura no vas viendo "saltitos" de
los bitmaps como en doom, hexen, duke... El tratamiento
de las luces y el color está muy cuidado, de tal manera
que puedes incluso esconderte en las sombras si así lo
deseas.
- >Lo segundo es la posibilidad de hacer y
usar niveles propios como ocurre en la mayoría de los
juegos de este tipo (doom, hexen, duke... otra vez).
- Lo tercero es que está preparado para
internet, permite usar el protocolo TCP/IP, lo único que has
de hacer es conocer el IP de un servidor de quake y a
jugaaaar.
- y lo cuarto, y para mí lo más
interesante, es que puedes rehacer gran parte del juego
gracias al Quake-C. Lo que te permite
"parchear" Quake para modificarlo a tu gusto.
Listas de Correo sobre Quake:
Quake Cheat Codes
Los códigos de "ayuda" de Quake deben ser introducidos en modo Consola.
Para cambiar a este modo mientras jugamos, debemos teclear " ~ ". Escribir
el código que queramos, y pulsar Enter para grabarlo, trás esto volveremos
al juego con Escape.
- GOD
Eres Dios, Invencible. 0:-)
- FLY
Podrás volar. Teclea D para subir y C para bajar (Este código es
muy bueno para encontrar pasillos secretos, cuando estás perdido)
- IMPULSE 9
Todas las armas, hasta los dientes.
- IMPULSE 255
Arregla todos los daños.
- MAP E1Mx
Saltar a cualquier nivel del episodio 1, donde x es nivel
deseado. (En la versión Share, x puede ser un nº entre 1 y 8)
- GIVE arma
Coges el arma que desees. Arma es el número de armamento.
Por ejemplo, "GIVE 7" cogerás el lanzador de misiles.
- GIVE item amt
Seleccionas munición o puntos de "salud", item es
la letra de la munición y amt es el total que quieres.
Por ejemplo, "GIVE N 125" significa que cogerás 125 clavos.
La máxima munición de cualquier tipo es 255; la máxima salud es 999.
Tipos de munición: S = Shells N = Nails R = Rockets C = Energy Cells
tomworld@poboxes.com
QuakeWorld
Jugar a Quake por internet como
todos hacemos en el servidor 161.72.161.72 tiene problemas
importantes. Todos hemos sufrido dias en los que en lugar de
jugar parece que haciamos Break-dance. Este movimiento a saltos
es la pesadilla de todos los usuarios de modem, entre los que me
encuentro. Para evitar esto, una empresa americana, ayudada por
John Carmack, ha desarrollado un sistema para evitar el
movimiento a saltos, y a la vez poder organizar un poco el caos
que es esto del juego por Internet. Si seguimos a este paso
entraremos en un server con la gravedad invertida y en el que se
juegue un campeonato de petanca como nos descuidemos!!
Este sistema se basa en una
colección de servidores maestros, a los que se conectan todos
los demas, y que gestionan la entrada y salida de jugadores de
todos los servidores. Asi, los jugadores se conectan al servidor
maestro, que es quien conecta a los jugadores con el servidor en
el que van a jugar. Al entrar en el servidor, este nos manda
todos los ficheros necesarios para jugar que no tengamos en
nuestro ordenador, como skins, niveles, sonidos, gráficos de
nuevas y peligrosas armas. (¡¡el lanzacucharillas!!)
El sistema de rankings actual se
basa en dos cosas: rank, o diferencia entre frags a favor y frags
en contra, y skill, calculo que mide la habilidad del jugador
segun sus asesinos y sus victimas (o eso es teoricamente)
Actualmente son un autentico desastre, y hay gente con ranks de
mas de 200 a base de jugar en su propio servidor (eso la maquina
no lo mide). Al menos el sistema de identificación de los
usuarios funciona bastante bien.
La solucion para el sistema del lag
se basa en dos parametros:
-El cliente y el servidor ahora se
mandan paquetes de datos sin esperar la respuesta, lo que
disminuye el número de "enganchones".
-El cliente, ademas de mandar las
ordenes al servidor, "predice" las respuestas a tus
ordenes y la trayectoria de los proyectiles en movimiento. Para
hacer esto, hay que dar un valor a la variable poshlatency, que
debe ser igual al ping para que los resultados sean correctos.
Aun asi, las respuestas del entorno se haecn mas lentas, por lo
que coges el arma unas decimas de segundo despues de haber pasado
sobre ella, los ascensores tardan mas en subir... (no se dan
cuenta de que les activaste)
Es decir, que quien tiene buen ping
tiene tanta o mas ventaja que antes. Ademas, la mayoria de los
servidores tienen inquilinos locales, lo que unido a que la
mayoria de los servidores estan en América hace tarea harto
dificil matar mas de lo que te matan.
Como instalarlo:
-En Stomped y en IBK puedes
encontrar el programa cliente, qwcl11217.zip (mas o menos), bajatelo
y descomprimelo en el directorio de Quake.
-Hay un fichero de skins, que te puedes bajar o no. De cualquier
modo, si entras en un servidor en el que alguien tiene una skin que tu
no tengas se copiara esa skin a tu disco duro automaticamente.
-Viene con la nueva version de Qspy, optimizado para Quakeworld.
Deberiamos de usarlo, pero a mi me va tan mal que prefiero escribir la
linea de comandos en una sesion de DOS:
qwcl - master 206.86.0.22
-Tras esperar un momento entraras
en la consola de Quake, pero con Quakeworld escrito abajo a la
derecha. Ahora tienes que registrarte como nuevo usuario,
escribiendo newuser <password> No te olvides de el!!
-El master te devolvera un userid,
que debes apuntar junto con el password. Ahora ya estas
registrado, te llamas player y vas de blanco. Si no quieres
parecer un pardillo, hay que aprender el nuevo modo de ponerse el
uniforme de batalla!!
-Escribe setinfo. Asi apareceran
tus caracteristicas. No puedes cambiar las que llevan un
asterisco delante. Cambia las demas, por ejemplo:
setinfo name Ryoga
setinfo topcolor 12
setinfo bottomcolor 1
setinfo clan IBK
tambien puedes poner una skin,
utilizando setskin, pero yo no llevo hasta que IBK saque la suya.
Puedes proteger las nuevas skin con password, para que nadie te
confunda en partidas por equipos.
-escribe servers para recibir la
lista de servidores, y connect ***.***.***.*** para conectarte a
uno. Ya estas jugando!!!
-Para conectar en futuras
ocasiones, escribes username ***** y password **** y luego
conectas a un server dice arriba.
montero@jet.es
jvalero@bemarnet.es
©eLectronic @ magaZine - 1997.
32 BITS VISUAL CREATIONS CROUP