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

Estructura Sprite


Estructura sprite


Esta es la última estructura en Eduke que definió y programó Ken Silverman. Con ella tienes acceso a todas las variables del sprite, que es exactamente el elemento mas modificado en el lenguaje CON.

Su definicion en C es la siguiente:

typedef struct
{

long x, y, z;
short cstat, picnum;
signed char shade;
char pal, clipdist, detail;
unsigned char xrepeat, yrepeat;
signed char xoffset, yoffset;
short sectnum, statnum;
short ang, owner, xvel, yvel, zvel;
short lotag, hitag, extra;
} sectortype;

Sus comandos son:

 getactor[ < VARIABLE1 > ].miembro < VARIABLE2 >
 setactor[ < VARIABLE1 > ].miembro < VARIABLE2 >

Finalmente describimos las variables:

Variable

Uso

x

Coordenada " x " del sprite

y

Coordenada " y " del sprite

z

Coordenada " z " del sprite

cstat

Propiedades del sprite. Modificadas por el comando " cstat " (En Duke Nukem 1.3 o superior)

picnum

Es la textura del sprite

shade

Es la sombra del sprite

pal

Es la paleta (color) del sprite

clipdist

Es la distancia de choque del actor (para colisiones)

detail

Definida por Matt: " un-used bytes used to pad the next member variable out to an even alignment "

xrepeat

Es el tamaño " x " del actor

yrepeat

Es el tamaño " y " del actor

xoffset

Orientacion " x " de la textura del actor

yoffset

Orientacion " y " de la textura del actor

sectnum

Es número de sector donde se encuentra el actor

statnum

Lista interna donde esta el actor (activo, inactivo...)

ang

Angulo del sprite.

owner

Esta variable es usada en sprites para saber quien dispara algo

xvel

Velocidad x del actor (componente x del vector velocidad)

yvel

Velocidad y del actor (componente y del vector velocidad)

zvel

Velocidad z del actor (componente z del vector velocidad)

lotag

Es la variable lotag del actor

hitag

Es la variable hitag del actor

extra

Esta variable no se refiere a nada concreto, pero Ken Silverman la creo para el programador le diera algun uso si es necesario



También mediante los comandos getactor/setactor se puede acceder a otra estructura: hittype usada para proyectiles entre otras cosas. Sus miembros son:

Variable

Uso

htcgg

Controla cuando obtiene nuevo dato globalz. Lo deja con un valor de 6 despues de que los datos son calculados y cuenta hacia trás despues de ello. Inicialmente 0.

htpicnum

Es el numero de grafico. Sirve cuando compara con 'ifwasweapon' y 'ifspawnedby'

htang

Angulo que es usado en algunas ocasiones en vez del angulo del sprite

htextra

Tiene distintos usos, dependiendo del estado del sprite. Parece estar relacionado con la cantidad de daño producido al sprite. -1 si no se produce daño.

htowner

Configura el owner del sprite. Usado para saber quien hace daño.

htmovflag

Movimientos grabados al intentar mover el sprite. ifnotmoving lo comprueba por (hittype[g_i].movflag&49152) > 16384 );

httempang

Sus aplicaciones son variadas dependiendo del caso. Configura la antigua paleta cuando se usa el comando 'spritepal'

htactorstayput

Si es -1 significa que el sprite no esta puesto. En el caso de que se mayor o igual a 0, entonces sera la ID del sector (numero de sector) donde se encuentra. Configurado para el actor actual cuando llamas al comando 'addkills'

htdispicnum

Si es -4 entonces no se mostraran sombras en actores.

httimetosleep

Si es mayor que 1 se producira una cuenta abajo. Cuando llega a 1 el sprite cambia a statlist 2. Ver mas abajo las statlist. Configurado internamente por mucha cosas. Configurado directamente por 'sleeptime'

htfloorz

Configurado cuando htcgg es menor o igual a 0. Información actual de los sectores

htceilingz

Configurado cuando htcgg es menor o igual a 0. Información actual de los sectores

htlastvx

Donde conocian el ultimo blanco del jugador para estar. Utilizado en la busqueda del jugador

htlastvy

Donde conocian el ultimo blanco del jugador para estar. Utilizado en la busqueda del jugador

htbposx

bob' position

htbposy

bob' position

htbposz

bob' position

htg_t

Este miembro es un poco especial, va seguido de dos variables, la primera es una especie de ID y la segunda es el resultado:
Los valores posibles y su uso son:

0 = Angulo de movimiento usado para calcular la vuelta hacia el jugador, etc... Configurado directamente por el comando count, y comprobado por ifcount
1 = Se refiere al movimiento deseado. Modificado directamente por el comando move
2 = Es el contador de accion (comando action). Es usado por ifactioncount
3 = Temporal usada durante el proceso de la acion
4 = La acion actual que se esta realizando. Se modifica directamente desde los comandos move y action. Si es mayor que 0, entonces la accion es contada y realizada. El lotag es incrementado por TICSPERFRAME
5 = Es la ID de la ai (inteligencia artificial) que se esta llevando a cabo (comando ai)

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