home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
sourcecode
/
games
/
super2.amos
/
super2.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1992-12-27
|
10KB
|
445 lines
Hide
Unpack 11 To 0
Repeat : Until Fire(1) or Key Shift=2
Dim SCORE(9)
Dim NOME$(9)
Default
Make Mask
Sprite 1,200,100,1
Wait Vbl
Bob 1,56,50,1
Wait Vbl
Print Spritebob Col(1)
Wait Vbl
Global FRANCESCA,CHIARA,SILVIA
INIZIO:
Clear Key
Bob Off : Sprite Off
Unpack 8 To 0
INRO
Unpack 6 To 0
Screen Open 1,320,200,8,Lowres
Screen 1 : Get Sprite Palette : Colour 1,$B0 : Cls 0
Flash Off
Colour 3,$CC0
Colour 9,$EEE
Double Buffer
Wait Vbl
Dual Playfield 1,0
Channel 10 To Screen Offset 0
Amal 10,"Loop: For R0=0 To 80; Let X=R0*8; Next R0; Jump Loop"
Screen 1
SHIP1$="Let X=200 ; Let Y=100 ; Anim 0,(1,2)(4,2) ; "
INVI$="Anim 0,(1,4)(54,6) ; "
SHIP$=" Begin: Let R0=Joy1 ;"
SHIP$=SHIP$+" If X<130 Jump V ;"
SHIP$=SHIP$+" If X>400 Jump Q ;"
SHIP$=SHIP$+" Xu: If Y>220 Jump N ;"
SHIP$=SHIP$+" If Y<70 Jump K ;"
SHIP$=SHIP$+" Checkfire: If R0&16 Jump Fire ;"
SHIP$=SHIP$+" Movement: If R0=1 Jump Up ;"
SHIP$=SHIP$+" If R0=2 Jump Down ;"
SHIP$=SHIP$+" If R0=4 Jump Left ;"
SHIP$=SHIP$+" If R0=8 Jump Right ;"
SHIP$=SHIP$+" If R0=5 Jump W ;"
SHIP$=SHIP$+" If R0=9 Jump T ;"
SHIP$=SHIP$+" If R0=6 Jump A ;"
SHIP$=SHIP$+" If R0=10 Jump I ;"
SHIP$=SHIP$+" Jump Begin ;"
SHIP$=SHIP$+" Up: ; Move 0,-10,3 ; Jump Begin ;"
SHIP$=SHIP$+" Down: ; Move 0,10,3 ; Jump Begin ;"
SHIP$=SHIP$+" Right: ; Move 10,0,3 ; Jump Begin ;"
SHIP$=SHIP$+" Left: ; Move -10,0,3 ; Jump Begin ;"
SHIP$=SHIP$+" W: ; Move -7,-7,3 ; Jump Begin ;"
SHIP$=SHIP$+" T: ; Move 7,-7,3 ; Jump Begin ;"
SHIP$=SHIP$+" A: ; Move -7,7,3 ; Jump Begin ;"
SHIP$=SHIP$+" I: ; Move 7,7,3 ; Jump Begin ;"
SHIP$=SHIP$+" Fire: Let R0=R0-16 ; ; Jump Movement ;"
SHIP$=SHIP$+" V: Let X=130 ; Jump Xu ;"
SHIP$=SHIP$+" Q: Let X=400 ; Jump Xu ;"
SHIP$=SHIP$+" N: Let Y=220 ; Jump Checkfire ;"
SHIP$=SHIP$+" K: Let Y=70 ; Jump Checkfire ;"
SHIP1$=SHIP1$+SHIP$
INVI$=INVI$+SHIP$
SHIP$="Anim 0,(1,2)(4,2) ; "+SHIP$
Hide
Get Fonts
For T=1 To 200
If Lower$(Left$(Font$(T)-" ",14))="courier.font24" Then Set Font T
Next
Channel 1 To Sprite 1
Channel 6 To Bob 6
Ink 5,0
Text 170,27,"Lives: 3"
LIVES=3
PIT=0
LOOOP:
Text 0,27,"Punti"
Text 80,27,Mid$(Str$(PIT),2,Len(Str$(PIT))-1)
For T=2 To 5
Channel T To Bob T
Bob T,-38,-40,30
Next
For T=13 To 15
Channel T To Bob T
Bob T,440,200,27
Next
Sprite 1,200,100,1
TENDI
Amal 1,SHIP1$
Amal On 1
STR=0
PO=0
MO=4
Timer=0
STE=0
PASC=0
Do
Wait Vbl
If STR>0 Then Dec STR
If STR=1 Then MO=5
If STE=1 Then Amal 1,SHIP$ : Amal On 1
If Timer>-20 Then Bob Off 35
If Key State(69) Then PASC=1
If Key Shift=4 Then PAUSE
If Key State(76) Then Sprite 1,,Y Sprite(1)-4,
If Key State(77) Then Sprite 1,,Y Sprite(1)+4,
If Key State(79) Then Sprite 1,X Sprite(1)-4,,
If Key State(78) Then Sprite 1,X Sprite(1)+4,,
If STE=0
If Spritebob Col(1,2 To 6) or PO=1 or PASC=1
ER$="Anim 1,"
For T=10 To 26
ER$=ER$+"("+Str$(T)+",2)"
Next
For T=14 To 16
Bob Off T
Next
Amal 1,ER$
Amal On 1
For T=1 To 10
Boom
Next
Wait 45
Bob Off
If FRANCESCA=0 or PASC=1
Dec LIVES
End If
If LIVES=0
Text 170,27,"Lives: "+Right$(Str$(LIVES),1)
Goto FINE
End If
Text 170,27,"Lives: "+Right$(Str$(LIVES),1)
Wait 10
Goto LOOOP
End If
Else
Dec STE
End If
For T=2 To 5
If Bob Col(T,13 To 15)
If Col(13)
Bob 13,340,,
End If
If Col(14)
Bob 14,340,,
End If
If Col(15)
Bob 15,340,,
End If
Boom
Amal T,"Anim 1,(22,2)(23,2)(23,2)(24,2)(25,2)(26,2) ; P P P P P P P P P P P P ; Move -370,0,5"
Amal On T
Inc PIT
Text 80,27,Mid$(Str$(PIT),2,Len(Str$(PIT))-1)
Exit
End If
S=X Bob(T)
If S<-36
METTIDRAGO[T]
Else
SPAR[T]
End If
Next
For T=13 To 15
S=X Bob(T)
If S>329 and Timer>15 and(Fire(1) or Key Shift=2)
SPARO[T,MO]
End If
Next
If CONT=300 Then Bob Off 30
If CONT<300
If Spritebob Col(1,30 To 30)
Sam Play 1
T=I Bob(30)
If T=52
T=Rnd(7)+44
End If
Bob 49,X Bob(30),Y Bob(30),T
Bob Off 30
Channel 11 To Bob 49
Amal 11,"Move 0,-200,25"
Amal On 11
If T=44
PO=1
End If
If T=45
Bob 35,150,0,53
Timer=-400
End If
If T=46
Add PIT,10
Text 80,27,Mid$(Str$(PIT),2,Len(Str$(PIT))-1)
End If
If T=47
Inc LIVES
If LIVES=10
LIVES=9
End If
Text 170,27,"Lives: "+Right$(Str$(LIVES),1)
End If
If T=48
MO=2 : STR=700
End If
If T=49
MO=7 : STR=700
End If
If T=50
STE=750
Amal 1,INVI$
Amal On 1
End If
If T=51
Sprite 1,Rnd(270)+130,Rnd(160)+60,
End If
End If
Inc CONT
Else
If Rnd(3000)>2955
CONT=0
ZA=Rnd(8)+44
If SILVIA=1
If ZA=44
ZA=47
End If
If ZA=45
ZA=46
End If
If ZA=49
ZA=48
End If
If ZA=51
ZA=50
End If
Else
If ZA=47
If Rnd(15)>4
ZA=Rnd(6)+44
End If
End If
End If
Bob 30,Rnd(220)+50,Rnd(140)+30,ZA
End If
End If
Loop
Procedure METTIDRAGO[T]
If Rnd(300)>5 Then Pop Proc
R1=Rnd(185)
R2=50-Rnd(100)
If R1+R2<0 or R1+R2>185 Then R2=0
Bob T,315,R1,
Z$="Anim 0,(30,1)(31,1)(32,1)(33,1)(34,1)(35,1)(36,1)(37,1)(38,1) ; "
Z$=Z$+"Move -360,"+Str$(R2)+",70"
Amal T,Z$
Amal On T
End Proc
Procedure SPARO[T,MO]
Timer=0
Sam Play 3
K=X Sprite(1)-120
Bob T,K,Y Sprite(1)-40,27
Amal T,"Move 325,0,"+Str$(MO*10)+" ; Let X=400"
Amal On T
End Proc
Procedure SPAR[T]
If CHIARA=1 Then Pop Proc
If Rnd(3000)>100 Then Pop Proc
If Chanmv(6) Then Pop Proc
If I Bob(T)<30 Then Pop Proc
Bob 6,X Bob(T)-2,Y Bob(T)+10,28
Amal 6,"Move -330,40-Z(80),42"
Amal On 6
End Proc
Procedure PAUSE
Amal Freeze
Channel 12 To Bob 32
Bob 32,100,100,42
Amal 12,"Anim 0,(42,15)(39,12)"
Amal On 12
Wait 10
Do
Exit If Key Shift=0
Loop
Amal Off 12
Bob Off 32
Wait 10
Amal On
End Proc
Procedure TENDI
Screen 1
Wait 30
Bob 30,100,100,43
T=100
REX=Colour(7)
Clear Key
Repeat
S=1
If S=1 Then Inc T Else Dec T
If T=4096 Then S=2
If T=0 Then S=1
Colour 7,Val(Hex$(T))
Until Fire(1) or Key Shift=2
Bob Off 30
Colour 7,REX
Wait 10
Amal On 10
End Proc
Procedure INRO
Hide
Dim A(31)
For T=1 To 31
Read A(T)
Next
S=1
T=0
SILVIA=0
FRANCESCA=0
CHIARA=0
Mvolume 63
Music 1
Repeat
If S=1 Then Inc T Else Dec T
If T=31 Then S=2
If T=1 Then S=1
Colour 15,A(T)
Colour 17,A(T)
Wait Vbl
If Key State(69) Then Music Off : End
If Key Shift=1
FRANCESCA$=""
CHIARA$=""
SILVIA$=""
OK=0
Repeat
A$=Inkey$
If A$<>""
CHIARA$=CHIARA$+A$
SILVIA$=SILVIA$+A$
FRANCESCA$=FRANCESCA$+A$
End If
If CHIARA$="CHIARA"
OK=1
If CHIARA=0
CHIARA=1
Bell 70
Else
CHIARA=0
Bell 30
End If
End If
If SILVIA$="SILVIA"
OK=1
If SILVIA=0
SILVIA=1
Bell 70
Else
SILVIA=0
Bell 30
End If
End If
If FRANCESCA$="FRANCESCA"
OK=1
If FRANCESCA=0
FRANCESCA=1
Bell 70
Else
FRANCESCA=0
Bell 30
End If
End If
Until Key Shift=0 or OK=1
End If
Until Fire(1) or Key Shift=2
For T=60 To 0 Step -5
Mvolume T
Wait 5
Next
Music Off
Data $F00,$F10,$F20,$F30,$F40,$F50,$F60,$F70,$F80,$F90,$FA0,$FB0,$FC0,$FD0,$FE0,$FF0
Data $EF0,$DF0,$CF0,$BF0,$AF0,$9F0,$8F0,$7F0,$6F0,$5F0,$4F0,$3F0,$2F0,$1F0,$F0
End Proc
FINE:
Bob Off : Sprite Off
Amal Off
Ink 7
Text 100,100,"GAME OVER"
T=100
Repeat
S=1
If S=1 Then Inc T Else Dec T
If T=4096 Then S=2
If T=0 Then S=1
Colour 7,Val(Hex$(T))
Until Fire(1) or Key Shift=2
Open Random 1,"topotto"
Field 1,3 As NOME$,5 As SCO$
For T=1 To 8
Get 1,T
NOME$(T)=NOME$ : SCORE(T)=Val(SCO$)
Next
Close 1
Unpack 10 To 0
Ink 9,14
If PIT<SCORE(8)
For T=1 To 8
Text 100,110+((T-1)*10),NOME$(T)
Text 140,110+((T-1)*10),Str$(SCORE(T))
Next
Repeat
Until Fire(1) or Key Shift=2
Goto INIZIO
End If
For T=8 To 1 Step -1
If PIT>SCORE(T) Then POS=T
Next
For T=8 To POS Step -1
SCORE(T+1)=SCORE(T)
NOME$(T+1)=NOME$(T)
Next
SCORE(POS)=PIT
NOME$(POS)=""
Clear Key
For T=1 To 8
Text 100,110+((T-1)*10),NOME$(T)
Text 140,110+((T-1)*10),Str$(SCORE(T))
Next
NO$=""
Clear Key
Repeat
A$=Inkey$
If A$<>""
NO$=NO$+A$
Text 100,110+((POS-1)*10),NO$
End If
Until Len(NO$)=3
NOME$(POS)=NO$
Open Random 1,"topotto"
Field 1,3 As NOME$,5 As SCO$
For T=1 To 8
NOME$=NOME$(T) : SCO$=Str$(SCORE(T))
Put 1,T
Next
Close 1
Repeat
Until Fire(1) or Key Shift=2
Goto INIZIO