GUIA DE EDUKE
 • ¿Qué es Eduke?
 • Estructura del puerto
LAS VARIABLES
 • Fundamentos
 • Comandos generales
 • Operaciones Lógicas
 • Variables actualizadas
 • Variables predefinidas
ESTRUCTURAS
 • Introducción
 • Sector
 • Wall
 • Sprite
 • El jugador
 • Userdef
 • Comandos alternativos
NUEVOS ELEMENTOS
 • Switch
 • Eventloadactor
 • Bucles
OTROS COMANDOS
 • Display
 • Proyectiles
 • Otros comandos
EVENTOS
 • Introducción
 • Listado de eventos
MAS INFORMACION
 • Eduke32 Wiki
 • Eduke 2.0 - Oficial
 • Eduke 2.1.1
 • RTCM - Eduke FAQ
 • RTCM - Eduke Guide

Introducción a las estructuras


Introducción a las estructuras


Ha llegado la hora de tratar con un punto algo complejo en Eduke32, las estructuras. Pero antes de nada deberías saber que es una estructura en lenguaje C.

¿Qué es una estructura?

Las estructura en C es una colección de nombres que se referencia bajo un único nombre, proporcionando un medio conveniente de mantener junta una información relacionada.

En Duke Nukem 3D existen varias de estructuras, algunas de ellas (las más importantes para el engine) fueron definidas por Ken Silverman (recordamos que esta persona es el creador del engine Build, utilizado por 3D Realms para programar Duke Nukem 3D), otras programadas por 3D Realms (quizás las más importantes para el juego en si, como por ejemplo la estructura del jugador) y otras creadas por Matt Saettler, en cuanto a variables y sacadas al lenguaje con para programar y portar códigos del C ha dicho lenguaje.

En Eduke32 hay acceso a las siguientes estructuras: "actor"(=los sprites), "wall" (=las paredes), "sector" (=los sectores),"ps" (=el jugador), userdef (=configuración). Empecemos por las estructuras creadas por Ken Silverman y sacadas a con por Matt Saettler: "actor", "wall" y "sector".

La estructura wall sirve para obtener las variables de las paredes. Los comandos tienen la forma:

 getwall[ < VARIABLE1 > ].miembro < VARIABLE2 >


 setwall[ < VARIABLE1 > ].miembro < VARIABLE2 >

Ahora vamos a proceder a explicar detenidamente el comando. Todos los comandos de obtención / configuración de una variable asociada a una estructura tienen la misma forma y el mismo uso que "getwall / setwall". Nos empezamos a fijar en el prefijo del comando: si es "get" nos servirá para obtener esa variable y sacarla a otra que podamos operar en con. Si el prefijo del comando es "set" solamente podremos configurar la variable.

VARIABLE1 es la variable a la que se refiere la estructura, y en Duke Nukem se refiere a la Id de la pared, sector o sprite. Es NECESARIO que no se supriman los corchetes, es la forma del comando. Esa variable se refiere a la id de la pared (en este caso). Obtenerla es una cosa compleja pero en la sección de código puedes encontrar algún ejemplo de cómo hacerlo (cada uno debe utilizar su ingenio para conseguir obtenerla si lo cree necesario). Las variables puedes nombrarlas sin declararlas (ya que no podrás operar con ellas y llámalas, por ejemplo, WALL, SECTOR.... pero en "actor" hay una, THISACTOR, que es de lectura solamente (no puedes cambiarla) y sirve para referirse a la id del actor en el que se encuentre ejecutando el código (por ejemplo getactor[THISACTOR].x X, con esto obtengo la coordenada x del actor en el que estoy programando.

VARIABLE2 es la variable con la que exportamos el valor de un miembro de la estructura o con el valor que queremos configurar un miembro de la estructura.

Aunque puedes utilizar alguna declarada si ya conoces la id de la estructura, por ejemplo, para cambiar la textura de un suelo conocido: setsector[ID_SECTOR].floorpicnum TEXTURA_SUELO . Con esto se realiza el cambio de textura y por ejemplo, hemos obtenido ID_SECTOR con un sprite conocido (el actor1550 tiene lotag 10). Para entender esto mejor lee los miembros del actor.

Las variables pre-definidas sirven para acceder a ciertas Id's en las estructuras. En Eduke32 las variables pre-definidas más importantes con uso en estructuras son:

THISACTOR que se refiere a la id del actor que estes programando. Cuando la utilizas no se refiere a un actor en concreto, si no a todos los sprites que tengan por grafico el del actor que estés programando.

myconnectindex es otra variable pre-definida. Matt Saettler la definió así: “player ID of 'local' player”. No ha sido muy testeada por mi parte, pero creemos que se refiere en el juego en red, al jugador local (a la id del jugador, se entiende).

screenpeek se refiere a la id del jugador que esta mirando por la pantalla, o dicho de otro modo, al jugador que se le renderiza la imagen en la pantalla. Por ejemplo, cuando estas jugado en modo de un solo jugador, tu.

RETURN es la ultima variable pre-definida importante usada en este tipo de estructuras. No es una variable muy utilizada, aunque existe. Su uso importante se encuentra en los eventos, pero de momento aun no profundizamos.

Política de privacidad
© Copyright - 2003 - 2013 Dukespana.com
Todos los derechos reservados.