Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --make four 1-bit 8x8 pictures
- trgt="00111100"
- .."01000010"
- .."10000001"
- .."10011001"
- .."10011001"
- .."10000001"
- .."01000010"
- .."00111100"
- sqre="11111111"
- .."10000001"
- .."10000001"
- .."10000001"
- .."10000001"
- .."10000001"
- .."10000001"
- .."11111111"
- crss="10000001"
- .."01000010"
- .."00100100"
- .."00011000"
- .."00011000"
- .."00100100"
- .."01000010"
- .."10000001"
- dith="10101010"
- .."01010101"
- .."10101010"
- .."01010101"
- .."10101010"
- .."01010101"
- .."10101010"
- .."01010101"
- --sets bit at (x,y,layer) of
- --sprite sheet to 1
- function ssetb(x,y,layer)
- col=bor(sget(x,y),
- shl(0b00000001,layer)
- )
- sset(x,y,col)
- end
- --func to write binary pic to
- --the sprite sheet:
- -- picture string
- -- layer (0-3)
- -- sprite pos
- -- sprite size
- function bspradd(p,layer,x,y,w,h)
- i=1
- for sx=x,x+w-1 do for sy=y,y+h-1 do
- if sub(p,i,i) == "1" then
- ssetb(sx,sy,layer)
- end
- i+=1
- end end
- end
- --clear first sprite in map
- for x=0,7 do for y=0,7 do
- sset(x,y,0)
- end end
- --write each 1-bit picture to
- --sprite map at 0,0
- bspradd(trgt,0,0,0,8,8)
- bspradd(sqre,1,0,0,8,8)
- bspradd(crss,2,0,0,8,8)
- bspradd(dith,3,0,0,8,8)
- --palette binary mask
- -- layer to draw
- -- colour 1
- -- [colour 0]
- function palb(layer,c1,c0)
- for c=0,15 do
- b=shl(0b00000001,layer)
- col=band(c,b)
- if col==b then
- --draw colour 1
- palt(c,false)
- pal(c,c1)
- else
- --draw colour 0 (or dont)
- if c0 then
- palt(c,false)
- pal(c,c0)
- else
- --draw transparent
- palt(c,true)
- end
- end
- end
- end
- --do some drawing now :)
- cls()
- pal()
- print("4-bit sprite:",20,3)
- spr(0,20,10)
- pal()
- print("layer 0:",20,23)
- palb(0,7)
- spr(0,20,30)
- pal()
- print("layer 1:",20,43)
- palb(1,7)
- spr(0,20,50)
- pal()
- print("layer 2:",20,63)
- palb(2,7)
- spr(0,20,70)
- pal()
- print("layer 3:",20,83)
- palb(3,7)
- spr(0,20,90)
- print("done!",20,115)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement