Spel32: AngryMathBirds WindMill

WindfarmBirdsTeoTodorovCCON                                                    Jämför med verkligheten

Vi programmerar en flock AngryMathBirds som måste passera genom en park av vindsnurror. Om en AngryMathBird träffas av en rotor faller den död ner och rotorn hejdas en stund i sin rotation.

Styrning av AngryMathBird genom skärmens lutning. Parameterkontroll av gravitation G, fjäderstyvhet E och bildstorlek R.

Räkning av totala antalet och antalet döda fåglar. Ny flock av AngryMathBirds genom touch. Antalet i flocken anges av J med start J=1, dvs en ensam fågel. Jämför med Biology1 på App Store.

Template: (Följ ensam fågel här och flock här)

– AngryBirds WindMill

function setup()

print(“En flock AngryBirds måste passera genom en park av vindsnurror.”)
print(“Om en AngryBird träffas av en rotor faller AngryBird död ner och rotorn hejdas en stund i sin rotation.”)
print(“Styrning av AngryBird genom skärmens lutning”)
print(“Parameterkontroll av gravitation G, fjäderstyvhet E och bildstorlek R.”)
print(“Räkning av totala antalet och antalet döda fåglar.”)
print(“Ny flock av AngryBirds genom touch.”)
print(“Antalet fåglar i flocken anges av J med start J=1.”)

I=12
J=1

parameter.number(“R”,1,200,50)
parameter.number(“E”,10,1000,100)
parameter.number(“G”,-100,100,-30)

x={}
xc={}
v={}
bird={}
birdv={}
g={}

for j=1,J do
bird[j]=vec2(0,0)
birdv[j]=vec2(0,0)
g[j]=0
end

f=vec2(0,0)
F=vec2(0,0)

n=0
N=0

for i=1,4 do
x[i]=vec2(0,0)
xc[i]=vec2(250*i-100,600)
v[i]=vec2(0,0)
end
for i=5,8 do
x[i]=vec2(0,0)
xc[i]=vec2(250*(i-4)-200,450)
v[i]=vec2(0,0)
end
for i=9,I do
x[i]=vec2(0,0)
xc[i]=vec2(250*(i-8)-100,300)
v[i]=vec2(0,0)
end

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

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

for j=1,J do
bird[j]=vec2(math.random(100,400),math.random(800,900))
birdv[j]=vec2(0,0)
end

t=0
dt=0.02
n=0

end

function draw()

t=t+1
background(252, 252, 252, 255)

for i=1,I do
v[i]=v[i]-100*x[i]*dt
x[i]=x[i]+v[i]*dt
d=x[i]:len()
x[i]=50*x[i]/d
sprite(“Dropbox:landscape2”,300,140,1000,200)
sprite(“Dropbox:windmill”,xc[i].x,xc[i].y,5*R)
stroke(214, 225, 214, 255)
strokeWidth(10)
line(xc[i].x-x[i].x,xc[i].y-x[i].y,xc[i].x+x[i].x,xc[i].y+x[i].y)
end

for j=1,J do
sprite(“Dropbox:angrybird”,bird[j].x,bird[j].y,R)
end

for j=1,J do
for i=1,I do
length=(bird[j]-x[i]-xc[i]):len()
if length<R-5 and g[j]==0 then
n=n+1
sound(“Game Sounds One:Horror Howl 2”)
g[j]=10
font(“AmericanTypewriter”)
fontSize(200)
fill(255, 7, 0, 255)
sprite(“Space Art:Red Explosion”,xc[i].x,xc[i].y,100)
F=0.01*E*(bird[j]-x[i]-xc[i])
bird[j]=bird[j]+birdv[j]*dt
f=vec2(x[i].y,-xc[i].x)*(x[i].y*F.x-x[i].x*F.y)
v[i]=v[i]-x[i]*dt-f*dt
x[i]=x[i]+v[i]*dt
end
fill(255, 15, 0, 255)
text(n,300,600)
fill(0, 41, 255, 255)
text(N,300,300)
birdv[j]=birdv[j]+vec2(0,-0.1*G-g[j])*dt+vec2(0.3*Gravity.x,0.1*Gravity.y)
birdv[j]=birdv[j]+0.01*F*dt
bird[j]=bird[j]+birdv[j]*dt
end
end

end

function touched(touch)
if touch.state==ENDED then
N=N+1
for j=1,J do
bird[j]=vec2(math.random(100,400),math.random(800,900))
birdv[j]=vec2(0,0)
g[j]=0
end
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