home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1986 September / 64er_Magazin_86-09_1986_Markt__Technik_de.d64 / demo (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  6KB  |  125 lines

  1. 10 rem *******************
  2. 20 rem * shrinksprite 64 *
  3. 30 rem *      demo       *
  4. 40 rem *   written by    *
  5. 50 rem * burkhard reike  *
  6. 60 rem *  in march '86   *
  7. 70 rem *******************
  8. 80 poke53280,0:poke53281,0
  9. 90 print"[147]            bitte warten !":poke55,0:poke56,60
  10. 100 forx=0to318:reada:poke16064+x,a:next
  11. 110 clr:v=53248:ad=49152:forx=0to9:pokev+x,0:next:pokev+23,0:pokev+29,0
  12. 120 forx=0to4:s(x)=251+x:s1(x)=246+x:pokev+39+x,x+1:nextx
  13. 130 print"[147]":forx=0to3:pokev+2*x,45*x+100:nextx
  14. 140 forx=0to3:sysad,s(x),s1(x),10,10,x:pokev+21,peek(v+21)or2^x
  15. 150 fory=1to100:pokev+2*x+1,y:nexty
  16. 160 fory=9to0step-1:sysad,s(x),s1(x),y,y,x:nexty:nextx
  17. 170 print"         fuer 'shrinksprite 64'"
  18. 180 print"             taste druecken[146]"
  19. 190 fors=0to3:forx=1to23:sysad,s(s),s1(s),0,x,s:geta$:ifa$<>""then220
  20. 200 nextx:forx=23to0step-1:sysad,s(s),s1(s),0,x,s:geta$:ifa$<>""then220
  21. 210 nextx,s:goto190
  22. 220 forx=0to7:pokev+x,0:nextx:print"[147]"
  23. 230 printspc(12)"shrinksprite 64"
  24. 240 printspc(12)"***************"
  25. 250 print"shrinksprite 64 hat die faehigkeit,durcheinen sys-aufruf und para";
  26. 260 print"meteruebergabe einen sprite horizontal und vertikal zu stauchen";
  27. 270 print",wobei der urspruengliche spriteerhalten bleibt,da der gestauchte";
  28. 280 print" spritein einem neuen spriteblock abgelegt     wird.das programm ";
  29. 290 print"kann auf wunsch den   spritezeiger auf den neuen block setzen.":print
  30. 300 gosub1060:print"[147]":printspc(13)"die parameter[146]"
  31. 310 print"der aufruf der routine sieht folgendermassen aus:"
  32. 320 a$(1)="routine":a$(2)="sprite1":a$(3)="sprite2":a$(4)="vertikal"
  33. 330 a$(5)="horizontal":a$(6)="nummer"
  34. 340 print:print:q=7:gosub1070:gosub1060:print"[147]"
  35. 350 q=1:gosub1070
  36. 360 print"die adresse nach dem sysaufruf ist stetsder anfang der routine ";
  37. 370 print"'shrinksprite 64'":print:gosub1060:print"[147]":q=2:gosub1070
  38. 380 print"nach dem ersten komma kommt die nummer  des spriteblocks,der ";
  39. 390 print"veraendert werden  soll (0-255).":print:gosub1060:print"[147]":q=3
  40. 400 gosub1070:print"hiernach folgt die nummer des sprite-   blocks";
  41. 410 print",in dem der veraenderte sprite ab-gelegt werden soll.dieser block";
  42. 420 print" darf mitdem ersten block identisch sein.":print:gosub1060
  43. 430 print"[147]":q=4:gosub1070:print"es folgen nun zwei parameter,die";
  44. 440 print" fuer   das ausmass der stauchung verantwortlichsind.zuerst kommt ";
  45. 450 print"grad der vertikalen   stauchung (0-20).":print:gosub1060:q=5:print"[147]"
  46. 460 gosub1070:print"dann der grad der horizontalen stauchung(0-23).zu den ";
  47. 470 print"parametern der stauchungengibt es spaeter noch weitere ausfuehrungen."
  48. 480 gosub1060:print"[147]":q=6:gosub1070
  49. 490 print"die spritenummer (0-7) bewirkt,dass der entsprechende zeiger auf ";
  50. 500 print"den spriteblockdes sprites,der veraendert werden soll, auf den neuen";
  51. 510 print" block geschaltet wird(bei 0 wuerde zum beispiel der zeiger 2040"
  52. 520 print"veraendert werden)."
  53. 530 print"ist die nummer groesser als 7,so wird  diese umschaltung unterdrue";
  54. 540 print"ckt.":gosub1060
  55. 550 print"[147]veraendern sie nun mit hilfe der        funktionstasten den sprite:"
  56. 560 print"f1[146] - der grad der vertikalen stauchung       wird erhoeht (bis 20)"
  57. 570 print"f3[146] - der grad der vertikalen stauchung       wird niedriger (bis 0)"
  58. 580 print"f5[146] - der grad der horizontalen stauchung     wird erhoeht (bis 23)"
  59. 590 print"f7[146] - der grad der horizontalen stauchung     wird niedriger (bis 0)"
  60. 600 print"return[146] - verlassen dieses programmteils"
  61. 610 pokev+8,170:pokev+9,180:poke2044,s(4):pokev+21,16:pokev+43,4
  62. 620 print"":a$="00":b$="00":a=0:b=0
  63. 630 print"[145]      vertikal:"+a$+"[146]     horizontal:"+b$+"[146]"
  64. 640 c$="":getc$:ifc$=""then640
  65. 650 ifasc(c$)=13then730
  66. 660 ifc$="[133]"thenifa<20thena=a+1
  67. 670 ifc$="[134]"thenifa>0thena=a-1
  68. 680 ifc$="[135]"thenifb<23thenb=b+1
  69. 690 ifc$="[136]"thenifb>0thenb=b-1
  70. 700 sysad,s(4),s1(4),a,b,4:a$=right$(str$(a),2):ifa<10thena$="0"+right$(a$,1)
  71. 710 b$=right$(str$(b),2):ifb<10thenb$="0"+right$(b$,1)
  72. 720 goto630
  73. 730 pokev+8,0:print"[147]mit shrinksprite 64 kann man also ohne  grossen aufwand ";
  74. 740 print"einen sprite effektvoll veraendern:er veraendert seine groesse"
  75. 750 print"(seine entfernung),wird duenner oder    dreht sich sogar."
  76. 760 print"durch die einfache und schnelle para-   meteruebergabe kann jeder ";
  77. 770 print"anwender      shrinksprite 64 in seinen eigenen pro-  grammen verwe";
  78. 780 print"nden.":gosub1060:print"[147]wussten sie schon,wie die welt aus der"
  79. 790 print"sicht von pacman aussieht ?"
  80. 800 forx=1to4000:nextx
  81. 810 print"[147][183][183][183][183][183][183][183][183][183][183][183][183][208][205]             [206][207][183][183][183][183][183][183][183][183][183][183][183]";
  82. 820 print"            [170] [205]           [206] [180]"
  83. 830 print"            [170]  [205]         [206]  [180]"
  84. 840 print"            [170]  [170]        [206]   [180]"
  85. 850 print"            [170]  [170][208][205]     [206]    [180]"
  86. 860 print"            [170]  [170][170] [205]   [206]     [180]"
  87. 870 print"            [170]  [170][170]  [205] [206]      [180]"
  88. 880 print"            [170]  [170][170]  [170] [180]      [180]"
  89. 890 print"            [170]  [170][170]  [206] [205]      [180]"
  90. 900 print"            [170]  [170][170] [206]   [205]     [180]"
  91. 910 print"            [170]  [170][186][206]     [205]    [180]"
  92. 920 print"            [170]  [170]        [205]   [180]"
  93. 930 print"            [170]  [206]         [205]  [180]"
  94. 940 print"            [170] [206]           [205] [180]"
  95. 950 print"[175][175][175][175][175][175][175][175][175][175][175][175][186][206]             [205][204][175][175][175][175][175][175][175][175][175][175][175]":forx=1to800:nextx
  96. 960 sysad,s(4),s1(0),4,5,0:sysad,s(4),s1(4),10,10,4:pokev+8,175:pokev+9,140:a=0
  97. 970 forx=9to0step-1
  98. 980 a=a+1.3:sysad,s(4),s1(4),x,x,4:pokev+9,140+a:nextx:poke198,0
  99. 990 pokev+23,1:pokev+29,1:pokev,164:pokev+1,147
  100. 1000 pokev+39,4:pokev+21,1:poke198,0
  101. 1010 a=0:forx=3to0step-1:a=a+3:sysad,s(4),s1(0),x,x+1,0:poke198,0
  102. 1020 pokev+1,147+a:nextx:sysad,s(4),s1(0),0,0,0:x=0
  103. 1030 forq=1to25:sysad,s(4),s1(0),0,x,0:x=23-x:fory=1to50:nexty:nextq:print"[147]"
  104. 1040 goto110
  105. 1050 end
  106. 1060 printspc(17)"taste[146]":poke198,0:wait198,255:return
  107. 1070 forx=1to6:en$(x)="":an$(x)="":next:an$(q)="":en$(q)="[146]"
  108. 1080 print"sys ";:forx=1to6:print",";an$(x)a$(x)en$(x);:next:print:print:return
  109. 1090 data0,0,0,127,254,0,127,255,128,127,255,192,63,255,224,63,255,240,63,7
  110. 1100 data240,62,1,248,62,1,248,62,0,248,62,0,248,62,0,248,62,1,248,62,3,248
  111. 1110 data63,7,240,63,255,240,127,255,224,127,255,192,127,255,128,127,254,0,0
  112. 1120 data0,0,0,0,0,0,63,255,240,127,255,248,127,255,248,63,255,240,62,0,0,62
  113. 1130 data0,0,62,0,0,63,255,192,63,255,224,63,255,224,63,255,192,62,0,0,62,0
  114. 1140 data0,62,0,0,62,0,0,63,255,240,127,255,248,127,255,248,63,255,240,0,0,0
  115. 1150 data0,0,0,0,60,0,60,127,0,254,127,195,254,127,255,254,127,255,254,125,255
  116. 1160 data190,124,126,62,124,126,62,124,60,62,124,24,62,124,0,62,124,0,62,124
  117. 1170 data0,62,124,0,62,124,0,62,124,0,62,124,0,62,124,0,62,124,0,62,56,0,28
  118. 1180 data0,0,0,0,0,254,0,3,255,128,7,255,192,15,255,224,31,255,240,31,199,240
  119. 1190 data63,129,248,63,1,248,62,0,248,62,0,248,62,0,248,63,1,248,63,3,248,31
  120. 1200 data199,240,31,255,240,15,255,224,7,255,192,3,255,128,0,254,0,0,0,0,0,1
  121. 1210 data255,128,15,255,240,31,255,248,63,255,252,60,126,60,121,188,30,115
  122. 1220 data216,14,241,153,143,240,27,207,248,61,159,252,126,63,255,255,255,254
  123. 1230 data237,207,252,76,143,248,0,15,250,49,47,255,51,191,255,255,255
  124. 1240 data247,60,239,226,24,71,66,24,66
  125.