angrybirds

Här är en Angry Birds demo som visar hur man med touch() can bestämma riktning och hastighet av något som kastas mot otäcka skalbaggar som ramlar ner från himlen för att pricka ner dom. Titta AngryMathBirds Demo 1 hur spelet funkar (med lite andra bilder hämtade från Assets)

— Use this function to perform your initial setup

function setup()
print(“AngryMathBirds: Many Pigs”)
end

pospig={}
dist={}
N=10
points=0

sound(“Game Sounds One:Wind 1”)

pos=vec2(0,0)
vel=vec2(0,0)
posbird=vec2(100,100)
for n=1,N do
pospig[n]=vec2(math.random(100,600),math.random(300,1000))
dist[n]=0
end
velbird=vec2(0,0)
acc=vec2(0,0)
dt=1

— This function gets called once every frame
function draw()
otto=readImage(“Dropbox:Otto”)
velbird=velbird+acc*dt
posbird=posbird+velbird*dt
for n=1,N do
pospig[n]=pospig[n]-vec2(0,1)
end

for n=1,N do
dist[n] = (posbird – pospig[n]):len()
end
print(dist)
—    sprite(“SpaceCute:Background”,WIDTH/2,HEIGHT/2,1200)
background(247, 247, 247, 0)
fill(255, 255, 255, 0)
stroke(254, 254, 254, 255)
strokeWidth(1)

sprite(“Dropbox:slingshot1”,200,300,100)
sprite(“Dropbox:angrybird”,posbird.x,posbird.y,50)
for n=1,N do
sprite(“Dropbox:angrybirdspig”,pospig[n].x,pospig[n].y,50)
end

for n=1,N do
if dist[n] < 20 then
points=points+10
pospig[n]=vec2(1000,0)
sound(“Game Sounds One:Male Grunt 4”)
end
end
print(vel.x)
for i=1,100 do
acc=vec2(0,-1)
vel=vel+acc*dt
pos=pos+vel*dt
fill(255, 17, 0, 255)
ellipse(pos.x,pos.y,2)
end
fontSize(50)
text(points,200,900)

—    v=v1+a*dt
—    x1=x1+v1*dt
—    fill(255, 0, 7, 255)
—    ellipse(x1.x,x1.y,5)
—    end
—    stroke(10, 10, 10, 255)
—    strokeWidth(5)
—    line(200,200,x0.x,x0.y)

—  sprite(“SpaceCute:Beetle Ship”,x,y)
—    fill(20, 255, 0, 255)
—    sprite(“Planet Cute:Rock”,x,y,20)
—    sprite(“Small World:Explosion”,x,y,20)
—   ellipse(x,y,10,10)

— This sets the line thickness
—   strokeWidth(5)2ext(x1,100,200,10)
— Do your drawing here

end

function touched(touch)
— When you touch the screen, create a rx
if touch.state == BEGAN then
acc=vec2(0,0)
velbird=vec2(0,0)
posbird=vec2(touch.x,touch.y)
print(vel.x)
elseif touch.state==MOVING then
posbird=vec2(touch.x,touch.y)
pos=posbird
vel=vec2(-0.2*(touch.x -200),-0.2*(touch.y -300))
elseif touch.state == ENDED then
velbird=vec2(-0.2*(touch.x -200),-0.2*(touch.y -300))
acc=vec2(0,-1)
sound(“Game Sounds One:Female Cheer 2”)
end
end