With some more colours..
'
' Twisty bar thing
' By Shockwave ^ S!P For Va!n
'
' This is lame so leech to your hearts content.. No credit needed :-)
'
'--------------------------------------------------------------------
OPTION STATIC
OPTION EXPLICIT
'--------------------------------------------------------------------
' #DEFINE PTC_WIN
#INCLUDE "TINYPTC.BI"
'--------------------------------------------------------------------
CONST XRES = 800
CONST YRES = 600
DIM SHARED AS UINTEGER BUFFER( XRES * YRES ): ' Screen Memory.
DIM SHARED AS UINTEGER CPAL (2001)
CONST LINES = 15
DIM SHARED AS UINTEGER TSTART(LINES)
DECLARE SUB MAKE_COLOURS()
DECLARE SUB DO_TWISTY()
'--------------------------------------------------------------------
' Open Screen;
'--------------------------------------------------------------------
IF (PTC_OPEN("TWISTY THING",XRES,YRES)=0) THEN
END-1
END IF
MAKE_COLOURS()
'--------------------------------------------------------------------
' Main Loop;
'--------------------------------------------------------------------
WHILE (1)
DO_TWISTY()
PTC_UPDATE@BUFFER(0)
ERASE BUFFER
WEND
SUB DO_TWISTY()
DIM AS INTEGER A,Y1,Y2
FOR Y1=1 TO LINES
DIM AS DOUBLE VV
VV=TSTART(Y1)
FOR A=0 TO XRES-1
BUFFER(A+(XRES*Y1)) = CPAL(INT(VV))
BUFFER(A+((YRES*XRES)-(XRES*Y1))) = CPAL(INT(VV))
VV=VV+1
IF VV>2000 THEN VV=VV-2000
NEXT
NEXT
FOR A=1 TO LINES
TSTART(A)=TSTART(A)+13
IF TSTART(A)>2000 THEN TSTART(A)=TSTART(A)-2000
NEXT
END SUB
'--------------------------------------------------------------------
' Make Some Nice Colours For The Twisty Bar;
'--------------------------------------------------------------------
SUB MAKE_COLOURS()
DIM AS DOUBLE R,G,B
DIM AS INTEGER L
FOR L=1 TO LINES
TSTART(L) = L*40
NEXT
R=0:G=0:B=0
FOR L=0 TO 499
IF L<=250 THEN
R=R+1
G=G+1
B=B+.3
CPAL(L) = RGB(INT(R),INT(G),INT(B))
ELSE
R=R-1
G=G-1
B=B-.3
CPAL(L) = RGB(INT(R),INT(G),INT(B))
END IF
NEXT
R=0:G=0:B=0
FOR L=500 TO 999
IF L<=750 THEN
R=R+.3
G=G+1
B=B+1
CPAL(L) = RGB(INT(R),INT(G),INT(B))
ELSE
R=R-.3
G=G-1
B=B-1
CPAL(L) = RGB(INT(R),INT(G),INT(B))
END IF
NEXT
R=0:G=0:B=0
FOR L=1000 TO 1499
IF L<=1250 THEN
R=R+.3
G=G+.3
B=B+ 1
CPAL(L) = RGB(INT(R),INT(G),INT(B))
ELSE
R=R-.3
G=G-.3
B=B- 1
CPAL(L) = RGB(INT(R),INT(G),INT(B))
END IF
NEXT
R=0:G=0:B=0
FOR L=1500 TO 1999
IF L<=1750 THEN
R=R+ 1
G=G+.3
B=B+.3
CPAL(L) = RGB(INT(R),INT(G),INT(B))
ELSE
R=R- 1
G=G-.3
B=B-.3
CPAL(L) = RGB(INT(R),INT(G),INT(B))
END IF
NEXT
END SUB
Essentially the same effect as before but with two extra coloured copper bars.