Spel20: Racing

2011_FIA_GT1_Silverstone_2

Vi programmerar ett racingspel där horisontell hastighet styrs via lutning av skärmen och där bilen följer en given racingbana så länge hastigheten inte är för stor. Målet med spelet är att komma från start till mål på kortast tid.

Vi lär oss hur racerbilen styrs att följa vägen via fjäderkrafter. Vägen sträckning bestäms slumpmässigt via math.random().

Template 1: (Titta på spelet)

— Racing

curve={}
for i=1,3 do
curve[i]=math.random(-50,50)
end
function setup()
print(“Racing”)
displayMode(FULLSCREEN)

poscar=vec2(10,road(10))
velcar=vec2(0,0)
acccar=vec2(0,0)

dt=0.02
tree = {}
crash=0
sound(“Game Sounds One:Wind 2”)
for i=1,10 do
tree[i]=math.random(-10,10)
end
end

t=0
function draw()
t=t+1
print(t)

sprite(“SpaceCute:Background”,WIDTH/2,HEIGHT/2,3*WIDTH)

fill(122, 122, 121, 255)
for n=1,2000 do
ellipse(n,road(n),20)
end

font(“AmericanTypewriter”)
fontSize(100)
fill(21, 19, 17, 255)
text(t,400,800)
for i=1,10 do
sprite(“Small World:Tree 3”,300+20*tree[i],300+20*tree[11-i],math.random(97,100))
end

poscar.x=poscar.x+(40*Gravity.x)

if math.abs(poscar.y – road(poscar.x))>1 and math.abs(poscar.y – road(poscar.x))<10 then
acccar.y =1000*(road(poscar.x) – poscar.y)
velcar.y= 0.5*velcar.y + acccar.y*dt
poscar.y = poscar.y +velcar.y*dt
end

sprite(“SpaceCute:Beetle Ship”, poscar.x, poscar.y, math.random(45,50))

if math.abs(poscar.y – road(poscar.x))>10 then
poscar.y = poscar.y +velcar.y*dt
end

if math.abs(poscar.y – road(poscar.x))>20 then
crash=crash+1
if crash==2 then
sound(“Game Sounds One:Crowd Boo”)
end
fill(249, 17, 17, 255)
text(“Crash”..crash,200,200)
end

end

function road(x)
local road = 0
for i=1,3 do
road = road + curve[i]*math.sin(0.01*x*i)
end
road=road+500
return road
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