Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QBasic 5.04 KB | None | 0 0
  1. SCREEN _newimage(640,480,32)
  2.  
  3. DIM SHARED keyflags%(0 TO 127)
  4.  
  5. DIM tlist%(5,285)
  6.  
  7. DIM map%(0 TO 19,0 TO 14)
  8.  
  9. DIM timg&(0 TO 40)
  10.  
  11. DIM foe!(2,6,20)
  12.  
  13. back&=_loadimage("./gaemdata/back.png")
  14.  
  15. cursor&=_loadimage("./gaemdata/cursor.png")
  16.  
  17. cross&=_loadimage("./gaemdata/cross.png")
  18.  
  19. timg&(0)=_loadimage("./gaemdata/empty.png")
  20.  
  21. timg&(1)=_loadimage("./gaemdata/nogo.png")
  22.  
  23. timg&(2)=_loadimage("./gaemdata/walk.png")
  24.  
  25. timg&(3)=_loadimage("./gaemdata/menu.png")
  26.  
  27. timg&(11)=_loadimage("./gaemdata/ft1.png")
  28.  
  29. timg&(12)=_loadimage("./gaemdata/ft2.png")
  30.  
  31. timg&(13)=_loadimage("./gaemdata/ft3.png")
  32.  
  33. timg&(14)=_loadimage("./gaemdata/ft4.png")
  34.  
  35. timg&(30)=_loadimage("./gaemdata/foe1.png")
  36.  
  37. mapbuffer& = _newimage(640,480,32)
  38.  
  39. RANDOMIZE TIMER
  40.  
  41. _mousehide
  42.  
  43. _printmode _keepbackground
  44.  
  45. gcursor&=cursor&
  46.  
  47. puttower%=0
  48.  
  49. FOR foelist%=1 TO 2
  50.  
  51.   READ xmin%
  52.  
  53.   READ xsiz%
  54.  
  55.   READ ymin%
  56.  
  57.   READ ysiz%
  58.  
  59.   READ hp%
  60.  
  61.   READ armour!
  62.  
  63. NEXT
  64.  
  65. FOR foewave%=1 TO 2
  66.  
  67.   FOR foe%=1 TO 20
  68.  
  69.     foe!(foewave%,1,foe%)=33+16*RND
  70.  
  71.     foe!(foewave%,2,foe%)=65+62*RND
  72.  
  73.     foe!(foewave%,3,foe%)=3*RND
  74.  
  75.     foe!(foewave%,4,foe%)=3*RND
  76.  
  77.     foe!(foewave%,5,foe%)=100
  78.  
  79.     foe!(foewave%,6,foe%)=armour!
  80.  
  81.   NEXT
  82.  
  83. NEXT
  84.  
  85. _putimage(0,0),back&,mapbuffer&
  86.  
  87. FOR y%=0 TO 14
  88.  
  89.   FOR x%=0 TO 19
  90.  
  91.     READ block%
  92.  
  93.     _putimage(32*x%,32*y%),timg&(block%),mapbuffer&
  94.  
  95.     map%(x%,y%)=block%
  96.  
  97.   NEXT
  98.  
  99. NEXT
  100.  
  101. _putimage(608,0),cross&,mapbuffer&
  102.  
  103. FOR n%=1 TO 4
  104.  
  105.   _putimage(608,n%*32),timg&(n%+10),mapbuffer&
  106.  
  107. NEXT
  108.  
  109. _freeimage back&
  110.  
  111. _freeimage cross&
  112.  
  113. _freeimage timg&(1)
  114.  
  115. _freeimage timg&(2)
  116.  
  117. _freeimage timg&(3)
  118.  
  119. tim=TIMER
  120.  
  121. timm2=TIMER
  122.  
  123. wave%=1
  124.  
  125. DO
  126.  
  127.   WHILE _mouseinput
  128.  
  129.     musx%=_mousex
  130.  
  131.     musy%=_mousey
  132.  
  133.   WEND
  134.  
  135.   IF _mousebutton(1) THEN
  136.  
  137.     IF musx%<592 THEN
  138.  
  139.       IF puttower% AND map%(.03125*musx%,.03125*musy%)=0 THEN
  140.  
  141.         musxt%=.03125*musx%
  142.  
  143.         musyt%=.03125*musy%
  144.  
  145.         gcursor&=cursor&
  146.  
  147.         ntowers%=ntowers%+1
  148.  
  149.         tlist%(1,ntowers%)=musx%
  150.  
  151.         tlist%(2,ntowers%)=musy%
  152.  
  153.         map%(musxt%,musyt%)=puttower%
  154.  
  155.         _putimage(32*musxt%,32*musyt%),timg&(map%(musxt%,musyt%)),mapbuffer&
  156.  
  157.         _dest mapbuffer&
  158.  
  159.         CIRCLE(32*musxt%,32*musyt%),64,_rgba32(64,212,64,128)
  160.  
  161.         _dest 0
  162.  
  163.         puttower%=0
  164.  
  165.       END IF
  166.  
  167.     ELSEIF musx%>=608 AND puttower%=0 THEN
  168.  
  169.       IF musy%>=32 AND musy%<64 AND geld%>=0 THEN
  170.  
  171.         gcursor&=timg&(11)
  172.  
  173.         puttower%=11
  174.  
  175.         'geld%=geld%-1
  176.  
  177.       ELSEIF musy%>=64 AND musy%<96 AND geld%>=0 THEN
  178.  
  179.         gcursor&=timg&(12)
  180.  
  181.         puttower%=12
  182.  
  183.         'geld%=geld%-2
  184.  
  185.       ELSEIF musy%>=96 AND musy%<128 AND geld%>=0 THEN
  186.  
  187.         gcursor&=timg&(13)
  188.  
  189.         puttower%=13
  190.  
  191.         'geld%=geld%-3
  192.  
  193.       ELSEIF musy%>=128 AND musy%<160 AND geld%>=0 THEN
  194.  
  195.         gcursor&=timg&(14)
  196.  
  197.         puttower%=14
  198.  
  199.         'geld%=geld%-4
  200.  
  201.       ELSEIF musy%<32 THEN SYSTEM
  202.  
  203.       END IF
  204.  
  205.     END IF
  206.  
  207.   END IF
  208.  
  209.   _putimage(0,0),mapbuffer&
  210.  
  211.   _putimage(musx%,musy%),gcursor&
  212.  
  213.   FOR foe%=1 TO 20
  214.  
  215.     IF foe!(wave%,5,foe%)<=0 THEN foe!(wave%,3,foe%)=0:foe!(wave%,4,foe%)=0:foe%=foe%+1
  216.  
  217.     FOR tower%=1 TO ntowers%
  218.  
  219.       IF SQR((tlist%(1,tower%)-foe!(wave%,1,foe%))^2+(tlist%(2,tower%)-foe!(wave%,2,foe%))^2)<64 THEN foe!(wave%,5,foe%)=foe!(wave%,5,foe%)-1
  220.  
  221.     NEXT
  222.  
  223.     IF map%((foe!(wave%,1,foe%)+.03125*foe!(wave%,3,foe%))*.03125,.03125*foe!(wave%,2,foe%))<>2 THEN foe!(wave%,3,foe%)=-foe!(wave%,3,foe%)
  224.  
  225.     IF map%(.03125*foe!(wave%,1,foe%),(foe!(wave%,2,foe%)+.03125*foe!(wave%,4,foe%))*.03125)<>2 THEN foe!(wave%,4,foe%)=-foe!(wave%,4,foe%)
  226.  
  227.     IF foe!(wave%,2,foe%)<32 THEN foe!(wave%,3,foe%)=0:foe!(wave%,4,foe%)=0
  228.  
  229.     foe!(wave%,1,foe%)=foe!(wave%,1,foe%)+foe!(wave%,3,foe%)
  230.  
  231.     foe!(wave%,2,foe%)=foe!(wave%,2,foe%)+foe!(wave%,4,foe%)
  232.  
  233.     _putimage(foe!(wave%,1,foe%),foe!(wave%,2,foe%)),timg&(30)
  234.  
  235.   NEXT
  236.  
  237.   n!=n!+1
  238.  
  239.   _printstring (-7,-1),STR$(n!/(timer-tim))
  240.  
  241.   _printstring (540,467),"GELD:"+STR$(geld%)
  242.  
  243.   _display
  244.  
  245.   '_limit 60
  246.  
  247. LOOP UNTIL scankey%(01)
  248.  
  249. SYSTEM
  250.  
  251.  
  252.  
  253. FUNCTION scankey%(scancode%)
  254.  
  255. i%=INP(&h60)
  256.  
  257. IF (i% AND 128) THEN keyflags%(i% XOR 128) = 0
  258.  
  259. IF (i% AND 128) = 0 THEN keyflags%(i%) = -1
  260.  
  261. WHILE inkey$<>"":WEND
  262.  
  263. scankey%=keyflags%(scancode%)
  264.  
  265. END FUNCTION
  266.  
  267.  
  268.  
  269. DATA 0,64,64,64,100,1
  270.  
  271. DATA 0,64,64,64,120,2.5
  272.  
  273.  
  274.  
  275. DATA 3,3,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,0,0,3
  276.  
  277. DATA 1,1,1,1,0,0,0,0,1,2,2,1,0,0,0,0,0,0,0,3
  278.  
  279. DATA 1,2,2,2,1,0,0,0,1,2,2,2,1,1,1,1,1,0,0,3
  280.  
  281. DATA 1,2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,1,0,3
  282.  
  283. DATA 1,1,1,2,2,2,1,0,0,1,2,2,2,2,2,2,2,1,0,3
  284.  
  285. DATA 0,0,0,1,2,2,2,1,0,0,1,1,1,1,1,2,2,1,0,3
  286.  
  287. DATA 0,0,0,0,1,2,2,1,0,0,0,0,0,1,2,2,2,1,0,3
  288.  
  289. DATA 0,0,0,0,1,2,2,1,0,0,0,0,1,2,2,2,1,1,0,3
  290.  
  291. DATA 0,1,1,1,1,2,2,1,0,0,0,1,2,2,2,1,0,0,0,3
  292.  
  293. DATA 1,2,2,2,2,2,2,1,0,0,0,1,2,2,1,0,0,0,0,0
  294.  
  295. DATA 1,2,2,2,2,2,1,0,0,0,0,1,2,2,1,0,0,0,0,0
  296.  
  297. DATA 1,2,2,1,1,1,1,1,1,1,1,2,2,2,1,0,0,0,0,0
  298.  
  299. DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0
  300.  
  301. DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,0,0,0,0
  302.  
  303. DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement