Add some files about lua

master
Karchnu 2013-02-02 01:51:16 +01:00
parent 5167dfa343
commit b5f04b7571
22 changed files with 237 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

View File

@ -0,0 +1,3 @@
function love.conf(t)
t.title = "Avalanche of LÖVE"
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,98 @@
-- Example: Avalanche of LOVE
-- Contains all the balls.
balls = {}
-- Contains all the boxes. (Terrain)
boxes = {}
function love.load()
-- Fat lines.
love.graphics.setLineWidth(2)
-- Load images.
images = {
green = love.graphics.newImage("green_ball.png"),
big_love = love.graphics.newImage("big_love_ball.png"),
love = love.graphics.newImage("love_ball.png"),
}
-- Image / radius pairs.
balldefs = {
{ i = images.green, r = 32 , ox = 36, oy = 36},
{ i = images.big_love, r = 46 , ox = 48, oy = 48},
{ i = images.love, r = 28 , ox = 32, oy = 32},
}
-- Create the world.
world = love.physics.newWorld(0, 300)
-- Create ground body.
ground = love.physics.newBody(world, 0, 0, "static")
-- Add all the balls.
addball(balldefs[1], 50) -- Add 100 green.
addball(balldefs[2], 5) -- Add 5 big.
addball(balldefs[3], 25) -- Add 50 pink.
-- This generates the terrain.
for i = 0, 10 do
addbox(i*50, i*50+100)
end
end
function love.update(dt)
-- Update the world.
world:update(dt)
-- Check whether we need to reset some balls.
-- When they move out of the screen, they
-- respawn above the screen.
for i,v in ipairs(balls) do
local x, y = v.b:getPosition()
if x > 850 or y > 650 then
v.b:setPosition(math.random(600, 1400), -math.random(100, 1500))
v.b:setLinearVelocity(-math.random(100,1000), math.random(100,1000))
end
end
end
function love.draw()
-- Draw all the balls.
for i, v in ipairs(balls) do
love.graphics.draw(v.i, v.b:getX(), v.b:getY(), v.b:getAngle(), 1, 1, v.ox, v.oy)
end
-- Draw all the boxes.
for i, v in ipairs(boxes) do
love.graphics.polygon("line", v.s:getPoints())
end
love.graphics.print("Click and drag the cake around or use the arrow keys", 10, 10)
end
-- Adds a static box.
function addbox(x, y)
local t = {}
t.b = ground
t.s = love.physics.newRectangleShape(x, y, 50, 50)
t.f = love.physics.newFixture(t.b, t.s)
table.insert(boxes, t)
end
-- Adds X balls.
function addball(def, num)
for i = 1, num do
local x, y = math.random(0, 400), -math.random(100, 1500)
local t = {}
t.b = love.physics.newBody(world, x, y, "dynamic")
t.s = love.physics.newCircleShape(def.r)
t.f = love.physics.newFixture(t.b, t.s)
t.i = def.i
t.ox = def.ox
t.oy = def.oy
table.insert(balls, t)
end
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,3 @@
function love.conf(t)
t.title = "Avalanche of LÖVE"
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,98 @@
-- Example: Avalanche of LOVE
-- Contains all the balls.
balls = {}
-- Contains all the boxes. (Terrain)
boxes = {}
function love.load()
-- Fat lines.
love.graphics.setLineWidth(2)
-- Load images.
images = {
green = love.graphics.newImage("green_ball.png"),
big_love = love.graphics.newImage("big_love_ball.png"),
love = love.graphics.newImage("love_ball.png"),
}
-- Image / radius pairs.
balldefs = {
{ i = images.green, r = 32 , ox = 36, oy = 36},
{ i = images.big_love, r = 46 , ox = 48, oy = 48},
{ i = images.love, r = 28 , ox = 32, oy = 32},
}
-- Create the world.
world = love.physics.newWorld(0, 50)
-- Create ground body.
ground = love.physics.newBody(world, 0, 0, "static")
-- Add all the balls.
addball(balldefs[1], 50) -- Add 100 green.
addball(balldefs[2], 5) -- Add 5 big.
addball(balldefs[3], 25) -- Add 50 pink.
-- This generates the terrain.
for i = 0, 10 do
addbox(i*50, i*50+100)
end
end
function love.update(dt)
-- Update the world.
world:update(dt)
-- Check whether we need to reset some balls.
-- When they move out of the screen, they
-- respawn above the screen.
for i,v in ipairs(balls) do
local x, y = v.b:getPosition()
if x > 850 or y > 650 then
v.b:setPosition(math.random(0, 400), -math.random(100, 1500))
v.b:setLinearVelocity(0, 0)
end
end
end
function love.draw()
-- Draw all the balls.
for i, v in ipairs(balls) do
love.graphics.draw(v.i, v.b:getX(), v.b:getY(), v.b:getAngle(), 1, 1, v.ox, v.oy)
end
-- Draw all the boxes.
for i, v in ipairs(boxes) do
love.graphics.polygon("line", v.s:getPoints())
end
end
-- Adds a static box.
function addbox(x, y)
local t = {}
t.b = ground
t.s = love.physics.newRectangleShape(x, y, 50, 50)
t.f = love.physics.newFixture(t.b, t.s)
table.insert(boxes, t)
end
-- Adds X balls.
function addball(def, num)
for i = 1, num do
local x, y = math.random(0, 400), -math.random(100, 1500)
local t = {}
t.b = love.physics.newBody(world, x, y, "dynamic")
t.s = love.physics.newCircleShape(def.r)
t.f = love.physics.newFixture(t.b, t.s)
t.i = def.i
t.ox = def.ox
t.oy = def.oy
table.insert(balls, t)
end
end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,4 @@
function love.conf(t)
t.title = "ParticleSystem Demo"
end

View File

@ -0,0 +1,31 @@
-------------------------------------------------
-- LOVE: ParticleSystem demo.
-- Website: http://love2d.org
-- Licence: ZLIB/libpng
-- Copyright (c) 2006-2009 LOVE Development Team
-------------------------------------------------
systems = {}
current = 1
function love.load()
cloud = love.graphics.newImage("cloud.png")
x = 50
y = 50
end
function love.draw()
love.graphics.draw(cloud, x, y)
end
function love.update(dt)
if love.keyboard.isDown("up") then
y = y - 1000 * dt
elseif love.keyboard.isDown("down") then
y = y + 1000 * dt
elseif love.keyboard.isDown("right") then
x = x + 1000 * dt
elseif love.keyboard.isDown("left") then
x = x - 1000 * dt
end
end