stuff
This commit is contained in:
parent
1e299dfa84
commit
204021b9ae
11 changed files with 143 additions and 26 deletions
|
@ -22,6 +22,7 @@ local function newImage(path, alphaColor)
|
||||||
return image
|
return image
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
Sprite Class
|
Sprite Class
|
||||||
This is essentially just a Wrapper for LÖVEs Image
|
This is essentially just a Wrapper for LÖVEs Image
|
||||||
|
@ -58,16 +59,15 @@ function Spritesheet.new(path, width, height, alphaColor)
|
||||||
|
|
||||||
if (string.find(path, ".json")) then
|
if (string.find(path, ".json")) then
|
||||||
local contents, size = love.filesystem.read(path)
|
local contents, size = love.filesystem.read(path)
|
||||||
local sliceData = json.decode(contents)
|
local metadata = json.decode(contents)
|
||||||
|
|
||||||
print("games/" .. sliceData.image)
|
self.image = newImage("games/" .. metadata.image, alphaColor)
|
||||||
self.image = newImage("games/" .. sliceData.image, alphaColor)
|
|
||||||
|
|
||||||
-- Create the slices according to the sliceData
|
-- Create the slices according to the sliceData
|
||||||
local imageWidth, imageHeight = self.image:getWidth(), self.image:getHeight()
|
local imageWidth, imageHeight = self.image:getWidth(), self.image:getHeight()
|
||||||
|
|
||||||
local counter = 0
|
local counter = 0
|
||||||
for _, data in pairs(sliceData) do
|
for _, data in pairs(metadata.tiles) do
|
||||||
table.insert(self.sprites, love.graphics.newQuad(
|
table.insert(self.sprites, love.graphics.newQuad(
|
||||||
data.x,
|
data.x,
|
||||||
data.y,
|
data.y,
|
||||||
|
|
|
@ -11,28 +11,41 @@ end
|
||||||
function Update(dt, curTime)
|
function Update(dt, curTime)
|
||||||
end
|
end
|
||||||
|
|
||||||
local sprite = Spritesheet("testSprites.json", 16, 16, Color(48, 104, 80, 255))
|
local sprite = Spritesheet("testSprites.png", 16, 16, Color(48, 104, 80, 255))
|
||||||
|
local tileset = Spritesheet("tileset.json", 16, 16, Color(48, 104, 80, 255))
|
||||||
local testSound = Sound("testSound.mp3", "static")
|
local testSound = Sound("testSound.mp3", "static")
|
||||||
|
|
||||||
local test = 1
|
local test = 1
|
||||||
|
local test2 = 1
|
||||||
function KeyPressed(key)
|
function KeyPressed(key)
|
||||||
if (key == "f3") then
|
if (key == "f3") then
|
||||||
test = test - 1
|
test = test - 1
|
||||||
|
test2 = test2 - 1
|
||||||
|
|
||||||
if (test == 0) then
|
if (test == 0) then
|
||||||
test = sprite.Count
|
test = sprite.Count
|
||||||
end
|
end
|
||||||
|
if (test2 == 0) then
|
||||||
|
test2 = tileset.Count
|
||||||
|
end
|
||||||
elseif (key == "f4") then
|
elseif (key == "f4") then
|
||||||
test = test + 1
|
test = test + 1
|
||||||
|
test2 = test2 + 1
|
||||||
|
|
||||||
if (test == sprite.Count + 1) then
|
if (test == sprite.Count + 1) then
|
||||||
test = 1
|
test = 1
|
||||||
end
|
end
|
||||||
|
if (test2 == tileset.Count + 1) then
|
||||||
|
test2 = 1
|
||||||
|
end
|
||||||
elseif (key == "f2") then
|
elseif (key == "f2") then
|
||||||
testSound:Play()
|
testSound:Play()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Draw()
|
function Draw()
|
||||||
DrawText(test .. "/" .. sprite.Count, 25, 25)
|
DrawText(test .. "/" .. sprite.Count, 50, 25)
|
||||||
sprite:Draw(test, 50, 0)
|
|
||||||
|
sprite:Draw(test, 5, 25)
|
||||||
|
tileset:Draw(test2, 25, 0)
|
||||||
end
|
end
|
||||||
|
|
59
games/test/main.lua
Normal file
59
games/test/main.lua
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
NAME = "Test"
|
||||||
|
AUTHOR = "Tarion"
|
||||||
|
VERSION = 0
|
||||||
|
|
||||||
|
local backgroundColor = Color(48, 104, 80, 255)
|
||||||
|
local colo3r = Color(48, 104, 80, 255)
|
||||||
|
function Load()
|
||||||
|
SetBackgroundColor(backgroundColor)
|
||||||
|
color = Color(48, 104, 80, 255)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Update(dt, curTime)
|
||||||
|
end
|
||||||
|
|
||||||
|
local sprite = Spritesheet("testSprites.png", 16, 16, Color(48, 104, 80, 255))
|
||||||
|
local tileset = Spritesheet("tileset.json", 16, 16, Color(48, 104, 80, 255))
|
||||||
|
local testSound = Sound("testSound.mp3", "static")
|
||||||
|
|
||||||
|
local test = 1
|
||||||
|
local test2 = 1
|
||||||
|
function KeyPressed(key)
|
||||||
|
if (key == "f3") then
|
||||||
|
test = test - 1
|
||||||
|
test2 = test2 - 1
|
||||||
|
|
||||||
|
if (test == 0) then
|
||||||
|
test = sprite.Count
|
||||||
|
end
|
||||||
|
if (test2 == 0) then
|
||||||
|
test2 = tileset.Count
|
||||||
|
end
|
||||||
|
elseif (key == "f4") then
|
||||||
|
test = test + 1
|
||||||
|
test2 = test2 + 1
|
||||||
|
|
||||||
|
if (test == sprite.Count + 1) then
|
||||||
|
test = 1
|
||||||
|
end
|
||||||
|
if (test2 == tileset.Count + 1) then
|
||||||
|
test2 = 1
|
||||||
|
end
|
||||||
|
elseif (key == "f2") then
|
||||||
|
testSound:Play()
|
||||||
|
testSound = nil
|
||||||
|
collectgarbage()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Draw()
|
||||||
|
DrawText(test .. "/" .. sprite.Count, 50, 25)
|
||||||
|
|
||||||
|
sprite:Draw(test, 5, 25)
|
||||||
|
tileset:Draw(test2, 30, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- TODO:
|
||||||
|
-- 1. Implement memory limits for code, track how many variables are loaded, based on the size, like int64 and stuff
|
2
games/test/test.lua
Normal file
2
games/test/test.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
return "test"
|
BIN
games/test/testSound.mp3
Normal file
BIN
games/test/testSound.mp3
Normal file
Binary file not shown.
BIN
games/test/testSprites.png
Normal file
BIN
games/test/testSprites.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 961 B |
22
games/test/tileset.json
Normal file
22
games/test/tileset.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"image": "tileset.png",
|
||||||
|
"tiles": [
|
||||||
|
{"x":0,"y":0,"width":64,"height":24},
|
||||||
|
{"x":64,"y":0,"width":16,"height":24},
|
||||||
|
{"x":64,"y":0,"width":16,"height":24},
|
||||||
|
{"x":0,"y":24,"width":64,"height":24},
|
||||||
|
{"x":80,"y":52,"width":8,"height":12},
|
||||||
|
{"x":80,"y":68,"width":8,"height":12},
|
||||||
|
{"x":0,"y":72,"width":80,"height":24},
|
||||||
|
{"x":90,"y":48,"width":14,"height":48},
|
||||||
|
{"x":72,"y":96,"width":32,"height":15},
|
||||||
|
{"x":32,"y":96,"width":40,"height":15},
|
||||||
|
{"x":24,"y":96,"width":8,"height":8},
|
||||||
|
{"x":16,"y":96,"width":8,"height":8},
|
||||||
|
{"x":16,"y":104,"width":8,"height":8},
|
||||||
|
{"x":0,"y":96,"width":16,"height":16},
|
||||||
|
{"x":0,"y":112,"width":32,"height":24},
|
||||||
|
{"x":32,"y":111,"width":32,"height":24},
|
||||||
|
{"x":72,"y":136,"width":32,"height":24}
|
||||||
|
]
|
||||||
|
}
|
BIN
games/test/tileset.png
Normal file
BIN
games/test/tileset.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
|
@ -1,18 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"image": "testSprites.png"
|
|
||||||
},
|
|
||||||
{"x":0,"y":0,"width":64,"height":24},
|
|
||||||
{"x":64,"y":0,"width":16,"height":24},
|
|
||||||
{"x":64,"y":0,"width":16,"height":24},
|
|
||||||
{"x":0,"y":24,"width":64,"height":24},
|
|
||||||
{"x":80,"y":52,"width":8,"height":12},
|
|
||||||
{"x":80,"y":68,"width":8,"height":12},
|
|
||||||
{"x":0,"y":72,"width":80,"height":24},
|
|
||||||
{"x":90,"y":48,"width":14,"height":48},
|
|
||||||
{"x":72,"y":96,"width":32,"height":15},
|
|
||||||
{"x":32,"y":96,"width":40,"height":15},
|
|
||||||
{"x":24,"y":96,"width":8,"height":8},
|
|
||||||
{"x":16,"y":96,"width":8,"height":8},
|
|
||||||
{"x":16,"y":104,"width":8,"height":8},
|
|
||||||
{"x":0,"y":96,"width":16,"height":16},{"x":0,"y":112,"width":32,"height":24},{"x":32,"y":111,"width":32,"height":24},{"x":72,"y":136,"width":32,"height":24}]
|
|
22
games/tileset.json
Normal file
22
games/tileset.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"image": "tileset.png",
|
||||||
|
"tiles": [
|
||||||
|
{"x":0,"y":0,"width":64,"height":24},
|
||||||
|
{"x":64,"y":0,"width":16,"height":24},
|
||||||
|
{"x":64,"y":0,"width":16,"height":24},
|
||||||
|
{"x":0,"y":24,"width":64,"height":24},
|
||||||
|
{"x":80,"y":52,"width":8,"height":12},
|
||||||
|
{"x":80,"y":68,"width":8,"height":12},
|
||||||
|
{"x":0,"y":72,"width":80,"height":24},
|
||||||
|
{"x":90,"y":48,"width":14,"height":48},
|
||||||
|
{"x":72,"y":96,"width":32,"height":15},
|
||||||
|
{"x":32,"y":96,"width":40,"height":15},
|
||||||
|
{"x":24,"y":96,"width":8,"height":8},
|
||||||
|
{"x":16,"y":96,"width":8,"height":8},
|
||||||
|
{"x":16,"y":104,"width":8,"height":8},
|
||||||
|
{"x":0,"y":96,"width":16,"height":16},
|
||||||
|
{"x":0,"y":112,"width":32,"height":24},
|
||||||
|
{"x":32,"y":111,"width":32,"height":24},
|
||||||
|
{"x":72,"y":136,"width":32,"height":24}
|
||||||
|
]
|
||||||
|
}
|
19
main.lua
19
main.lua
|
@ -95,6 +95,7 @@ local consoleEnv = {
|
||||||
NAME = "NULL",
|
NAME = "NULL",
|
||||||
AUTHOR = "NULL",
|
AUTHOR = "NULL",
|
||||||
VERSION = 0,
|
VERSION = 0,
|
||||||
|
path = "",
|
||||||
|
|
||||||
Load,
|
Load,
|
||||||
Update,
|
Update,
|
||||||
|
@ -111,11 +112,17 @@ local consoleEnv = {
|
||||||
DrawText = love.graphics.print,
|
DrawText = love.graphics.print,
|
||||||
|
|
||||||
print = print,
|
print = print,
|
||||||
|
collectgarbage = collectgarbage,
|
||||||
|
require = function(name)
|
||||||
|
require(virtual.path .. name)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
consoleEnv._G = consoleEnv
|
consoleEnv._G = consoleEnv
|
||||||
|
|
||||||
function loadGame(gameName)
|
function loadGame(gameName)
|
||||||
local fn, err = loadfile("games/" .. gameName .. ".lua", "t", consoleEnv)
|
local fn, err = loadfile("games/" .. gameName .. "/main.lua", "t", consoleEnv)
|
||||||
|
virtual.path = "games/" .. gameName .. "/"
|
||||||
|
|
||||||
if not fn then
|
if not fn then
|
||||||
error("Failed to load sandbox file (1): " .. err)
|
error("Failed to load sandbox file (1): " .. err)
|
||||||
end
|
end
|
||||||
|
@ -145,6 +152,8 @@ function love.load()
|
||||||
|
|
||||||
-- Create Virtual Console
|
-- Create Virtual Console
|
||||||
virtual = {
|
virtual = {
|
||||||
|
path = "",
|
||||||
|
|
||||||
maxMemory = 16000,
|
maxMemory = 16000,
|
||||||
currentMemory = 0,
|
currentMemory = 0,
|
||||||
|
|
||||||
|
@ -191,9 +200,17 @@ function love.update(dt)
|
||||||
end
|
end
|
||||||
|
|
||||||
function love.draw()
|
function love.draw()
|
||||||
|
local count = 0
|
||||||
|
for k, v in pairs(consoleEnv) do
|
||||||
|
if (type(v) ~= "function" and v ~= nil) then
|
||||||
|
count = count + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
love.graphics.scale(scaling*0.5, scaling*0.5)
|
love.graphics.scale(scaling*0.5, scaling*0.5)
|
||||||
love.graphics.print(virtual.currentMemory/1000 .. "/" .. virtual.maxMemory/1000 .. " KB", 2, 2)
|
love.graphics.print(virtual.currentMemory/1000 .. "/" .. virtual.maxMemory/1000 .. " KB", 2, 2)
|
||||||
love.graphics.print("Loaded Objects: " .. virtual.loadedCount, 2, 10)
|
love.graphics.print("Loaded Objects: " .. virtual.loadedCount, 2, 10)
|
||||||
|
love.graphics.print("Loaded Variables: " .. count, 2, 18)
|
||||||
love.graphics.scale(scaling, scaling)
|
love.graphics.scale(scaling, scaling)
|
||||||
|
|
||||||
love.graphics.setFont(font)
|
love.graphics.setFont(font)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue