'waar vertrekt de bal
'(we nemen x1 en y1 ipv x0 en y0, omdat deze in kiesbalsnelheden() doorgeschoven worden
'naar x0 en y0)
x1=-math.GetRandomNumber(halveveldlengte)
y1=math.GetRandomNumber(veldbreedte)-veldbreedte/2
Sub OnKeyDown
If GraphicsWindow.LastKey="Left" then
angleH=angleH-0.1
elseIf GraphicsWindow.LastKey="Right" then
angleH=angleH+.1
elseIf GraphicsWindow.LastKey="Up" then
angleV=angleV-0.1
elseIf GraphicsWindow.LastKey="Down" then
angleV=angleV+0.1
endif
BerekenSchermcoordinaten()
endsub
Sub KiesBalSnelheden
t=0
'waar vertrekt de bal
x0=x1
y0=y1
'waar komt de bal neer
x1=richting*math.GetRandomNumber(halveveldlengte)
y1=math.GetRandomNumber(veldbreedte)-veldbreedte/2
'kies een maxhoogte voor de bal (hoger dan het net)
hmax=nethoogte+math.GetRandomNumber(20)/5
'bereken hoe lang de bal in de lucht blijft
th=Math.SquareRoot(2*hmax/g)
tmax=2*th
'bereken de beginsnelheid die nodig is om de gekozen hoogte te halen
vz0=math.SquareRoot(2*g*hmax)
'bereken de snelheid in x en y-richting
vx=(x1-x0)/tmax
vy=(y1-y0)/tmax
endsub
Sub TekenSpeelVeld
GraphicsWindow.BrushColor="Lime"
GraphicsWindow.FillTriangle(dx+p[1]["xn"],dy+p[1]["yn"],dx+p[2]["xn"],dy+p[2]["yn"],dx+p[3]["xn"],dy+p[3]["yn"])
GraphicsWindow.FillTriangle(dx+p[2]["xn"],dy+p[2]["yn"],dx+p[3]["xn"],dy+p[3]["yn"],dx+p[4]["xn"],dy+p[4]["yn"])
'teken de bal
' GraphicsWindow.DrawEllipse((xt)*schaal-balgrootte,100-zt*schaal-balgrootte,balgrootte,balgrootte)
GraphicsWindow.DrawEllipse(dx+p[9]["xn"]-balgrootte/2,dy+p[9]["yn"]-balgrootte/2,balgrootte,balgrootte)