Advertisement
Guest User

Untitled

a guest
Dec 12th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.00 KB | None | 0 0
  1. --make four 1-bit 8x8 pictures
  2. trgt="00111100"
  3.    .."01000010"
  4.    .."10000001"
  5.    .."10011001"
  6.    .."10011001"
  7.    .."10000001"
  8.    .."01000010"
  9.    .."00111100"
  10.    
  11. sqre="11111111"
  12.    .."10000001"
  13.    .."10000001"
  14.    .."10000001"
  15.    .."10000001"
  16.    .."10000001"
  17.    .."10000001"
  18.    .."11111111"
  19.    
  20. crss="10000001"
  21.    .."01000010"
  22.    .."00100100"
  23.    .."00011000"
  24.    .."00011000"
  25.    .."00100100"
  26.    .."01000010"
  27.    .."10000001"
  28.    
  29. dith="10101010"
  30.    .."01010101"
  31.    .."10101010"
  32.    .."01010101"
  33.    .."10101010"
  34.    .."01010101"
  35.    .."10101010"
  36.    .."01010101"
  37.  
  38.  
  39. --sets bit at (x,y,layer) of
  40. --sprite sheet to 1
  41. function ssetb(x,y,layer)
  42.  
  43.  col=bor(sget(x,y),
  44.          shl(0b00000001,layer)
  45.         )
  46.        
  47.  sset(x,y,col)
  48. end
  49.  
  50. --func to write binary pic to
  51. --the sprite sheet:
  52. --  picture string
  53. --  layer (0-3)
  54. --  sprite pos
  55. --  sprite size
  56. function bspradd(p,layer,x,y,w,h)
  57.  i=1
  58.  for sx=x,x+w-1 do for sy=y,y+h-1 do
  59.  
  60.   if sub(p,i,i) == "1" then
  61.    ssetb(sx,sy,layer)
  62.   end
  63.   i+=1
  64.  
  65.  end end
  66. end
  67.  
  68. --clear first sprite in map
  69. for x=0,7 do for y=0,7 do
  70.  sset(x,y,0)
  71. end end
  72.  
  73. --write each 1-bit picture to
  74. --sprite map at 0,0
  75. bspradd(trgt,0,0,0,8,8)
  76. bspradd(sqre,1,0,0,8,8)
  77. bspradd(crss,2,0,0,8,8)
  78. bspradd(dith,3,0,0,8,8)
  79.  
  80.  
  81. --palette binary mask
  82. --  layer to draw
  83. --  colour 1
  84. --  [colour 0]
  85. function palb(layer,c1,c0)
  86.  for c=0,15 do
  87.  
  88.   b=shl(0b00000001,layer)
  89.   col=band(c,b)
  90.   if col==b then
  91.    --draw colour 1
  92.    palt(c,false)
  93.    pal(c,c1)
  94.   else
  95.    --draw colour 0 (or dont)
  96.    if c0 then
  97.     palt(c,false)
  98.     pal(c,c0)
  99.    else
  100.     --draw transparent
  101.     palt(c,true)
  102.    end
  103.   end
  104.  
  105.  end
  106. end
  107.  
  108.  
  109. --do some drawing now :)
  110. cls()
  111. pal()
  112. print("4-bit sprite:",20,3)
  113. spr(0,20,10)
  114.  
  115. pal()
  116. print("layer 0:",20,23)
  117. palb(0,7)
  118. spr(0,20,30)
  119.  
  120. pal()
  121. print("layer 1:",20,43)
  122. palb(1,7)
  123. spr(0,20,50)
  124.  
  125. pal()
  126. print("layer 2:",20,63)
  127. palb(2,7)
  128. spr(0,20,70)
  129.  
  130. pal()
  131. print("layer 3:",20,83)
  132. palb(3,7)
  133. spr(0,20,90)
  134.  
  135. print("done!",20,115)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement