@tukinem, post #30
Po drugie, Aminet bardziej służy chyba grom / programom dla systemu.
@tukinem, post #30
To po prostu mój odzew na komentarze, że jeśli Amiga 500, to tylko goła / koszerna
@Madman, post #38
utrzeć nosa gdyby chcieli korzystać z nośników cyfrowych typu karta SD/CF czy gotek
@Norbert, post #39
@tukinem, post #52
WBStartup #WYTNIJSHAPY=0 CNIF #WYTNIJSHAPY=1 BitMap 0,80,64,1 LoadBitMap 0,"snake.iff" GetaShape 10,0,0,73,48 For a=0 To 9 GetaShape a,a*4,48,4,5 Next GetaShape 11,39,48,8,8 Free BitMap 0 SaveShapes 0,11,"GFX.SHP" CEND NEWTYPE .coords x.w y.w End NEWTYPE DEFTYPE .coords G DEFTYPE .w score DEFTYPE .b k,counter,bonus Dim List moves.coords(512) Dim map.b(21,21) DefaultOutput If Processor>0 NPrint "ONLY 68000 !!!" End EndIf If FastFree>0 NPrint "NO FAST OR SLOW MEMORY !!!" End EndIf If ExecVersion>33 NPrint "ONLY KICKSTART 1.2 !!!" End EndIf If ChipFree>512000 NPrint "You don't need that much of CHIP RAM !!!" End EndIf NPrint "WOW !!! You have a proper configuration" NPrint "of your Amiga, but this game uses only 0,001%" NPrint "of resources of your computer" NPrint "so you can run another game..." NPrint "" NPrint "If you have a joystick, then press FIRE..." While Joyb(1)=0 VWait Wend .LadujDane LoadShapes 0,"GFX.SHP" M.l = AllocMem_(FileSize("mus.mod"),2) BLoad "mus.mod",M MOVE.b #%01111000,d0 MOVE.b d0,$bfd100 NOP NOP ORI.b #%10000000,d0 MOVE.b d0,$bfd100 NOP NOP ANDI.b #%10000111,d0 MOVE.b d0,$bfd100 MTInit M,0,0 BitMap 0,192,192,1 InitPalette 0,2 PalRGB 0,0,$5,$c,$3 PalRGB 0,1,$3,$3,$2 VWait BLITZ Statement score{score.w} Boxf 8,0,24,5,0 score$ = Str$(score) While Len(score$)<4 score$ = "0"+score$ Wend For a=1 To Len(score$) Blit Val(Mid$(score$,a,1)),a LSL 2+4,0 Next End Statement Statement BONUS{} SHARED map() a.b = Rnd(22) b.b = Rnd(22) While map(a,b)=1 a.b = Rnd(22) b.b = Rnd(22) Wend map(a,b)=2 Blit 11,a LSL 3+8 , b LSL 3+10 End Statement InitCopList 0,64-NTSC*20,192,$1,8,2,-4 DisplayAdjust 0,-16,32,-32,64,-64 DisplayBitMap 0,0 DisplayPalette 0,0 CreateDisplay 0 ; Ustawienie kolorow Copperem For i.w = 0 To 189 DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2) Next JSR StartScreen .MAIN Repeat TST.b frame BNE.b 'minus MOVE.b #2,frame BRA 'endframe 'minus SUBQ.b #1,frame 'endframe VWait ResetList moves() If Peek.b(?frame)=0 If NextItem(moves()) Boxf moves()\x LSL 3+8,moves()\y LSL 3+10,moves()\x LSL 3+15,moves()\y LSL 3+17,0 If bonus=False map(moves()\x,moves()\y) = 0 KillItem moves() Else bonus=False EndIf EndIf Select k Case 1 : G\y-1 Case 2 : G\y+1 Case 4 : G\x-1 Case 8 : G\x+1 End Select G\x = QWrap(G\x,0,22) G\y = QWrap(G\y,0,22) Select map(G\x,G\y) Case 1 : JSR GameOver Case 2 : bonus = True : score+5 : score{score} : BONUS{} For i = 0 To 189 DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2) Next DisplayPalette 0,0 End Select If AddLast(moves()) moves()\x = G\x moves()\y = G\y map(moves()\x,moves()\y) = 1 EndIf Boxf G\x LSL 3+8,G\y LSL 3+10,G\x LSL 3+15,G\y LSL 3+17,1 blockmove=False EndIf If RawStatus($45) : JSR StartScreen : EndIf If blockmove=False If Joyy(1)=-1 AND k<>2 Then k=1 : blockmove=True If Joyx(1)=1 AND k<>4 Then k=8 : blockmove=True If Joyx(1)=-1 AND k<>8 Then k=4 : blockmove=True If Joyy(1)=1 AND k<>1 Then k=2 : blockmove=True EndIf Forever .StartGame Cls Line 7,6,184,6,1 Line 7,7,184,7,1 Box 7,9,184,186,1 score = 0 k = 8 G\x = 10 : G\y = 10 : k = 8 For j=0 To 21 For i=0 To 21 map(i,j) = 0 Next Next ClearList moves() score{score} BONUS{} RTS .StartScreen MTEnd Cls Blit 10,64,64 While RawStatus($45) VWait Wend While NOT Joyb(1)=1 VWait If RawStatus($45) Then End Wend MTPlay On JSR StartGame RTS .GameOver BitMapOutput 0 Locate 6,0 NPrint "GAME OVER" While Joyb(1)=0 VWait For i = 0 To 189 DisplayRGB 0,0,i,$4+Rnd(2),$c+Rnd(2),$3+Rnd(2) Next DisplayPalette 0,0 Wend While Joyb(1)=1 VWait Wend JSR StartScreen RTS Even frame Dc.w 0
@karolb, post #56
@amikoksu, post #48
Dasz radę. Może być z doczytywaniem w trakcie rozgrywki.
@tukinem, post #58