Tässä olisi, erittäin tiivisti sisennetty source.
Code: Select all
SCREEN 400,490
Dim Ammus(10), AmmusX(10), AmmusY(10), ElossaAmmo(10), Nopeus(10)
Dim Vihu(10), VihuX(10), VihuY(10), VihuElossa(10),Vihut(10)
Map=MakeImage(32,32)
ResizeImage map,600,400
Global Pelaaja : Pelaaja=MakeImage(40,45)
Viho=MakeImage(35,30)
Global Klooni : Klooni=MakeImage(10,10)
Global Px, Py, Lataus, level
Px=100
Py = 100
DrawToImage Map
Color 0,70,77
Box x,y,600,ScreenHeight()
DrawToImage Pelaaja
Color 5,1,5
Box x,y,40,45,0
Box 15,15,20,15,1
DrawToImage Viho
Color CbGreen
Box x,y,35,30,0
Box 15,15,20,20,1
DrawToImage Klooni
Color CbBlue
Circle 5,5,10
DrawToScreen
For i = 1 To 10
Vihu(i)=CloneImage(Viho)
VihuX(i)=Rand(ScreenWidth())
VihuY(i)=Rand(400)
VihuElossa(i)=ON
Vihut(i)=5
Next i
Color CbRed
Repeat
If KeyDown(cbkeya) Then
Lx+1
Px-3
ElseIf KeyDown(cbkeyd) Then
Lx-1
Px+3
EndIf
If KeyDown(cbkeyw) Then Py-4
If KeyDown(cbkeys) Then Py+4
If Px>=360 Then Px=0 : Lx=0
If Px<=0 Then Px=0 : Lx=0
If Py>=355 Then Py=355 : Ly=0
If Py<=0 Then Py=0 : Ly=0
DrawImage Map,Lx,0
If MouseDown(1) And Lataus=0 Then Uusi()
Päivitä()
If Lataus>0 Then Lataus=Lataus-1
if taistele=1 then Dummy()
If Puhu=1
Text 0,430,"Terve omistaja"
ElseIf Nuku=1
Repeat
Väsymys#=Väsymys#-1
Text 100,100, "Olet nukkumassa"
DrawScreen
Until Väsymys#=0
Nuku=0
End If
If KeyHit(28) Then Gosub Command
DrawImage Pelaaja,Px,Py
Text 0,0,"Taso: "+Level
Text 0,20,"Nälkä: "+Nälkä#
Text 0,40,"Väsymys: "+Väsymys#
Nälkä=Nälkä+0.01
Väsymys=Väsymys+0.02
If nälkä=100.00 Then MakeError "Lemmikkisi kuoli nälkään."
If HahmoLevel=10 Then MakeError "Voitit pelin"
If Väsymys=100
Text 0,410,"Lemmikkisi nukahti, joudut odottamaan kunnes lemmikkisi herää."
Repeat
Väsymys=Väsymys-1
Text 0,60,Väsymys#
DrawScreen
Forever
EndIf
Text 5,410,"Käskyt ovat: taistele, ruoki, puhu ja nuku."
Text 5,430,"Paina entteriä niin voit syöttää käskyjä."
Text 5,450,"Voit lisäksi ampua sinisiä ammuksia."
Text 5,470,"Mutta siitä ei ole tällä hetkellä mitään hyötyä"
DrawScreen
Forever
Command:
ClearKeys
Locate 0,400
While Not KeyHit(28)
Com$=Lower(Input("Komento on? "))
DrawImage Map,Lx,0
DrawImage Pelaaja,Px,Py
DrawScreen
Wend
CloseInput
Select com$
Case "taistele"
Taistele=1
Case "ruoki"
Text 0,410,"Olet syöttänyt ja juottanut hahmosi"
Nälkä=Nälkä-20
If nälkä<=0 Then nälkä=0
Case "puhu"
Puhu=1
Case "nuku"
nuku=1
EndSelect
Return
Function Uusi()
For A = 1 To 10
If ElossaAmmo(A)=OFF
ElossaAmmo(A)=ON
Ammus(A) = CloneImage(Klooni)
AmmusX(A) = Px
AmmusY(A) = Py
AmmusX(A)=AmmusX(A)+42
AmmusY(A)=AmmusY(A)+16
Lataus=15
Ammukset=Ammukset-1
Exit
EndIf
Next A
End Function
Function Päivitä()
For A = 1 To 10
If ElossaAmmo(A)
AmmusX(A)=AmmusX(A)+1
DrawImage Ammus(A),AmmusX(A),AmmusY(A)
If Distance (AmmusX(A),AmmusY(A),Px,Py) > 360
DeleteImage Ammus(A)
ElossaAmmo(A)=OFF
EndIf
EndIf
Next A
End Function
Function Dummy()
For B = 1 To 10
if VihuElossa(B)=ON
If ImagesOverlap(Pelaaja,Px,Py,Vihu(B),VihuX(B),VihuY(B))
Level=level+1
VihuElossa(B)=OFF
DeleteImage Vihu(B)
If Vihut(B)=0
taistele=0
Raha+5
EndIf
EndIf
If VihuElossa(B)
DrawImage Vihu(B),VihuX(B),VihuY(B)
EndIf
EndIf
Next B
End Function