Audio and Sprite Wrappers
Functions to Create and use said wrappers
This commit is contained in:
parent
d220cfb9da
commit
24b94f4a59
3 changed files with 122 additions and 19 deletions
61
classes.lua
Normal file
61
classes.lua
Normal file
|
@ -0,0 +1,61 @@
|
|||
|
||||
--[[
|
||||
Sprite Class
|
||||
This is essentially just a Wrapper for LÖVEs Image
|
||||
]]--
|
||||
|
||||
Sprite = {}
|
||||
Sprite.__index = Sprite
|
||||
|
||||
function Sprite.new(path)
|
||||
local self = setmetatable({}, Sprite)
|
||||
|
||||
self.image = love.graphics.newImage(path)
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function Sprite:Draw(x, y)
|
||||
love.graphics.draw(self.image, x or 0, y or 0)
|
||||
end
|
||||
|
||||
|
||||
--[[
|
||||
Audio Class
|
||||
This is essentially just a Wrapper for LÖVEs Source
|
||||
]]--
|
||||
|
||||
Audio = {}
|
||||
Audio.__index = Audio
|
||||
|
||||
function Audio.new(path, soundType)
|
||||
local self = setmetatable({}, Audio)
|
||||
|
||||
self.source = love.audio.newSource(path, soundType or "static")
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function Audio:Play()
|
||||
self.source:play()
|
||||
end
|
||||
|
||||
function Audio:Stop()
|
||||
self.source:stop()
|
||||
end
|
||||
|
||||
function Audio:Pause()
|
||||
self.source:pause()
|
||||
end
|
||||
|
||||
function Audio:Resume()
|
||||
self.source:play()
|
||||
end
|
||||
|
||||
function Audio:SetLooping(bool)
|
||||
self.source:setLooping(bool)
|
||||
end
|
||||
|
||||
function Audio:SetVolume(volume)
|
||||
self.source:setVolume(volume)
|
||||
end
|
|
@ -6,19 +6,23 @@ VERSION = 0
|
|||
local test = 0
|
||||
local delay = 0
|
||||
|
||||
local last = ""
|
||||
|
||||
function Load()
|
||||
end
|
||||
|
||||
function Update(dt, curTime)
|
||||
end
|
||||
|
||||
local sprite = Sprite("testSprites.png")
|
||||
function KeyPressed(key)
|
||||
if (key == "f5") then
|
||||
test = test + 1
|
||||
Sprite("testSprites.png")
|
||||
sprite = Sprite("testSprites.png")
|
||||
end
|
||||
end
|
||||
|
||||
function Draw()
|
||||
print("Loaded Sprites: " .. test, 10, 10)
|
||||
sprite:Draw(100, 0)
|
||||
end
|
||||
|
|
74
main.lua
74
main.lua
|
@ -1,20 +1,57 @@
|
|||
|
||||
local function CalculateMemoryUsage()
|
||||
end
|
||||
require("classes")
|
||||
|
||||
local function LoadSprite(name)
|
||||
name = "games/" .. name
|
||||
local LoadObject = {
|
||||
["sprite"] = function(name)
|
||||
name = "games/" .. name
|
||||
|
||||
local info = love.filesystem.getInfo(name)
|
||||
if (not info) then
|
||||
error("Failed to load Object (FILE NOT FOUND) ("..name..")")
|
||||
return
|
||||
end
|
||||
if ((info.size + virtual.currentMemory) > virtual.maxMemory) then
|
||||
error("Failed to load Object (MAX MEMORY) ("..name..")")
|
||||
return
|
||||
end
|
||||
|
||||
local info = love.filesystem.getInfo(name)
|
||||
if (not info) then
|
||||
error("Failed to load Sprite! ("..name..")")
|
||||
return
|
||||
end
|
||||
local newObject = Sprite.new(name)
|
||||
|
||||
virtual.currentMemory = virtual.currentMemory + info.size
|
||||
virtual.loadedObjects[newObject] = {
|
||||
object = newSprite,
|
||||
size = info.size,
|
||||
}
|
||||
virtual.currentMemory = virtual.currentMemory + info.size
|
||||
virtual.loadedCount = virtual.loadedCount + 1
|
||||
|
||||
local newSprite = love.graphics.newImage(name)
|
||||
end
|
||||
return newObject
|
||||
end,
|
||||
["audio"] = function(name, soundType)
|
||||
name = "games/" .. name
|
||||
soundType = soundType or "static"
|
||||
|
||||
local info = love.filesystem.getInfo(name)
|
||||
if (not info) then
|
||||
error("Failed to load Object (FILE NOT FOUND) ("..name..")")
|
||||
return
|
||||
end
|
||||
if ((info.size + virtual.currentMemory) > virtual.maxMemory) then
|
||||
error("Failed to load Object (MAX MEMORY) ("..name..")")
|
||||
return
|
||||
end
|
||||
|
||||
local newObject = Audio.new(name, soundType)
|
||||
|
||||
virtual.loadedObjects[newObject] = {
|
||||
object = newSprite,
|
||||
size = info.size,
|
||||
}
|
||||
virtual.currentMemory = virtual.currentMemory + info.size
|
||||
virtual.loadedCount = virtual.loadedCount + 1
|
||||
|
||||
return newObject
|
||||
end,
|
||||
}
|
||||
|
||||
-- Establish Sandbox
|
||||
-- Everything in the table is what the Sandbox has access to
|
||||
|
@ -28,7 +65,8 @@ local consoleEnv = {
|
|||
Draw,
|
||||
KeyPressed,
|
||||
|
||||
Sprite = LoadSprite,
|
||||
Sprite2 = LoadSprite,
|
||||
Sprite = LoadObject["sprite"],
|
||||
|
||||
print = love.graphics.print,
|
||||
}
|
||||
|
@ -74,9 +112,8 @@ function love.load()
|
|||
maxMemory = 16000,
|
||||
currentMemory = 0,
|
||||
|
||||
loadedSprites = {},
|
||||
loadedSounds = {},
|
||||
loadedFonts = {},
|
||||
loadedObjects = {},
|
||||
loadedCount = 0,
|
||||
}
|
||||
|
||||
loadGame("test")
|
||||
|
@ -128,11 +165,12 @@ function love.update(dt)
|
|||
end
|
||||
|
||||
function love.draw()
|
||||
love.graphics.scale(scaling*0.5, scaling*0.5)
|
||||
love.graphics.print(virtual.currentMemory/1000 .. "/" .. virtual.maxMemory/1000 .. " KB", 2, 2)
|
||||
love.graphics.print("Loaded Objects: " .. virtual.loadedCount, 2, 10)
|
||||
love.graphics.scale(scaling, scaling)
|
||||
|
||||
love.graphics.setFont(font)
|
||||
|
||||
love.graphics.print(virtual.currentMemory/1000 .. "/" .. virtual.maxMemory/1000 .. " KB", 2, 2)
|
||||
|
||||
if (consoleEnv.Draw) then
|
||||
consoleEnv.Draw()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue