Update
This commit is contained in:
parent
0cbc05c30f
commit
3c4c6df308
9 changed files with 122 additions and 26 deletions
6
conf.lua
6
conf.lua
|
@ -1,6 +1,6 @@
|
|||
WIDTH = 320
|
||||
HEIGHT = 240
|
||||
MULTIPLIER = 1.5
|
||||
WIDTH = 400
|
||||
HEIGHT = 300
|
||||
MULTIPLIER = 1.2
|
||||
|
||||
function love.conf(t)
|
||||
t.window.width = MULTIPLIER * WIDTH
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm garden.love
|
||||
zip garden.love *.lua
|
||||
zip -r garden.love res/ room/ *.lua
|
||||
cp garden.love ~/storage/downloads/
|
||||
|
|
51
main.lua
51
main.lua
|
@ -1,35 +1,45 @@
|
|||
-- Imports
|
||||
local window = require("window")
|
||||
local button = require("button")
|
||||
local rooms = require("rooms")
|
||||
|
||||
local inventory = {
|
||||
local current_room = rooms['default']
|
||||
|
||||
screen = {
|
||||
x = 0, y = 60,
|
||||
width = 320,
|
||||
height = 240,
|
||||
}
|
||||
|
||||
screen.mousepressed = window.mousepressed(function (self, x, y, button)
|
||||
end)
|
||||
|
||||
screen.draw = window.draw(function (self)
|
||||
current_room:draw()
|
||||
window.draw_border(self.width, self.height)
|
||||
end)
|
||||
|
||||
inventory = {
|
||||
x = 0, y = 0,
|
||||
width = WIDTH*0.7,
|
||||
height = HEIGHT*0.2,
|
||||
width = screen.width,
|
||||
height = 60,
|
||||
items = {}
|
||||
}
|
||||
|
||||
inventory.draw = window.draw(function (self)
|
||||
for _, item in ipairs(self.items) do
|
||||
-- item:setpos(x, y)
|
||||
item:draw()
|
||||
end
|
||||
window.draw_border(self.width, self.height)
|
||||
end)
|
||||
|
||||
local screen = {
|
||||
x = 0, y = inventory.height,
|
||||
width = inventory.width,
|
||||
height = HEIGHT - inventory.height,
|
||||
}
|
||||
|
||||
|
||||
screen.draw = window.draw(function(self)
|
||||
window.draw_border(self.width, self.height)
|
||||
end)
|
||||
|
||||
local log = {
|
||||
log = {
|
||||
x = inventory.width , y = 0,
|
||||
width = WIDTH*0.3,
|
||||
width = 80,
|
||||
height = HEIGHT,
|
||||
}
|
||||
|
||||
|
||||
log.draw = window.draw(function (self)
|
||||
window.draw_border(self.width, self.height)
|
||||
end)
|
||||
|
@ -46,8 +56,15 @@ function love.update(dt)
|
|||
timer = timer + dt
|
||||
end
|
||||
|
||||
mw, mh = 0, 0
|
||||
if love.system.getOS() == 'android' then
|
||||
mw = (love.window.getWidth() - WIDTH) / 2
|
||||
mh = (love.window.getHeight() - HEIGHT) / 2
|
||||
end
|
||||
|
||||
function love.draw()
|
||||
love.graphics.push()
|
||||
love.graphics.translate(mw, mh)
|
||||
love.graphics.scale(MULTIPLIER)
|
||||
|
||||
screen:draw()
|
||||
|
|
BIN
res/defaultbg.png
Normal file
BIN
res/defaultbg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
51
room.lua
Normal file
51
room.lua
Normal file
|
@ -0,0 +1,51 @@
|
|||
local window = require('window')
|
||||
|
||||
-- prototype of room
|
||||
-- - background
|
||||
-- - objects
|
||||
-- - edges
|
||||
local room = {
|
||||
background = love.graphics.newImage("res/defaultbg.png"),
|
||||
edges = {},
|
||||
objects = {},
|
||||
}
|
||||
|
||||
function edge_position(e)
|
||||
local wd = screen.width - e.width
|
||||
local hd = screen.height - e.height
|
||||
|
||||
local t = {
|
||||
['left'] = { 0, hd/2 },
|
||||
['right'] = { wd, hd/2 },
|
||||
['up'] = { wd/2, 0 },
|
||||
['down'] = { wd/2, hd },
|
||||
}
|
||||
|
||||
local p = t[e.dir]
|
||||
return p[1], p[2]
|
||||
end
|
||||
|
||||
local mt = { __index = room }
|
||||
|
||||
function room:new()
|
||||
local m = {}
|
||||
setmetatable(m, mt)
|
||||
return m
|
||||
end
|
||||
|
||||
room.mousepressed = window.propagate{'edges', 'objects'}
|
||||
|
||||
function room:draw()
|
||||
love.graphics.draw(self.background, 0, 0)
|
||||
|
||||
for i, v in ipairs(self.objects) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
for i, v in ipairs(self.edges) do
|
||||
local x, y = edge_position(v)
|
||||
love.graphics.draw(edge_arrow[v.dir], x, y)
|
||||
end
|
||||
end
|
||||
|
||||
return room
|
7
room/default.lua
Normal file
7
room/default.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
local room = require('room')
|
||||
|
||||
local r = room:new()
|
||||
|
||||
r.background = love.graphics.newImage("res/defaultbg.png")
|
||||
|
||||
return r
|
5
rooms.lua
Normal file
5
rooms.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
local m = {
|
||||
['default'] = require('room/default'),
|
||||
}
|
||||
|
||||
return m
|
18
window.lua
18
window.lua
|
@ -1,4 +1,5 @@
|
|||
-- primitive of drawing objects
|
||||
-- function generator for window functions
|
||||
|
||||
local w = {}
|
||||
|
||||
function w.draw(f)
|
||||
|
@ -20,6 +21,21 @@ function w.mousepressed(f)
|
|||
end
|
||||
end
|
||||
|
||||
function w.propagate(tnames)
|
||||
return function(self, x, y, button)
|
||||
for _, tname in ipairs(tnames) do
|
||||
for i, v in pairs(self[tname]) do
|
||||
local x, y = x - v.x, y - v.y
|
||||
|
||||
if 0 <= x and x <= v.width and 0 <= y and y <= v.height then
|
||||
v:mousepressed(x, y, button)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function w.draw_border(width, height)
|
||||
love.graphics.push('all')
|
||||
love.graphics.setLineWidth(5)
|
||||
|
|
Loading…
Add table
Reference in a new issue