Dźwięk i muzyka :)

Sound & Music and all other

Na podstawie przykładu (odbijającej się kulki po ekranie :)) pokażę jak wykorzystać muzykę oraz dźwięk :) Source wraz z muzyką i dźwiękiem

MUZYKĘ 'wziąłem' Z GRY Return to Castle Wolfenstein :)


Jeżeli z jakiś powodów kod ten, ktory podałem nie będzie działał to znaczy że pomyliłem znaczniki > i < (trzeba pisać je na odwrót :)

Umieść na form'ie następujące komponęty:
TDXSpriteEngine;
TDXTimer;
TDXImageList;
TDXDraw;
TDXSound;
TDXWaveList;


Do dximagelist daj jakis rysunek a do dxwavelist dajcie pierw jakąś muzykę a następnie jakiś dźwięk (tak żeby muzyka to był item 0 a dźwięk to item 1)
Zrób co trzeba: klik





na początku w var (ogólnym) wpisujemy


var
Form1: TForm1; - tego nie!
opek : TAnimation;
gora : boolean = true;
dol : boolean = false;
lewo : boolean = false;
prawo : boolean = true;





W form1 OnCreate wpisujemy: (standardowo pacnijmy jakiś obrazeczek do dximagelist)
begin
opek := TAnimation.Create(DxSpriteEngine1.Engine);
opek.x := 104;
opek.y := 112;
opek.Image := dximagelist1.Items[0];
end;


Poniżej aż do "if gora" jest ustawiona kolizja sprite'u ze ścianami :) (odgrywamy dźwięk jak jest kolizja)
Później w DxTimer1 OnTimer wpisujemy:
begin
if opek.x >= form1.width then
begin
dxwavelist1.Items[1].Play(false);
prawo := false;
lewo := true;
end;

if opek.x <= 0 then
begin
dxwavelist1.Items[1].Play(false);
prawo := true;
lewo := false;
end;

if opek.y >= form1.height then
begin
dxwavelist1.Items[1].Play(false);
dol := false;
gora := true;
end;

if opek.y <= 0 then
begin
dxwavelist1.Items[1].Play(false);
dol := true;
gora := false;
end;

//Poruszanie się naszego sprite'a (kropeczki)
if gora = true then opek.y := opek.y - 3;
if dol = true then opek.y := opek.y + 3;
if lewo = true then opek.x := opek.x - 3;
if prawo = true then opek.x := opek.x + 3;
noxxdxmenu1.surface.Fill(0);
dxspriteengine1.Move(1);
dxspriteengine1.Draw;
noxxdxmenu1.flip;
end;


Żeby 'uwolnić' troszkę nasz komputerek usuwamy z pamięci wszystko co dynamiczne :P
Do Form1 w OnClose daj:
begin
opek.free;
end;


Teraz wywołamy muzyczkę:
Do Form1 w OnShow daj:
begin
dxwavelist1.Items[0].Play(false);
end;

Teraz ciesz się swoją muzyczką oraz odbijającą się kropką od ścian ;)