Author Topic: Pinball With Colour Change  (Read 1633 times)

0 Members and 1 Guest are viewing this topic.

Offline bikemadness

  • Amiga 1200
  • ****
  • Posts: 319
  • Karma: 25
  • Hard players don't go home.
    • View Profile
Pinball With Colour Change
« on: November 06, 2021 »
Upgrade on a previous upload.

Another screen-saver.

Code: [Select]
ang1=pi/180
ang2=180/pi
ra=30

restore colours
read shade
dim R(shade)
dim G(shade)
dim B(shade)

for a=1 to shade
read R(a)
read G(a)
read B(a)
next a

restore spheres
read ball

dim dirs(ball)
dim xs(ball)
dim ys(ball)
dim ssp(ball)
dim hitang(ball)
dim hit(ball)
dim reang(ball)
dim ra(ball)
dim go(ball)

for a=1 to ball
dirs(a)=0
read xs(a),ys(a)
ssp(a)=0
ra(a)=30
go(a)=int(ran(12))+1
next a

dirm=25
xm=500
ym=100
msp=8
ra=20

open window 640,512
repeat
setdispbuf vm
vm=1-vm
setdrawbuf vm
clear window

setrgb 1,200,200,0
fill rectangle 0,0 to 640,512

for a=1 to ball
xs(a)=xs(a)+cos(dirs(a)*ang1)*ssp(a)
ys(a)=ys(a)+sin(dirs(a)*ang1)*ssp(a)

hitang(a)=atan(xs(a)-xm,ym-ys(a))*ang2+180
hit(a)=(abs(xs(a)-xm)^2+abs(ys(a)-ym)^2)^0.5
reang(a)=((dirs(a)+180)-dirm)*2+dirm-180
if hit(a)<ra(a)+ra dirm=reang(a)
dirs(a)=hitang(a)-90

if hit(a)<ra(a)+ra go(a)=go(a)+1
if go(a)>12 go(a)=1

for b=1 to shade
if go(a)=b setrgb 1,R(b),G(b),B(b)
next b

fill circle xs(a),ys(a),ra(a)

setrgb 1,0,0,0
circle xs(a),ys(a),ra(a)

next a

xm=xm+cos(dirm*ang1)*msp
ym=ym+sin(dirm*ang1)*msp

setrgb 1,250,120,0
fill circle xm,ym,ra

setrgb 1,0,0,0
circle xm,ym,ra

if xm<0+ra dirm=270-dirm+270
if xm>640-ra dirm=90-dirm+90
if ym<0+ra dirm=-dirm
if ym>510-ra dirm=180-dirm+180
if dirm>360 dirm=dirm-360
if dirm<0 dirm=dirm+360

until (1=0)

label spheres
data 10
data 252,126
data 396,126
data 468,252
data 396,378
data 252,378
data 180,252
data 50,50
data 590,50
data 50,462
data 590,462

label colours
data 12
data 256,000,000
data 000,256,000
data 000,000,256
data 256,256,000
data 256,128,000
data 256,000,256
data 128,128,128
data 220,020,060
data 256,192,203
data 256,203,164
data 118,215,234
data 150,075,000

Have a Yahappy day.
I don't know what is wrong with the world - but I know how to fix it.