home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
601-625
/
apd617
/
tony_vecqueray
/
wood_lep.amos
/
wood_lep.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1986-08-03
|
12KB
|
284 lines
' Wood_Lep_Anim
' -------------
'I thought I would write a short Anim using Alan Fullerton's excellent Images
'(TA12) and Tiles (TA14) which he sent from America.
'Writing short Anim's give you idea's on Game Play and are useful to help
'improve your Programming skills.
'In Procedure M2 I have used two Bobs to Animate the Woodman and his Firing
'the Arrow.In Procedure M6 I used one Bob to get the same effect.
'The Procedure WHEREMOUSE I find is very useful,Although I worked out the
'X and Y Dimensions on paper,I obtained a more accurate reading using
'WHEREMOUSE.I cannot Credit the Programmer as I do not remember where I
'obtained it from.
'Hope this short Anim gives you some idea's.Amal can be Fun!!!
'
' Tony Vecqueray
Screen Open 0,320,256,32,Lowres
Curs Off : Flash Off : Hide On : Cls 0
Unpack 10 To 0
Get Sprite Palette : Double Buffer
MAKE_IMAGE : Rem Part of Tree
TXT : Rem Start-Exit-Info
For C=0 To 13
Channel C To Bob C
Next C
Bob 9,100,140,51 : Bob 10,240,120,52 : Bob 11,230,200,53 : Bob 12,40,220,54
Bob 13,160,230,55 : Bob 14,20,2,56 : Rem Bobs on Screen at Start
Do
If Mouse Key Then Proc WHEREMOUSE
If Key State(64)=True : Rem Spacebar
M1 : M2 : M1 : M3 : M1 : M4 : M1
M5 : M1 : M6 : M1 : M3 : M7 : M8
M1 : M9 : M8 : M9 : M10 : TXT
End If
If Key State(69)=True Then Exit : Rem Escape
Loop
Amal Off : Under Off : Cls : Default : Edit
Procedure M1
Locate 0,14 : Cline : Locate 0,16 : Cline : Rem Clear Text
Bob 0,-100,56,1 : Rem Woodman-Walk-Jump on Log
A$="A 0,(1,20)(2,20)(3,20)(4,20)(5,20)(6,20);"
A$=A$+"Move 264,0,220;A 1,(7,20)(8,20)(9,20)(10,20)(11,20)(12,20);"
A$=A$+"Move 0,-24,12;Move 20,0,10;A 0,(1,20)(2,20)(3,20)(4,20)(5,20)(6,20);"
A$=A$+"Move 224,0,168;A 0,($8001,20)($8002,20)($8003,20)($8004,20)($8005,20)($8006,20);"
A$=A$+"Move -200,0,175;A 1,($8007,20)($8008,20)($8009,20)($8000+10,20)($8000+11,20)($8000+12,20);"
A$=A$+"Move -20,0,10;Move 0,24,12;A 0,($8001,20)($8002,20)($8003,20)($8004,20)($8005,20)($8006,20);"
A$=A$+"Move -264,0,180;"
Amal 0,A$ : Amal On 0
End Proc
Procedure M2
Bob 2,470,146,Hrev(13) : Rem Woodman Walk
Bob 4,378,160,25 : Rem Boar Walk
E$="A 0,($8000+25,20)($8000+26,20)($8000+27,20)($8000+28,20)($8000+29,20)($8000+30,20);"
E$=E$+"Move -424,0,320;A 6,(25,20)(26,20)(27,20)(28,20)(29,20)(30,20);"
E$=E$+"Move 400,0,300;"
Amal 4,E$ : Amal On 4
C$="A 0,($8000+13,20)($8000+14,20)($8000+15,20)($8000+16,20)($8000+17,20)($8000+18,20);"
C$=C$+"Move -548,0,411;A 1,(13,20)(14,20)(15,20)(16,20)(17,20)(18,20);"
C$=C$+"Move 120,0,90;Let A=13;"
Amal 2,C$ : Amal On 2
While Chanmv(2)=-1 : Wend : Rem Wait until Woodman Stops
Bob Off 2 : Amal Off 2 : Rem Bob 2 off Screen-Stop Amal 2
Bob 3,45,147,19 : Rem Woodman firing Arrow
D$="A 4,(19,20)(20,20)(21,20)(22,20)(23,20)(24,20);"
Amal 3,D$ : Amal On 3
While Chanmv(0)=-1 : Rem Wait until Proc M1 Finished-Then Recall M1
If I Bob(3)=24 Then ARROW : Rem If Image of Bob 3=24 Call Proc ARROW
Wend
Bob Off 3 : Amal Off 3 : Rem Bob 3 off Screen-Stop Amal 3
Bob 2,45,147,13 : Rem Woodman Walk
C1$="A 0,(13,20)(14,20)(15,20)(16,20)(17,20)(18,20);"
C1$=C1$+"Move 280,0,210;"
Amal 2,C1$ : Amal On 2
End Proc
Procedure ARROW
Bob 5,X Bob(3)+10,Y Bob(3)+10,31 : Rem Position Arrow on Bob 3
F$="Move 320,0,80;"
Amal 5,F$ : Amal On 5
End Proc
Procedure M3
Bob 8,-80,206,48 : Rem Frog Movement
I$="For R0=1 To 200;N R0;A 0,(45,30)(46,30)(47,30)(48,30)(49,30)(50,30);Move 450,0,339;"
I$=I$+"A 0,($8000+45,30)($8000+46,30)($8000+47,30)($8000+48,30)($8000+49,30)($8000+50,30);"
I$=I$+"Move -472,0,354;"
Amal 8,I$ : Amal On 8
End Proc
Procedure M4
Bob 6,370,100,Hrev(32) : Rem Leprechaun Walk-On-Off-Toadstool
G$="A 0,($8000+32,16)($8000+33,16)($8000+34,16)($8000+35,16)($8000+36,16)($8000+37,16);"
G$=G$+"Move -424,0,338;Let Y=Y+60;A 1,(32,16)(33,16)(34,16)(35,16)(36,16)(37,16);"
G$=G$+"Move 120,0,90;A 1,(38,16)(39,16)(40,16)(41,16)(42,16)(43,16)(44,16);"
G$=G$+"Move 0,-33,24;Move 80,0,60;A 1,(44,16)(44,16)(44,16);For R0=1 To 300;N R0;"
G$=G$+"Move 0,32,24;A 0,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 224,0,168;"
Amal 6,G$ : Amal On 6
Bob 9,100,140,51 : Rem Large Toadstool
J$="Move -64,0,32;For R0=1 To 100;N R0;Move 64,0,48;"
Amal 9,J$
While Chanmv(6)=-1 : Rem Wait until Leprechaun Off Screen
If Amreg(6,0)=>290 : Rem When R0 is greater than 290-Move Toadstool
Amal On 9
End If
Wend
End Proc
Procedure M5
Bob 6,-50,220,32 : Rem Leprechaun On Log-Move with Log-Off Log
G1$="A 0,(32,20)(33,20)(34,20)(35,20)(36,20)(37,20);Move 180,0,135;"
G1$=G1$+"A 1,(38,16)(39,16)(40,16)(41,16)(42,16)(43,16)(44,16);"
G1$=G1$+"Move 0,-22,12;Move 40,0,35;For R0=1 To 300;N R0;Move 240,0,150;"
G1$=G1$+"Let X=-70;Move 260,0,195;For R0=1 To 40;N R0;"
G1$=G1$+"A 1,(38,16)(39,16)(40,16)(41,16)(42,16)(43,16)(44,16);Move 30,0,15;"
G1$=G1$+"Move 0,22,12;A 1,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 160,0,120;"
Amal 6,G1$ : Amal On 6
Bob 7,-160,214,38 : Rem Leprechaun On Log-Move with Log-Off Log
H$="A 2,(38,16)(39,16)(40,16)(41,16)(42,16)(43,16)(44,16);Move 170,0,85;"
H$=H$+"Move 0,-24,12;Move 52,0,40;For R0=1 To 300;N R0;Move 360,0,300;"
H$=H$+"Let X=-168;Move 240,0,180;For R0=1 To 20;N R0;"
H$=H$+"A 1,(38,16)(39,16)(40,16)(41,16)(42,16)(43,16)(44,16);Move 30,0,15"
H$=H$+"Move 0,24,12;A 4,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 240,0,180;"
Amal 7,H$ : Amal On 7
Bob 13,160,230,55 : Rem Log Movement
N$="For R0=1 To 480;N R0;Move 240,0,150;Let X=-100;Move 260,0,195;"
Amal 13,N$ : Amal On 13
Bob 12,40,220,54 : Rem Log Movement
M$="For R0=1 To 440;N R0;Move 360,0,300;Let X=-200;Move 240,0,180;"
Amal 12,M$ : Amal On 12
While Chanmv(0)=-1 : Wend : Rem Wait until Proc M1 Finished then Recall M1
End Proc
Procedure M6
Bob 3,-300,147,13 : Rem Woodman Walk-Firing Arrow
D1$="A 4,(13,20)(14,20)(15,20)(16,20)(17,20)(18,20);Move 320,0,240;"
D1$=D1$+"A 0,(19,20)(20,20)(21,20)(22,20)(23,20)(24,20);For R0=1 To 360;N R0;"
D1$=D1$+"A 4,(13,20)(14,20)(15,20)(16,20)(17,20)(18,20);Move 168,0,126;"
D1$=D1$+"A 0,(19,20)(20,20)(21,20)(22,20)(23,20)(24,20);For R1=1 To 360;N R1;"
D1$=D1$+"A 3,(13,20)(14,20)(15,20)(16,20)(17,20)(18,20);Move 160,0,120;"
Amal 3,D1$ : Amal On 3
Bob 4,-700,100,25 : Rem Boar Walk
E1$="A 16,(25,16)(26,16)(27,16)(28,16)(29,16)(30,16);Move 1056,0,792;"
E1$=E1$+"Let X=-280;Let Y=170;Move 624,0,468;"
Amal 4,E1$ : Amal On 4
Bob 1,-220,160,25 : Rem Boar Walk
B$="A 12,(25,10)(26,10)(27,10)(28,10)(29,10)(30,10);Move 548,0,411;"
Amal 1,B$ : Amal On 1
Bob 2,-900,112,25 : Rem Boar Walk
C2$="A 16,(25,16)(26,16)(27,16)(28,16)(29,16)(30,16);Move 1252,0,939;"
C2$=C2$+"Let X=-290;Let Y=200;Move 624,0,468;"
Amal 2,C2$ : Amal On 2
Bob 8,-290,156,25 : Rem Boar Walk
I1$="A 18,(25,10)(26,10)(27,10)(28,10)(29,10)(30,10);Move 624,0,468;"
Amal 8,I1$ : Amal On 8
While Chanmv(3)=-1 : Rem Wait until Woodman Off Screen
If I Bob(3)=24 Then ARROW : Rem If Image of Bob 3=24 call Proc ARROW
Wend
End Proc
Procedure M7
Bob 9,100,140,51 : Rem Large Toadstool
J1$="For R0=1 To 4;Let A=51;Move 0,-24,12;For R1=1 To 50;N R1;Let A=$8000+51;"
J1$=J1$+"For R2=1 To 50;N R2;N R0;Let A=51;Move 0,96,48;"
Amal 9,J1$ : Amal On 9
Bob 10,240,120,52 : Rem Small Toadstool
K$="For R0=1 To 4;Let A=52;Move 0,-10,5;For R1=1 To 50;N R1;Let A=$8000+52;"
K$=K$+"For R2=1 To 50;N R2;N R0;Let A=52;Move 0,40,20;"
Amal 10,K$ : Amal On 10
Bob 11,230,200,53 : Rem Small Toadstool
L$="For R0=1 To 4;Let A=53;Move 0,-10,5;For R1=1 To 50;N R1;Let A=$8000+53;"
L$=L$+"For R2=1 To 50;N R2;N R0;Let A=53;Move 0,40,20;"
Amal 11,L$ : Amal On 11
End Proc
Procedure M8
Bob 4,420,100,Hrev(25) : Rem Boar Walk
E2$="A 10,($8000+25,20)($8000+26,20)($8000+27,20)($8000+28,20)($8000+29,20)($8000+30,20);"
E2$=E2$+"Move -528,0,429;Let Y=130;A 5,(25,20)(26,20)(27,20)(28,20)(29,20)(30,20);"
E2$=E2$+"Move 528,0,429;"
Amal 4,E2$ : Amal On 4
Bob 6,430,96,Hrev(32) : Rem Leprechaun Walk-Jump on Boar
G2$="A 4,($8000+32,10)($8000+33,10)($8000+34,10)($8000+35,10)($8000+36,10)($8000+37,10);"
G2$=G2$+"Move -208,0,182;A 1,($8000+38,20)($8000+39,20)($8000+38,20);"
G2$=G2$+"Move -90,-30,45;A 1,($8000+38,20)($8000+38,20);Move -198,0,150;"
G2$=G2$+"Let Y=96;Let X=-160;A 1,(38,20)(38,20);Move 528,0,429;"
Amal 6,G2$ : Amal On 6
While Chanmv(8)=-1 : Wend : Rem Wait until Frog Off Screen to use Bob 8 in Proc 9
End Proc
Procedure M9
Bob 1,25,4,38 : Rem Leprechaun in Tree
B1$="Move 38,0,19;For R0=1 To 20;N R0;Let A=43;Move 0,54,27;"
B1$=B1$+"A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 1,B1$ : Amal On 1
Bob 2,25,4,38 : Rem Leprechaun in Tree
C3$="For R0=1 To 60;N R0;Move 38,0,19;For R1=1 To 20;N R1;Let A=43;"
C3$=C3$+"Move 0,54,27;A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 2,C3$ : Amal On 2
Bob 3,25,4,38 : Rem Leprechaun in Tree
D2$="For R0=1 To 120;N R0;Move 38,0,19;For R1=1 To 20;N R1;Let A=43;"
D2$=D2$+"Move 0,54,27;A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 3,D2$ : Amal On 3
Bob 5,25,4,38 : Rem Leprechaun in Tree
F1$="For R0=1 To 180;N R0;Move 38,0,19;For R1=1 To 20;N R1;Let A=43;"
F1$=F1$+"Move 0,54,27;A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 5,F1$ : Amal On 5
Bob 7,25,4,38 : Rem Leprechaun in Tree
H1$="For R0=1 To 240;N R0;Move 38,0,19;For R1=1 To 20;N R1;Let A=43;"
H1$=H1$+"Move 0,54,27;A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 7,H1$ : Amal On 7
Bob 8,25,4,38 : Rem Leprechaun in Tree
I2$="For R0=1 To 300;N R0;Move 38,0,19;For R1=1 To 20;N R1;Let A=43;"
I2$=I2$+"Move 0,54,27;A 5,(32,8)(33,8)(34,8)(35,8)(36,8)(37,8);Move 288,0,144;"
Amal 8,I2$ : Amal On 8
While Chanmv(8)=-1 : Wend : Rem Wait until Bob 8 Off Screen then Recall Proc M9
End Proc
Procedure M10
Bob 0,-100,56,1 : Rem Woodman Walk Fails to Jump Log-Walks off in Disgust
A1$="A 0,(1,20)(2,20)(3,20)(4,20)(5,20)(6,20);Move 264,0,220;A 1,(7,20)(7,20)(7,20);"
A1$=A1$+"For R0=1 To 4;Move 10,-24,12;For R1=1 To 6;N R1;Move -10,24,12;"
A1$=A1$+"For R2=1 To 6;N R2;N R0;A 3,(1,20)(2,20)(3,20)(4,20)(5,20)(6,20);"
A1$=A1$+"Move 224,0,168;"
Amal 0,A1$ : Amal On 0
While Chanmv(0)=-1 : Wend : Rem Wait until Bob 0 Off Screen then call TXT
End Proc
Procedure MAKE_IMAGE
Get Bob 56,20,2 To 52,44 : Rem Part of Tree to Hide Leprechauns
End Proc
Procedure TXT
Under On : Paper Point(100,130)
Locate 0,14 : Centre "Space Bar to Start"
Locate 0,16 : Centre "Escape to Exit"
End Proc
Procedure WHEREMOUSE
Rem Extremely useful while Programming Procedures
Amal Freeze
Curs Off : Limit Mouse
Paper Point(0,0) : Change Mouse 2 : Show On
Repeat
MK=Mouse Key : Locate 0,0
XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse)
If MK=1
Print "Graphic X = ";XM;" Y = ";YM;Space$(6)
Else
Print "Text X = ";X Text(XM);" Y = ";Y Text(YM);Space$(6)
End If
Until MK=0
Hide On : Change Mouse 1 : Locate 0,0 : Print Space$(23)
Amal On
End Proc