49 lines
1.1 KiB
Lua
49 lines
1.1 KiB
Lua
|
|
function love.load()
|
|
--options
|
|
love.graphics.setColor(1,1,1)
|
|
love.graphics.setDefaultFilter("nearest") -- good pixel
|
|
|
|
SCREEN_WIDTH = love.graphics.getWidth()
|
|
SCREEN_HEIGHT = love.graphics.getHeight()
|
|
|
|
-- simulation variables
|
|
CONST_G = 39.5
|
|
CONST_S = 0.15
|
|
|
|
T = 0
|
|
TIME_SPEED = 0.25
|
|
|
|
require "class"
|
|
require "body"
|
|
|
|
newBody(0,0,300,{1,0,0})
|
|
newBody(0,100,100,{0,1,0})
|
|
newBody(100,0,200,{0,0,1})
|
|
newBody(100,100,50,{1,1,0})
|
|
newBody(100,200,250,{1,0,1})
|
|
newBody(200,100,150,{0,1,1})
|
|
|
|
end
|
|
|
|
function love.update(dt)
|
|
T = T + dt * TIME_SPEED
|
|
UpdateBodiesAcceleration()
|
|
UpdateBodiesVelocity(dt * TIME_SPEED)
|
|
UpdateBodiesPosition(dt * TIME_SPEED)
|
|
end
|
|
|
|
function love.draw()
|
|
-- draw bodies
|
|
for n, body in pairs(BodyList) do
|
|
love.graphics.setColor(body.color[1],body.color[2],body.color[3])
|
|
love.graphics.circle("line",body.x+SCREEN_WIDTH/2,body.y+SCREEN_HEIGHT/2,math.sqrt(body.mass))
|
|
end
|
|
-- draw info
|
|
love.graphics.setColor(1,1,1)
|
|
love.graphics.print(T)
|
|
for n, body in pairs(BodyList) do
|
|
love.graphics.print("mass: "..body.mass.." x,y: "..body.x..", "..body.y,0,15*(n))
|
|
end
|
|
end
|