Difference between revisions of "Love - Lemmings Movement"
(Created page with "<syntaxhighlight lang=lua> local width = 800 local height = 800 local lemtime = 2 local elapsed = lemtime local maxlem=10 local lemcount = 0 local startx = 100 local starty...") |
|||
Line 1: | Line 1: | ||
+ | ==Variables Required== | ||
<syntaxhighlight lang=lua> | <syntaxhighlight lang=lua> | ||
local width = 800 | local width = 800 | ||
Line 10: | Line 11: | ||
local startx = 100 | local startx = 100 | ||
local starty = 100 | local starty = 100 | ||
+ | </syntaxhighlight> | ||
+ | ==Lemmings Class & List of Lemmings== | ||
+ | <syntaxhighlight lang=lua> | ||
Lems = {} | Lems = {} | ||
Line 65: | Line 69: | ||
return self | return self | ||
end | end | ||
+ | </syntaxhighlight> | ||
− | + | ==Method to Create Lemming== | |
+ | <syntaxhighlight lang=lua> | ||
function createlem() | function createlem() | ||
if lemcount<maxlem then | if lemcount<maxlem then | ||
Line 73: | Line 79: | ||
end | end | ||
end | end | ||
+ | </syntaxhighlight> | ||
+ | ==love.load method== | ||
+ | <syntaxhighlight lang=lua> | ||
function love.load() | function love.load() | ||
love.window.setMode(width, height) | love.window.setMode(width, height) | ||
Line 81: | Line 90: | ||
lem = love.graphics.newImage("lemming.png") | lem = love.graphics.newImage("lemming.png") | ||
end | end | ||
+ | </syntaxhighlight> | ||
+ | ==love.update method== | ||
+ | <syntaxhighlight lang=lua> | ||
function love.update(dt) | function love.update(dt) | ||
elapsed = elapsed - dt | elapsed = elapsed - dt | ||
Line 94: | Line 106: | ||
end | end | ||
end | end | ||
− | + | </syntaxhighlight> | |
+ | |||
+ | ==love.draw method== | ||
+ | <syntaxhighlight lang=lua> | ||
function love.draw() | function love.draw() | ||
love.graphics.draw(map, 0, 0) | love.graphics.draw(map, 0, 0) |
Revision as of 14:29, 9 July 2019
Contents
Variables Required
local width = 800
local height = 800
local lemtime = 2
local elapsed = lemtime
local maxlem=10
local lemcount = 0
local startx = 100
local starty = 100
Lemmings Class & List of Lemmings
Lems = {}
function Lem(x,y)
local self = {
direction = 1,
climbheight = 4,
width = 10,
height = 20,
xpos = x,
ypos=y
}
function self.update(dt)
bl = self.checkground(self.xpos,self.ypos + self.height)
br = self.checkground(self.xpos + self.width,self.ypos + self.height)
if not bl and not br then
self.ypos=self.ypos+1
else
local testheight = 0
local found = false
while not found and testheight <= self.climbheight do
if self.direction == 1 then
frontx = self.xpos + self.width
fronty = self.ypos + (self.height) - testheight
else
frontx = self.xpos - 1
fronty = self.ypos + (self.height) - testheight
end
if not self.checkground(frontx, fronty) then
self.xpos = self.xpos+self.direction
self.ypos = self.ypos - testheight
found=true
end
testheight = testheight + 1
end
if not found then
self.direction = self.direction * -1
end
end
end
function self.checkground(x,y)
if mapdata:getPixel(x,y) ~= bgcolor then
return true
else
return false
end
end
return self
end
Method to Create Lemming
function createlem()
if lemcount<maxlem then
Lems[lemcount] = Lem(startx,starty)
lemcount = lemcount + 1
end
end
love.load method
function love.load()
love.window.setMode(width, height)
mapdata = love.image.newImageData("level.png")
map = love.graphics.newImage(mapdata)
bgcolor = mapdata:getPixel(startx,starty)
lem = love.graphics.newImage("lemming.png")
end
love.update method
function love.update(dt)
elapsed = elapsed - dt
if elapsed <= 0 then
createlem()
elapsed=lemtime
end
for _,test in pairs(Lems )do
test.update(dt)
end
end
love.draw method
function love.draw()
love.graphics.draw(map, 0, 0)
for _,test in pairs(Lems )do
love.graphics.draw(lem,test.xpos, test.ypos)
end
end