home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1995-08-12 | 1.5 KB | 54 lines |
- ' Dies ist das ergebnis eines genialen Einfalls, wie man sehr leicht
- ' Autowalls erzeugen kann... Die Grafiken geh�ren zu einem angefangenen
- ' Spiel Namens Apfelmonster, was ich aber nie beendet habe... Schade,
- ' denn f�r 16 Farben find ich die Grafik ziemlich bunt und gut
- ' gelungen :-)
- Load Iff "newapfelgfx.iff",1
- For A=0 To 19
- Get Block A+1,(A mod 20)*16,(A/20)*16,16,16
- Next
- Screen Open 0,320,256,16,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
- Get Palette 1
- Dim F(20,16)
- For Y=0 To 15
- For X=0 To 19
- F(X,Y)=Rnd(3)
- Put Block F(X,Y)+1,X*16,Y*16
- Next
- Next
- Limit Mouse
- XO=-1 : YO=-1
- Do
- XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse)
- MK=Mouse Key
- XB=XM/16 : YB=YM/16
- If MK=1 and(XO<>XB or YO<>YB) Then Gosub PUWALL : Gosub ENVMOD
- If MK=2 and(XO<>XB or YO<>YB) Then Gosub DEWALL : Gosub ENVMOD
- If MK=0 Then XO=-1 : YO=-1
- Loop
- PUWALL:
- Gosub CHKWALL
- F(XB,YB)=Abs(F10+F01*2+F21*4+F12*8)+4
- Put Block F(XB,YB)+1,XB*16,YB*16
- Return
- DEWALL:
- Gosub CHKWALL
- F(XB,YB)=Rnd(3)
- Put Block F(XB,YB)+1,XB*16,YB*16
- Return
- CHKWALL:
- If YB>0 Then F10=F(XB,YB-1)>3 and F(XB,YB-1)<20 Else F10=0
- If XB>0 Then F01=F(XB-1,YB)>3 and F(XB-1,YB)<20 Else F01=0
- If XB<19 Then F21=F(XB+1,YB)>3 and F(XB+1,YB)<20 Else F21=0
- If YB<15 Then F12=F(XB,YB+1)>3 and F(XB,YB+1)<20 Else F12=0
- Return
- ENVMOD:
- XG=XB : YG=YB
- G10=F10 : G01=F01 : G21=F21 : G12=F12
- If G10 Then XB=XG : YB=YG-1 : Gosub PUWALL
- If G01 Then XB=XG-1 : YB=YG : Gosub PUWALL
- If G21 Then XB=XG+1 : YB=YG : Gosub PUWALL
- If G12 Then XB=XG : YB=YG+1 : Gosub PUWALL
- XB=XG : YB=YG
- Return