Descripción:
Anima todos los entes del mundo, y realiza la comprobación de colisiones.
El parámetro opcional veloc_anim# permite afectar a la velocidad de las animaciones de todos los entes a la vez. Un valor de 1 animará los entes a su velocidad de animación normal, un valor de 2 animará los entes al doble de su velocidad normal de animación, y así
sucesivamente.
Para mejores resultados usa este comando una vez en el bucle principal, justo antes de RenderWorld.
CaptureWorld
Parámetros:
Ninguno.
Descripción:
Hace una captura de la posición y orientación de cada uno de los entes del mundo.
Esta captura puede usarse luego con RenderWorld para renderizar los entes en el punto entre sus posiciones capturadas y sus posiciones actuales. Ver RenderWorld para saber más sobre cómo y porqué se hace.
RenderWorld [tween#]
Parámetros:
Descripción:
Renderiza todos los entes en un mundo. El parámetro opcional tween puede usarse para renderizar todos los entes en un punto cualquiera entre sus posiciones capturadas y su posición actual. Un valor tween de 0 renderizará los entes a su posición capturada. Un valor de 1 renderizará los entes a su posicioón actual. Pueden usarse otros valores para la interpolación. Por defecto es 1. Tweening es una técnica usada para permitir actualizar la lógica los juegos un número fijo de veces, por ejemplo, 30 mientras interpolamos con Blitz3D en estos juegos los actualiza tantas frames por Segundo como puede, por ejemplo 60+, con cada frame diferente al final. Esto resulta en un juego en el que solamente tiene que tener su lógica de juego actualizada a la mitad de sus renderizados por Segundo, liberando tiempo de CPU, mientras al mismo tiempo el juego se ejecuta de la mejor manera posible en la máquina de cada uno. Renderizar con tweening es una técnica bastante avanzada, y no es necesaria usarla, por lo tanto no te preocupes si no lo entiendes demasiado. Mira la demo del castillo incluida en la carpeta mak (nickname de Mark Sibly, autor de Blitz3D) en la sección de ejemplos de Blitz3D para una demostración del renderizado con tweening.
ClearWorld [entes][,pinceles][,texturas]
Parámetros:
Entes – true para borrar los entes, false para no hacerlo Pinceles – true para borrar los pinceles, false para no hacerlo Texturas – true para borrar las texturas, false para no hacerlo
Descripción:
Borra todos los entes, pinceles y/o texturas de un mundo. Se usa cuando el nivel de un juego se ha terminado y se desea borrar todo para prepararse para cargar nuevos entes/pinceles/texturas sin tener que borrar cada ente/pincel/textura individualmente.
Ver también: FreeEntity, FreeBrush, FreeTexture.
LoaderMatrix extensión_archivo$,xx#,xy#,xz#,yx#,yy#,yz#,zx#,zy#,zz#
Parámetros:
Extension_archivo$ - extensión del archivo 3d, por ejemplo ".x",".3ds" xx# - elemento 1,1 de una matriz de 3x3
xy# - elemento 2,1 de una matriz de 3x3 xz# - elemento 3,1 de una matriz de 3x3 yx# - elemento 1,2 de una matriz de 3x3 yy# - elemento 2,2 de una matriz de 3x3 yz# - elemento 3,2 de una matriz de 3x3 zx# - elemento 1,3 de una matriz de 3x3 zy# - elemento 2,3 de una matriz de 3x3 zz# - elemento 3,3 de una matriz de 3x3
Descripción:
Establece una matriz de archivos 3d cargados con la extensión de archivo especificada. Puede usarse para cambiar el sistema de coordenadas cuando se cargan. Por defecto, se usa el siguiente cargador de matrices:
LoaderMatrix "x",1,0,0,0,1,0,0,0,1 ; sin cambios en el sistema de coordenadas LoaderMatrix "3ds",1,0,0,0,0,1,0,1,0 ; intercambia los ejes y/z
Puedes usar LoaderMatrix para invertir mallas/animaciones si es necesario, por ejemplo: LoaderMatrix "x",-1,0,0,0,1,0,0,0,1 ; invierte las coordenadas x para los archivos ".x" LoaderMatrix "3ds",-1,0,0,0,0,-1,0,1,0 ; intercambia y/z, anula x/z para archivos ".3ds"
TrisRendered()
Parámetros:
Ninguno.
Descripción:
Devuelve el número de triángulos renderizados durante el último RenderWorld. Útil para depurar - para ver si estás mostrando muchos o pocos polígonos.
Ejemplo:
; TrisRendered Example ; --- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,0,-2 light=CreateLight() RotateEntity light,90,0,0segs=Rand( 2,16 )
sphere=CreateSphere(segs) While Not KeyDown( 1 ) If KeyHit( 57 )=True FreeEntity sphere segs=Rand( 2,16 ) sphere=CreateSphere( segs ) EndIf RenderWorld
Text 0,0,"Press space to create a sphere with a random segments value" ; Display triangles rendered
Text 0,20,"Triangles Rendered: "+TrisRendered() Flip Wend End
TEXTURA
CreateTexture ( ancho,alto[,flags][,frames] )
Parámetros:
ancho – ancho de la textura alto – alto de la textura
flags (opcional) – flag de la textura 1: Color
2: Alfa 4: Oculta
8: Mipmapped (mapa de bajo detalle) 16: Clamp U
32: Clamp V
64: mapa de reflexión esférica
frames (opcional) – número de frames que tendrá la textura
Descripción:
Crea una textura y devuelve su puntero. El ancho y el alto son el tamaño de la textura. Nota que el tamaño actual de la textura puede ser diferente del ancho y alto requeridos, ya que diferentes tipos de hardware 3D soportan diferentes tamaños de texturas. El parámetro opcional flags permite aplicar ciertos efectos a la textura. Los pueden añadirse para combinar dos o más efectos, por ejemplo 3 (1+2) = textura con color y mapas alfa. Aquí tienes algunas descripciones de los flags:
1: Color – mapa de color, lo que ves es lo que obtienes.
2: Alfa – mapa de alfa. Si una imagen contiene un mapa de alfa, este se usará para hacer ciertas áreas de la textura transparente. A parte de esto, el mapa de color podrá usarse como un mapa alfa. Con los mapas alfa, las áreas oscuras siempre equivalen a transparencias altas, las áreas iluminadas equivalen a baja transparencia.
4: Oculta – todas las áreas de una textura coloreada 0,0,0 no se dibujarán en la pantalla.
8: Mipmapped – versión de bajo detalle de la textura que se usará en grandes distancias. Da como resultado una apariencia borrosa. 16: Clamp u – coordenada u de la textura anclada. Evita que el plegado de la textura.
32: Clamp v – coordenada v de la textura anclada. Evita que el plegado de la textura. 64: mapa de reflexión esférica – mapa de ambiente, para una apariencia brillante.
Una vez que se haya creado una textura, se usará SetBuffer TextureBuffer para dibujarla. Aunque, para mostrar gráficos 2D en una textura, normalmente es más rápido dibujarlos a una imagen y luego copiarlos al buffer de la textura (texturebuffer), y para mostrar gráficos 3D en una textura, la única opción es copiar desde el backbuffer al buffer de la textura. Ver también: LoadTexture, LoadAnimTexture.
Ejemplo:
; CreateTexture Example
; --- Graphics3D 640,480 SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube()
PositionEntity cube,0,0,5
; Create texture of size 256x256 tex=CreateTexture(256,256) ; Set buffer - texture buffer SetBuffer TextureBuffer(tex)
; Clear texture buffer with background white color ClsColor 255,255,255
Cls
; Draw text on texture font=LoadFont("arial",24) SetFont font
Color 0,0,0
Text 0,0,"This texture"
Text 0,40,"was created using" : Color 0,0,255 Text 0,80,"CreateTexture()" : Color 0,0,0 Text 0,120,"and drawn to using" : Color 0,0,255 Text 0,160,"SetBuffer TextureBuffer()"
; Texture cube with texture EntityTexture cube,tex ; Set buffer - backbuffer SetBuffer BackBuffer() While Not KeyDown( 1 ) pitch#=0
yaw#=0 roll#=0
If KeyDown( 208 )=True Then pitch#=-1 If KeyDown( 200 )=True Then pitch#=1 If KeyDown( 203 )=True Then yaw#=-1 If KeyDown( 205 )=True Then yaw#=1 If KeyDown( 45 )=True Then roll#=-1 If KeyDown( 44 )=True Then roll#=1 TurnEntity cube,pitch#,yaw#,roll# RenderWorld Flip Wend End
LoadTexture ( archivo$[,flags] )
Parámetros:
archivo$ - nombre del archive de imagen que se usará como textura flags (opcional) – flag de la textura:
1: Color 2: Alfa 4: Oculto 8: Mipmapped 16: Clamp U 32: Clamp V
Descripción:
Carga una textura desde un archive de imagen y devuelve el puntero de la textura. El parámetro opcional flags permite aplicar ciertos efectos a la textura. Los flags se pueden añadir para combinar dos o más efectos, por ejemplo 3 (1+2)= textura con color y mapas alfa. Pequeña descripción de los flags:
1: Color – color del mapa, lo que ves es lo que obtienes.
2: Alfa – mapa alfa. Si una imagen contiene un mapa alfa, este se usará para hacer transparentes ciertas áreas de la textura. A parte de esto, el mapa de color se usará como un mapa alfa. En los mapas alfa, las áreas oscuras equivalen a una alta transparencia, las áreas iluminadas equivalen a una baja transparencia.
4: Oculta – todas las áreas de una textura coloreadas 0,0,0 no se dibujarán en la pantalla.
8: Mipmapped – version de bajo detalle de la textura, se usará para distancias altas. El resultado es una apariencia suavizada y borrosa 16: Clamp u – anclar textura en coordenada u. Evita el plegado de la textura.
32: Clamp v – anclar textura en coordenada v. Evita el plegado de la textura.
64: mapa de reflexión esférica – mapa de ambiente, para una apariencia más brillante
Algo a tener en cuenta cuando aplicamos flags de texturas al cargar una textura es que la textura puede tener ya ciertos flags aplicados mediante el comando TextureFilter. El valor por defecto del comando TextureFilter es 9 (1+8), que es una textura coloreada y mipmapped. Esto no se puede controlar mediante el parámetro flags del comando LoadTexture – si se desea eliminar los filtros será necesario usar el comando ClearTextureFilters. Ver también: CreateTexture, LoadAnimTexture.
Ejemplo:
; LoadTexture Example ; --- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() PositionEntity cube,0,0,5 ; Load texture tex=LoadTexture("../media/b3dlogo.jpg") ; Texture cube with textureEntityTexture cube,tex While Not KeyDown( 1 ) pitch#=0
yaw#=0 roll#=0
If KeyDown( 208 )=True Then pitch#=-1 If KeyDown( 200 )=True Then pitch#=1 If KeyDown( 203 )=True Then yaw#=-1 If KeyDown( 205 )=True Then yaw#=1 If KeyDown( 45 )=True Then roll#=-1 If KeyDown( 44 )=True Then roll#=1 TurnEntity cube,pitch#,yaw#,roll# RenderWorld Flip Wend End
LoadAnimTexture ( archivo$,flags,ancho_frame,alto_frame,primer_frame,contar_frame )
Parámetros:
archivo$ - nombre del archive con los frames de la animación situados de izquierda a derecha y de arriba a abajo flags – flag de la textura: 1: Color
2: Alfa 4: Oculta 8: Mipmapped
16:Clamp U 32: Clamp V
64: Mapa de reflexión esférica
ancho_frame – ancho de cada frame de animación alto_frame – alto de cada frame de animación
primer_frame – el primer frame que se usará como frame de animación. contar_frame – el número de frames que se usará
Descripción:
Carga una secuencia de frames de animación en una textura. Ver también: CreateTexture, LoadTexture.