Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- objects = {}
- objects.images = {}
- objects.activeObjects = {}
- objects.images.default = love.graphics.newImage("defaultObject.png")
- function objects:newActiveObject(x, y, width, height)
- local result = {}
- result.id = "defaultObject"
- result.x = x
- result.y = y
- result.image = self.images.default
- result.width = width --result.image:getWidth() returned nil
- result.height = height --result.image:getHeight() returned nil
- result.left = result.x
- result.right = result.x + width
- result.top = result.y
- result.bottom = result.y + height
- result.collidingObjects = {}
- function result:collidesWith(obj)
- if self.bottom < obj.top then
- return false
- elseif self.top > obj.bottom then
- return false
- elseif self.right < obj.left then
- return false
- elseif self.left > obj.right then
- return false
- else
- return true
- end
- end
- function result:act() end
- function result:create() end
- function result:destroy()
- self.remove = true
- end
- function result:collide(other) end
- return result
- end
- function objects:drawActiveObjects()
- for k, v in pairs(self.activeObjects) do
- love.graphics.draw(v.image, v.x, v.y)
- end
- end
- function objects:calculateCollisions()
- for k0, v0 in pairs(self.activeObjects) do
- v0.collidingObjects = {}
- for k1, v1 in pairs(self.activeObjects) do
- if (not k0 == k1) and v0:collidesWith(v1) then
- table.insert(v0.collidingObjects, v1)
- end
- end
- end
- for k0, v0 in pairs(self.activeObjects) do
- for k1, v1 in pairs(v0.collidingObjects) do
- v0:collide(v1)
- end
- end
- end
- function objects:actObjects()
- for k, v in pairs(self.activeObjects) do
- v:act()
- end
- for k, v in pairs(self.activeObjects) do
- if v.remove then table.remove(self.activeObjects, k) end
- end
- end
- function objects:addActiveObject(object)
- table.insert(self.activeObjects, object)
- object:create()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement