Ver Mensaje Individual
  #1  
Antiguo 06-12-2009
subrul subrul is offline
Registrado
 
Registrado: nov 2009
Posts: 2
Reputación: 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