View Single Post
Old 18 September 2015, 00:02   #6
Dunny
Registered User

Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 1,393
I did this one in Sinclair BASIC a while ago - you can see the code in the video:

[ Show youtube player ]

But I'll paste it here as it might be more readable!

Code:
10 DIM buffer(2) BASE 0: FOR f=0 TO 1: WINDOW NEW buffer(f),0,-60,800,600: NEXT f: WINDOW HIDE buffer(1)
20 LET sz=32,ps=0,xs=800/sz,ys=600/sz: DIM a$(xs,ys) BASE 0: WINDOW buffer(0)

30 FOR y=298 TO 302: FOR x=284 TO 288: PLOT INK RND*256;x,y: NEXT x: NEXT y

40 LET shift=0: INC ps: FOR i=0 TO 4: LET shift=(shift SHL 1) | ((ps SHR i) & 1): NEXT i
50 FOR y=0 TO ys-1: FOR x=0 TO xs-1: WINDOW COPY buffer(0),x*sz+shift+(16-y)-x,y*sz+shift+x+(16-y),sz,sz TO buffer(1),x*sz+shift,y*sz+shift+16: NEXT x: NEXT y

60 WINDOW COPY buffer(1),0,0,800,600 TO buffer(0),0,0
70 WAIT SCREEN : GO TO 30
Hmm. That's not as easy to understand as I once thought!

D.
Dunny is offline  
 
Page generated in 0.04537 seconds with 11 queries