'Jelly intro by Shockwave September 2001
'=======================================
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'Lets Go!!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

open window 400,400
mx=9
numbub=23
dim xf(mx)
dim xx(mx)
dim yy(mx)
dim xd(mx)
dim yd(mx)
dim sa(mx)
dim gr(mx)
dim cl(mx)
dim ga(mx)

dim bbx(numbub)
dim bby(numbub)
dim bbs(numbub)

for a=1 to numbub
   bbx(a)=50+ran(540)
   bby(a)=100+ran(400)
   bbs(a)=2+ran(3)
next a

xad=40
for a=1 to mx
  xf(a)=int(1+ran(2))
  sa(a)=0
  xx(a)=xad
  yy(a)=100
  xd(a)=12
  yd(a)=12
  gr(a)=ran(1)
  ga(a)=.1+ran(.4)
  cl(a)=50+ran(255)
xad=xad+640/mx
next a
 
quality=15 : Rem quality control! 1=highest up to 120 

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'Precalculate Sine data for a massive circle!!
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dim x(720)
dim y(720)
for a=1 to 720
   x(a)=(800*sin(a*(pi/180)))
   y(a)=(800*cos(a*(pi/180)))
next a


s$="                                                                      "
s$=s$+"HELLO ALL YOU HAPPY YABASIC FANS OUT THERE IN PS2 "
s$=s$+"LAND!!!  HERE'S A QUICK LITTLE DEMO FOR YOU. THIS "
s$=s$+"ONE IS SIMULATING A JELLY EFFECT WITH MY OWN "
s$=s$+"FILLED CIRCLE/ELIPSE COMMAND... IT IS NOT BY ANY "
s$=s$+"MEANS MY MOST TECHNICAL DEMO EVER BUT IT IS QUITE "
s$=s$+"BOUNCY AND PRETTY SO I DECIDED TO RELEASE IT..   "
s$=s$+"AND ANYWAY, I WAS LOOKING TO DO SOMETHING EASY "
s$=s$+"AFTER PAC MAN AND ALL THE OTHER STUFF I HAVE MADE "
s$=s$+"LATELY...   I'D LIKE TO GREET THE FOLLOWING PEOPLE"
s$=s$+" (IN RANDOM ORDER)... VICKI (MY SWEETHEART)   JINX"
s$=s$+"   ADAM LEY   XALTHORN   DOCTOR   RAFRYER   MONKEYPANTS   "
s$=s$+"JACOB BUSBY   BAZ   PAUL D   ANSEL   PHIL   "
s$=s$+"  AND EVERYONE ELSE WHO KNOWS ME... "
s$=s$+"FEEL FREE TO GET IN TOUCH VIA EMAIL ON     "
s$=s$+"NICKSIMPSON007@AOL.COM    IF YOU HAVE AN INTEREST "
s$=s$+"IN PROGRAMMING WITH YABASIC!!!   WELL, THAT'S "
s$=s$+"JUST ABOUT ALL I HAVE TIME FOR SO TTFN...     "


p=1
scnt=0

label loop

setdrawbuf dw
dw=1-dw
setdispbuf dw

setrgb 1,70+10*sin(smt/4),30,80
setrgb 2,30,70+10*sin(smt/3),80
setrgb 3,30,30,90+30*sin(smt/5)
gtriangle 0,0 to 640,512 to 0,512
gtriangle 0,0 to 640,512 to 640,0

gosub stars
gosub jelly

setrgb 1,10,60,140
fill rectangle 0,100 to 640,0
fill rectangle 0,512 to 640,482
fill rectangle 0,100 to 50,512
fill rectangle 590,100 to 640,512


setrgb 1,0,0,0
text 119,50,"-= SHOCKWAVE PRESENTS THE JELLY INTRO =-"
text 119,80,"-= CHECK THE FORUMS WWW.YABASIC.CO.UK =-"


text scnt+2,503,mid$(s$,p,67)
setrgb 1,255,255,255
text 117,48,"-= SHOCKWAVE PRESENTS THE JELLY INTRO =-"
text 117,78,"-= CHECK THE FORUMS WWW.YABASIC.CO.UK =-"

text scnt,501,mid$(s$,p,67)
rectangle 50,100 to 590,482

scnt=scnt-2
if scnt<-10 then
p=p+1
if p>len(s$) p=0
scnt=scnt+10
fi
stp=stp+2
if stp>=120 stp=0
goto loop

'************************
'*** Draw the bubbles ***
'************************
label stars
for a=1 to numbub
setrgb 1,135,135,100+(bbs(a)*8)

 rectangle bbx(a),bby(a) to bbx(a)+bbs(a),bby(a)+bbs(a)
bby(a)=bby(a)-bbs(a)
bbx(a)=bbx(a)+-2+ran(4)
if bby(a)<100 bby(a)=bby(a)+400
if bbx(a)<50 bbx(a)=50
if bbx(a)>590 bbx(a)=590
next a
return

label jelly
smt=smt+.2
for aa=1 to mx
  xdiv=xd(aa)+sa(aa)*sin(smt+aa)
  ydiv=yd(aa)+sa(aa)*cos(smt+aa/5)
  xo=xx(aa)
  yo=yy(aa)

  if xf(aa)=1 xx(aa)=xx(aa)-2
  if xf(aa)=2 xx(aa)=xx(aa)+2
  if sa(aa)>0 sa(aa)=sa(aa)-.1
  yy(aa)=yy(aa)+gr(aa)
  gr(aa)=gr(aa)+ga(aa)
  if yy(aa)>440 then
  gr(aa)=-gr(aa)+ga(aa)
  sa(aa)=6
  fi
  if xx(aa)>640 xf(aa)=1
  if xx(aa)<0 xf(aa)=2
  setrgb 1,cl(aa),50+(50*sin(smt/2)),50+(50*sin(smt)/3)
  gosub tricirc
next aa
return
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'                  This is all it is :-)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
label tricirc
    for a=1+stp to 120+stp step quality
      fill triangle (x(a)/xdiv)+xo,(y(a)/ydiv)+yo to (x(a+120)/xdiv)+xo,(y(a+120)/ydiv)+yo to (x(a+240)/xdiv)+xo,(y(a+240)/ydiv)+yo
    next a
return

