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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2009
subrul subrul is offline
Registrado
 
Registrado: nov 2009
Posts: 2
Poder: 0
subrul Va por buen camino
cargar sonido con delphi 7

Hola,

a ver si alguien me puede echar una mano.

Soy un estudiante que esta haciendo un juego tipo arkanoid en delphi 7 pero tengo algunas dificultades ya que nunca habia usado este programa ni sabia nada de la programacion en pascal.


En resumen, querria que alguien me ayudara diciendome con que comandos (en delphi 7) puedo cargar un sonido (lo quiero por ejemplo que suena un bip cada vez que la pelota rebota en una pared). He cargado texturas pero no se como hacerlo con sonidos. Se puede cargar un video? en que formatos? y un gif? que comando tengo que poner en el "uses" en caso de poder usar gif (por ejemplo, si cargo texturas jpeg tengo que poner "jpeg" en el "uses").

Otra cosa. Tengo 3 esferas con sus respectivos comportamientos behaviours, y cada vez que una de ellas esta mas abajo de -13 en el eje Y, se destruyen. Lo que quiero es que logicamente cuando la ultima de ellas pase de -13 el juego se acabe. Habia pensado en hacer una variable que cuente, cada vez que una de ellas baje de -13 que el contador se ponga a 1, y cuando el contador llegue a 3 que se acabe el juego, pero no se como hacer lo del contador.


A ver si alguien me puede ayudar. Me gustaria que me dijerais que comandos tengo que poner en el "uses" en caso de necesitarlo, de que clase son las variables que usare (integer, strings, etc...), en que procedures tengo que poner las cosas, etc, ya que soy novato y no tengo idea.


Muchas gracias.


PD: He decidido poner un post porque llevo una semana mirando muchos tutoriales y la mayoria estan orientados a hacer procesadores de texto, aun asi he aprendido "mucho" ya que partia de 0.

copiare mi UNIT1 del programa por si alguien le interesa, a modo de curiosidad (logicamente partiendo de 0 no he podido hacer solo lo que muestro a continuacion, sino con ayuda):







unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, GLWin32Viewer, GLMisc, GLScene, GLObjects, GLODEManager,
GLCadencer, jpeg, VectorGeometry, Keyboard, ExtCtrls, dynode, Menus;

type
TForm1 = class(TForm)
GLScene1: TGLScene;
visor: TGLSceneViewer;
camara1: TGLCamera;
luz: TGLLightSource;
paredtrasera: TGLCube;
bloqueestatico1: TGLCube;
helice3: TGLCube;
helice1: TGLCube;
helice2: TGLCube;
bloqueestatico2: TGLCube;
gestorODE: TGLODEManager;
GLRenderPoint1: TGLRenderPoint;
GLCadencer1: TGLCadencer;
GLDummyCube1: TGLDummyCube;
pelota: TGLSphere;
bloque1: TGLCube;
soporte: TGLCube;
bloque3: TGLCube;
listaUniones: TGLODEJointList;
ladoderecho: TGLSphere;
ladoizquierdo: TGLSphere;
Timer1: TTimer;
paredizquierda: TGLCube;
paredderecha: TGLCube;
techo: TGLCube;
suelo: TGLCube;
pelota2: TGLSphere;
pelota3: TGLSphere;
procedure GLCadencer1Progress(Sender: TObject; const deltaTime,
newTime: Double);
procedure Timer1Timer(Sender: TObject);
procedure gestorODECollision(Sender, Object1, Object2: TObject;
var Contact: TdContact; var HandleCollision: Boolean);

private

colisionAnterior, colisionActual : boolean;
colisionespelota: Integer;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
newTime: Double);
var
dinsoporte: TGLODEDynamic;

begin

dinsoporte := soporte.Behaviours[0] as TGLODEDynamic;

if IsKeyDown(VK_LEFT) then
dinsoporte.AddForce(AffineVectorMake(0, 0, -50));

if IsKeyDown(VK_RIGHT) then
dinsoporte.AddForce(AffineVectorMake(0, 0, 50));

colisionAnterior := colisionActual;
colisionActual := false;

if pelota.Position.Y < -13 then
begin

end;


gestorODE.Step(deltaTime)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
end;

procedure TForm1.gestorODECollision(Sender, Object1, Object2: TObject;
var Contact: TdContact; var HandleCollision: Boolean);
var
comp1 : TGLODEBehaviour;
comp2 : TGLODEBehaviour;
obj1 : TGLCustomSceneObject;
obj2 : TGLCustomSceneObject;


