examples/animate: tweak rocket movement, add audio
- fix duplicate symbol in sprites.s/pcmaudio.s
This commit is contained in:
parent
82749f2b7d
commit
819c808c50
2 changed files with 51 additions and 17 deletions
|
|
@ -1,5 +1,5 @@
|
|||
program animate;
|
||||
uses sprites;
|
||||
uses sprites,pcmaudio;
|
||||
|
||||
type PictData = record
|
||||
magic,mode:integer;
|
||||
|
|
@ -29,8 +29,33 @@ var pic:PictData;
|
|||
rocket2:Sprite;
|
||||
rocket3:Sprite;
|
||||
|
||||
buf:SndBufPtr;
|
||||
|
||||
|
||||
procedure WaitVSync; external;
|
||||
|
||||
function readAudioFile(fname:string):SndBufPtr;
|
||||
var i,size:integer;
|
||||
c:char;
|
||||
buf:SndBufPtr;
|
||||
f:file;
|
||||
begin
|
||||
open(f, fname, ModeReadOnly);
|
||||
size := FileSize(f);
|
||||
new(buf, size);
|
||||
|
||||
buf^ := '';
|
||||
write('Reading ', size, ' bytes from ', fname);
|
||||
for i := 1 to size do
|
||||
begin
|
||||
read(f,c);
|
||||
AppendChar(buf^,c);
|
||||
end;
|
||||
writeln;
|
||||
close(f);
|
||||
readAudioFile := buf;
|
||||
end;
|
||||
|
||||
procedure loadPalette(var pic:PictData);
|
||||
var i:integer;
|
||||
begin
|
||||
|
|
@ -87,10 +112,13 @@ begin
|
|||
|
||||
if aSprite.x > 608 then aSprite.x := 0;
|
||||
|
||||
if aSprite.y < 0 then
|
||||
if aSprite.ydelta <> 0 then
|
||||
begin
|
||||
aSprite.y := 200;
|
||||
aSprite.x := 0;
|
||||
if aSprite.y < 3 then
|
||||
aSprite.ydelta := -aSprite.ydelta
|
||||
else
|
||||
if aSprite.y > 130 then
|
||||
aSprite.ydelta := -aSprite.yDelta;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
|
@ -106,7 +134,7 @@ var i:integer;
|
|||
r3oldX,r3oldY:integer;
|
||||
begin
|
||||
stickMan.x := 0;
|
||||
stickMan.y := 322;
|
||||
stickMan.y := 205;
|
||||
stickMan.frameTime := 6;
|
||||
stickMan.frameLeft := stickMan.frameTime;
|
||||
stickMan.curFrame := 0;
|
||||
|
|
@ -116,30 +144,30 @@ begin
|
|||
stickman.moveLeft := stickMan.moveTime;
|
||||
|
||||
rocket.x := 0;
|
||||
rocket.y := 200;
|
||||
rocket.y := 50;
|
||||
rocket.frameTime := 5;
|
||||
rocket.frameLeft := rocket.frameTime;
|
||||
rocket.curFrame := 0;
|
||||
rocket.xdelta := 3;
|
||||
rocket.ydelta := -1;
|
||||
rocket.ydelta := 1;
|
||||
rocket.moveTime := 1;
|
||||
rocket.moveLeft := rocket.moveTime;
|
||||
|
||||
rocket2.x := 50;
|
||||
rocket2.y := 100;
|
||||
rocket2.y := 190;
|
||||
rocket2.frameTime := 5;
|
||||
rocket2.frameLeft := rocket2.frameTime;
|
||||
rocket2.curFrame := 0;
|
||||
rocket2.curFrame := 1;
|
||||
rocket2.xdelta := 3;
|
||||
rocket2.ydelta := -1;
|
||||
rocket2.ydelta := 0;
|
||||
rocket2.moveTime := 1;
|
||||
rocket2.moveLeft := rocket2.moveTime;
|
||||
|
||||
rocket3.x :=100;
|
||||
rocket3.y := 50;
|
||||
rocket3.y := 90;
|
||||
rocket3.frameTime := 5;
|
||||
rocket3.frameLeft := rocket3.frameTime;
|
||||
rocket3.curFrame := 0;
|
||||
rocket3.curFrame := 2;
|
||||
rocket3.xdelta := 3;
|
||||
rocket3.ydelta := -1;
|
||||
rocket3.moveTime := 1;
|
||||
|
|
@ -204,8 +232,14 @@ begin
|
|||
loadSpriteFrame(rocket, 3, infile, 3);
|
||||
close(infile);
|
||||
|
||||
rocket2 := rocket; rocket2.curFrame := 1;
|
||||
rocket3 := rocket; rocket3.curFrame := 2;
|
||||
rocket2 := rocket;
|
||||
rocket3 := rocket;
|
||||
|
||||
buf := readAudioFile('footsteps.tdrau');
|
||||
SampleQStart(buf, true, 16000);
|
||||
|
||||
animLoop;
|
||||
|
||||
SampleQStop;
|
||||
dispose(buf);
|
||||
end.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue