Spel30: Pin Ball Game

787530-pinball8                                                    3d Pinball Space Cadet

Pinball:

En rörlig boll studsar mot en uppsättning fasta bollar och väggar via fjädrar. Bollen kan påverkas i x-led via lutning av skärmen.

Styrning av bollradie R, fjäderstyvhet E, dämpning D och gravitation G.

Räkning av antalet studsar. Jämför med Mechanics1 på App Store.

Template: (Titta på ett game)

— Pin Ball

function setup()

print(“Pinball: En rörlig boll studsar mot en uppsättning fasta bollar och väggar via fjädrar.”)
print(“Bollen kan påverkas i x-led via lutning av skärmen.”)
print(“Styrning av bollradie R, fjäderstyvhet E, dämpning D och gravitation G.”)
print(“Räkning av antalet studsar.”)

speech.volume=1
speech.rate=0.01
speech.say(“Test my pinball game, please!”)

parameter.number(“R”,1,200,50)
parameter.number(“E”,10,2000,1000)
parameter.number(“G”,-1000,1000,100)
parameter.number(“D”,0,100,0)
x={}
ball=vec2(0,0)
v=vec2(math.random(100,500),0)
f=vec2(0,0)
I=8
n=0
t=0
dt=0.01
stop=0

for i=1,I do
x[i]=vec2(0,0)
end

x[1]=vec2(150,800)
x[2]=vec2(300,800)
x[3]=vec2(120,600)
x[4]=vec2(330,600)
x[5]=vec2(150,400)
x[6]=vec2(300,400)
x[7]=vec2(70,270)
x[8]=vec2(430,260)
ball =vec2(300,900)

end

function draw()

if stop ==0 then

background(40, 40, 50)
fill(0, 68, 255, 255)
rect(10,200,170,20)
rect(300,200,170,20)
rect(10,200,20,720)
rect(450,200,20,720)
rect(10,900,450,20)

for i=1,I do
fill(255, 0, 40, 255)
sprite(“Space Art:UFO”,x[i].x,x[i].y,R)
end

fill(0, 255, 0, 255)
ellipse(ball.x,ball.y,R)

for j=1,I do
length=(ball-x[j]):len()
if length<R-5 then
sound(“Game Sounds One:Knock 2”)
n=n+1
font(“AmericanTypewriter”)
fontSize(200)
fill(255, 7, 0, 255)
text(n,300,800)
sprite(“Space Art:Red Explosion”,x[j].x,x[j].y,100)
f=f+2*E*(ball-x[j])
v=v+f*dt
ball=ball+v*dt
end
end

f=vec2(1000*Gravity.x,-G)
if ball.y<250 and ball.x < 180 then
f.y=f.y+20*E*(250-ball.y)
end
if ball.y<250 and ball.x>320 then
f.y=f.y+20*E*(250-ball.y)
end
if ball.y<170 then
stop=1
font(“AmericanTypewriter”)
fontSize(100)
fill(255, 7, 0, 255)
text(“Game Over”,200,300)
text(“Total=”..n,200,400)
speech.say(“Sorry, game over,”)
end
if ball.y>900 then
f.y=f.y+20*E*(900-ball.y)
end
if ball.x<50 then
f.x=f.x+E*(50-ball.x)
end
if ball.x>420 then
f.x=f.x+E*(420-ball.x)
end
v=(1-0.001*D)*v+f*dt
ball=ball+v*dt

end
end

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s