begin
comp1 := Object1 as TGLODEBehaviour;
comp2 := Object2 as TGLODEBehaviour;
obj1 := comp1.Owner.Owner as TGLCustomSceneObject;
obj2 := comp2.Owner.Owner as TGLCustomSceneObject;


if ((obj1.Name = 'pelota') or
(obj1.Name = 'pelota2') or
(obj1.Name = 'pelota3')) and ((obj2.Name = 'bloque1') or
(obj2.Name = 'bloque2') or
(obj2.Name = 'bloque3'))then
begin
colisionActual := true;
if colisionAnterior = false then

begin
obj2.Tag := obj2.Tag+1;

if obj2.Tag = 1 then
obj2.Material.Texture.Image.LoadFromFile('prueba piedra.JPG')

else

begin
comp2.Manager := nil;
obj2.Visible := false;
end;
end;
end;
end;




end.
Responder Con Cita
  #2  
Antiguo 07-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno creo que tienes varias alternastivas para la reproduccion de sonido en delphi; entre las cuales te puedo citar:
1: Usar el Componente TMediaPlayer de la pestaña System de la paleta.
2:Usar la funcion (API) sndPlaySound de la unidad MMSystem.
3: Usar un componente de Tercero.
La mejor opcion segun veo tu caso , es usar la segunda alternativa, es decir la funcion sndPlaySound de la unidad MMSystem.
Ejemplo de uso:
Código Delphi [-]
uses MMSystem,...;
...
...
...

procedure TForm1.Button1Click(Sender: TObject);
begin
sndPlaySound('C:\Archivos de programa\Borland\Delphi7\Demos\Football\whistle.wav', SND_ASYNC);
{estoy reproduciendo el archivo whistle.wav que se encuentra en esa ruta,
 Podrias tambien hecharle un vistaso al DEMO que delphi Trae en esa direccion, es un Pequeño Juego. }
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 07-12-2009
subrul subrul is offline
Registrado
 
Registrado: nov 2009
Posts: 2
Poder: 0
subrul Va por buen camino
Cargar sonido, etc.

Gracias, tu respuesta ha sido clara y sencilla y me ha sido de gran utilidad.

Habia probado anteriormente consndPlaySound, pero no habia puesto MMsystem en el uses, supongo que ese fue mi error.

Respecto a mi pregunta sobre si puedo usar gif's, o el contador de variables, sabrias como ayudarme o asesorarme?


Gracias
Responder Con Cita
  #4  
Antiguo 07-12-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por subrul Ver Mensaje
...
Respecto a mi pregunta sobre si puedo usar gif's, o el contador de variables, sabrias como ayudarme o asesorarme?
...
Para poder usar Gif, te recomiendo un componente de Tercero por ejemplo en las Librerias Rx's existe el componente TRxGIFAnimator que te reproduce una Imagen GIf. o si no, en Torry vas a encontar muchos.
Y sobre tu varible es una buena idea, aunque podrias mejor usar Objetos(aplicar POO), es decir hacer que cada Esfera sea un objeto y bajo ciertas circunstacias(llego a -13) pues el objeto ya sabra destruirse a si mismo,o en todo caso tambien podria tener un controlador de Objetos que haga esa tarea, que creo que seria mejor.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 28-09-2010
Celta Celta is offline
Miembro
 
Registrado: jul 2010
Ubicación: Salta, Argentina
Posts: 65
Poder: 14
Celta Va por buen camino
ooo algo asi

o algo asi es lo que uso mucho
en un timer coloco lo siguiente por ejem:
Count := (Count mod 10) + 1;

img.picture.LoadFromFile ('graficos\avionderecha' + IntToStr (Count) + '.png');
entonces cargara las imagenes de la carpate una por una por ejem
si tengo avionderecha1, avionderecha2, etc.me abrira primero el avionderecha1 y segura con avionderecha2
bay! =D
Responder Con Cita
Respuesta



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
Control de Sonido con Delphi EdwinFC API de Windows 2 04-02-2009 14:25:43
sonido y microfono en delphi cmm07 Varios 0 07-04-2008 14:59:18
Cargar dll no delphi 5 Mike Deet API de Windows 0 10-03-2008 02:00:45
transformar datos en sonido con delphi y sacarlos por la tarjeta de sonido Johnnywin Internet 3 21-09-2006 20:49:11
Agregar sonido en Delphi jescar .NET 2 17-09-2006 08:30:04


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


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