c-sanchez

qbsprite.bas (from freebasic examples)

Feb 13th, 2017
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '' QB-ish graphics test
  2.  
  3. sub createsprite( sprite() as byte, byval w as integer, byval h as integer, byval bpp as integer = 1 )
  4.     redim sprite(0 to w*h*bpp-1 + 2*len(short)) as byte
  5.  
  6.     cls
  7.  
  8.     for y as integer = 0 to h-1
  9.         for x as integer = 0 to w-1
  10.             pset (x, y), (x xor y) * 4
  11.         next
  12.     next
  13.  
  14.     line (0,0)-(w-1, h-1), 0, B
  15.  
  16.     get (0, 0)-(w-1,h-1), sprite(0)
  17.  
  18.     cls
  19. end sub
  20.  
  21. const xres = 320*1
  22. const yres = 200*1
  23.  
  24. screen 13
  25.  
  26. window (0, 0)-(xres-1, yres-1)
  27. view (4,4)-(xres-4,yres-4)
  28.  
  29. dim as integer mypal(0 to 255)
  30. for i as integer = 0 to 255
  31.     mypal(i) = (i \ 4) shl 16
  32. next
  33. mypal(255) = 63 shl 16 or 63 shl 8 or 63
  34.  
  35. palette using mypal
  36.  
  37. const spritesize = 64
  38. dim mysprite() as byte
  39. createsprite( mysprite(), spritesize, spritesize )
  40.  
  41. color 255
  42.  
  43. do
  44.     '' Draw the sprite in 100 different random places :)
  45.     for i as integer = 1 to 100
  46.         put (-spritesize+rnd*(xRes-1+spritesize), -spritesize+rnd*(yRes-1+spritesize)), mysprite, PSET
  47.         'color rnd*254
  48.         'line -( rnd*(xRes-1), rnd*(yRes-1) )
  49.         'line ( rnd*(xRes-1), rnd*(yRes-1) )-( rnd*(xRes-1), rnd*(yRes-1) )
  50.         'circle ( rnd*(xRes-1), rnd*(yRes-1) ), rnd*100, , , , 1.0
  51.     next
  52.  
  53.     '' Draw some text at a random position
  54.     locate 1 + rnd*23, 1 + rnd*40
  55.     color 255, 0
  56.     print "QB gfx!";
  57.  
  58.     '' Slow down the loop a little, so the pretty graphics can be seen...
  59.     sleep 100, 1
  60. loop while( len( inkey() ) = 0 )
Add Comment
Please, Sign In to add comment