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
|
||||
end
|
||||
|
||||
|
||||
--[[
|
||||
Sprite Class
|
||||
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
|
||||
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/" .. sliceData.image, alphaColor)
|
||||
self.image = newImage("games/" .. metadata.image, alphaColor)
|
||||
|
||||
-- Create the slices according to the sliceData
|
||||
local imageWidth, imageHeight = self.image:getWidth(), self.image:getHeight()
|
||||
|
||||
local counter = 0
|
||||
for _, data in pairs(sliceData) do
|
||||
for _, data in pairs(metadata.tiles) do
|
||||
table.insert(self.sprites, love.graphics.newQuad(
|
||||
data.x,
|
||||
data.y,
|
||||
|
|
|
@ -11,28 +11,41 @@ end
|
|||
function Update(dt, curTime)
|
||||
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 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()
|
||||
end
|
||||
end
|
||||
|
||||
function Draw()
|
||||
DrawText(test .. "/" .. sprite.Count, 25, 25)
|
||||
sprite:Draw(test, 50, 0)
|
||||
DrawText(test .. "/" .. sprite.Count, 50, 25)
|
||||
|
||||
sprite:Draw(test, 5, 25)
|
||||
tileset:Draw(test2, 25, 0)
|
||||
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",
|
||||
AUTHOR = "NULL",
|
||||
VERSION = 0,
|
||||
path = "",
|
||||
|
||||
Load,
|
||||
Update,
|
||||
|
@ -111,11 +112,17 @@ local consoleEnv = {
|
|||
DrawText = love.graphics.print,
|
||||
|
||||
print = print,
|
||||
collectgarbage = collectgarbage,
|
||||
require = function(name)
|
||||
require(virtual.path .. name)
|
||||
end,
|
||||
}
|
||||
consoleEnv._G = consoleEnv
|
||||
|
||||
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
|
||||
error("Failed to load sandbox file (1): " .. err)
|
||||
end
|
||||
|
@ -145,6 +152,8 @@ function love.load()
|
|||
|
||||
-- Create Virtual Console
|
||||
virtual = {
|
||||
path = "",
|
||||
|
||||
maxMemory = 16000,
|
||||
currentMemory = 0,
|
||||
|
||||
|
@ -191,9 +200,17 @@ function love.update(dt)
|
|||
end
|
||||
|
||||
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.print(virtual.currentMemory/1000 .. "/" .. virtual.maxMemory/1000 .. " KB", 2, 2)
|
||||
love.graphics.print("Loaded Objects: " .. virtual.loadedCount, 2, 10)
|
||||
love.graphics.print("Loaded Variables: " .. count, 2, 18)
|
||||
love.graphics.scale(scaling, scaling)
|
||||
|
||||
love.graphics.setFont(font)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue