home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Apfelmonster / Autowall.AMOS / Autowall.amosSourceCode
Encoding:
AMOS Source Code  |  1995-08-12  |  1.5 KB  |  54 lines

  1. ' Dies ist das ergebnis eines genialen Einfalls, wie man sehr leicht 
  2. ' Autowalls erzeugen kann... Die Grafiken geh�ren zu einem angefangenen
  3. ' Spiel Namens Apfelmonster, was ich aber nie beendet habe... Schade,
  4. ' denn f�r 16 Farben find ich die Grafik ziemlich bunt und gut 
  5. ' gelungen :-) 
  6. Load Iff "newapfelgfx.iff",1
  7. For A=0 To 19
  8.   Get Block A+1,(A mod 20)*16,(A/20)*16,16,16
  9. Next 
  10. Screen Open 0,320,256,16,0
  11. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
  12. Get Palette 1
  13. Dim F(20,16)
  14. For Y=0 To 15
  15.   For X=0 To 19
  16.     F(X,Y)=Rnd(3)
  17.     Put Block F(X,Y)+1,X*16,Y*16
  18.   Next 
  19. Next 
  20. Limit Mouse 
  21. XO=-1 : YO=-1
  22. Do 
  23.   XM=X Screen(X Mouse) : YM=Y Screen(Y Mouse)
  24.   MK=Mouse Key
  25.   XB=XM/16 : YB=YM/16
  26.   If MK=1 and(XO<>XB or YO<>YB) Then Gosub PUWALL : Gosub ENVMOD
  27.   If MK=2 and(XO<>XB or YO<>YB) Then Gosub DEWALL : Gosub ENVMOD
  28.   If MK=0 Then XO=-1 : YO=-1
  29. Loop 
  30. PUWALL:
  31.   Gosub CHKWALL
  32.   F(XB,YB)=Abs(F10+F01*2+F21*4+F12*8)+4
  33.   Put Block F(XB,YB)+1,XB*16,YB*16
  34. Return 
  35. DEWALL:
  36.   Gosub CHKWALL
  37.   F(XB,YB)=Rnd(3)
  38.   Put Block F(XB,YB)+1,XB*16,YB*16
  39. Return 
  40. CHKWALL:
  41.   If YB>0 Then F10=F(XB,YB-1)>3 and F(XB,YB-1)<20 Else F10=0
  42.   If XB>0 Then F01=F(XB-1,YB)>3 and F(XB-1,YB)<20 Else F01=0
  43.   If XB<19 Then F21=F(XB+1,YB)>3 and F(XB+1,YB)<20 Else F21=0
  44.   If YB<15 Then F12=F(XB,YB+1)>3 and F(XB,YB+1)<20 Else F12=0
  45. Return 
  46. ENVMOD:
  47.   XG=XB : YG=YB
  48.   G10=F10 : G01=F01 : G21=F21 : G12=F12
  49.   If G10 Then XB=XG : YB=YG-1 : Gosub PUWALL
  50.   If G01 Then XB=XG-1 : YB=YG : Gosub PUWALL
  51.   If G21 Then XB=XG+1 : YB=YG : Gosub PUWALL
  52.   If G12 Then XB=XG : YB=YG+1 : Gosub PUWALL
  53.   XB=XG : YB=YG
  54. Return