Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 27-07-2006
dicatek dicatek is offline
Miembro
 
Registrado: jun 2006
Posts: 46
Poder: 0
dicatek Va por buen camino
Lección2 Un sonido en movimiento

LECCIÓN2
Si la lección anterior te salió perfecto, puedes usarla como base, para la lección siguiente. Deberemos hacer algunos cambios para conseguir un sonido que se mueva en el espacio (3D).
Cuando el sonido se está moviendo debemos cambiar los valores de sourcevel a:
Código Delphi [-]
sourcevel: array [0..2] of TALfloat= ( 0.5, 0.0, 0.5);
Se mueve de izquierda a derecha y de adelante hacia atras.
El valor de sourcepos debe de ser cambiado:
Código Delphi [-]
sourcepos: array [0..2] of TALfloat= ( -5.0, 0.0, -5.0 );
It is placed left and front of you.
Para tener un sonido más interesante en ese aspecto, usaremos el siguiente, que lo podemos encontrar en el .Zip del final de la lección.

Código Delphi [-]
AlutLoadWavFile('footsteps.wav', format, data, size, freq, loop);

Si no pusimos el sonido anteriormente en bucle, debemos de hacerlo ahora:
Código Delphi [-]
AlSourcei ( source, AL_LOOPING, AL_TRUE);

Ahora debemos cambiar la posición del sonido cada cierto tiempo. Lo más facil, es usar un Timer dispuesto en el form. En el evento ontimer ponemos el siguiente código:
Código Delphi [-]
SourcePos[0] := SourcePos[0] + SourceVel[0];
SourcePos[1] := SourcePos[1] + SourceVel[1];
SourcePos[2] := SourcePos[2] + SourceVel[2];
If SourcePos[0] >= 5 then SourcePos[0]:=-5;
If SourcePos[2] >= 5 then SourcePos[2]:=-5;
alSourcefv(source, AL_POSITION, @SourcePos);
Cada segundo el sourcevel es añadido al sourcepos, y el nuevo sourcepos es mandado a OpenAL. Si el sourcepos llega a tu derecha, automáticamente vuelve a su posición inicial.
En el botón de reproducir, debemos añadir el siguiente código para poder activar el Timer:

Código Delphi [-]
Timer1.Enabled:=True;

En el botón de detención, también debemos añadir el siguiente código para anular el Timer.

Código Delphi [-]
Timer1.Enabled:=False;

Lección2
Escrito por Noeska.
Traducido por Gerard Turmo.
Corregido por ..............................
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que usais para programar en php? chux HTML, Javascript y otros 22 18-08-2006 16:38:31
programar para windows CE ronalg Varios 8 31-08-2005 09:06:13
Programar para APPLE eduarcol Varios 0 27-02-2005 20:59:56
Programación Orientada a Aspectos marcoszorrilla Debates 17 06-04-2004 23:18:27
Programar para PDA Novás Varios 2 02-12-2003 15:06:30


La franja horaria es GMT +2. Ahora son las 00:24:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi