scenes/maps: add dot object when cursor
This commit is contained in:
parent
587f2e08a1
commit
07d2bda40a
Binary file not shown.
After Width: | Height: | Size: 240 B |
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
realm = "Mystery Zone",
|
||||
name = "Coral Sands",
|
||||
x = 6,
|
||||
y = 10,
|
||||
mapfile = "test-map2",
|
||||
music = "sunnyparadise1.mp3",
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
return {"coralsands"}
|
|
@ -1,6 +1,8 @@
|
|||
local Scene = require "core.modules.scenes"
|
||||
local WorldMap = Scene:extend()
|
||||
|
||||
local LevelDot = require "scenes.worldmap.leveldot"
|
||||
|
||||
local menuutils = require "core.modules.menusystem.widgets.utils"
|
||||
local CURSOR_PADDING = 2
|
||||
|
||||
|
@ -12,10 +14,25 @@ function WorldMap:new()
|
|||
self.cursor.x, self.cursor.y = 0, 0
|
||||
self.cursor.drawx, self.cursor.drawy = 0, 0
|
||||
self.cursor.canMove = true
|
||||
self:addLevels()
|
||||
|
||||
self:register()
|
||||
end
|
||||
|
||||
function WorldMap:addLevels()
|
||||
self.assets:addImage("leveldot", "assets/sprites/gui/leveldot.png")
|
||||
self.leveldots = {}
|
||||
|
||||
local levels = require "datas.levels.list"
|
||||
for i,v in ipairs(levels) do
|
||||
LevelDot(self, v)
|
||||
end
|
||||
end
|
||||
|
||||
function WorldMap:registerDot(dot)
|
||||
table.insert(self.leveldots, dot)
|
||||
end
|
||||
|
||||
function WorldMap:update(dt)
|
||||
if (self.keys["up"].isDown) and (self.cursor.canMove) then
|
||||
self.cursor.y = math.max(0, self.cursor.y - 1)
|
||||
|
@ -73,6 +90,11 @@ end
|
|||
|
||||
function WorldMap:draw()
|
||||
self.assets:drawImage("background", 0, 0)
|
||||
|
||||
for i,v in ipairs(self.leveldots) do
|
||||
v:draw()
|
||||
end
|
||||
|
||||
love.graphics.draw(self.banner, 0, 8)
|
||||
local x, y = 16 + self.cursor.drawx * 16 - CURSOR_PADDING,
|
||||
48 + self.cursor.drawy * 16 - CURSOR_PADDING
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
local LevelDot = Object:extend()
|
||||
|
||||
function LevelDot:new(scene, levelname)
|
||||
self.scene = scene
|
||||
self.data = require("datas.levels." .. levelname)
|
||||
self.isActive = self.data.isActive or true
|
||||
|
||||
self:register()
|
||||
end
|
||||
|
||||
function LevelDot:register()
|
||||
self.scene:registerDot(self)
|
||||
end
|
||||
|
||||
function LevelDot:draw()
|
||||
if (self.isActive) then
|
||||
local x, y = 16 + self.data.x * 16 + 4,
|
||||
48 + self.data.y * 16 + 4
|
||||
self.scene.assets:drawImage("leveldot", x, y)
|
||||
end
|
||||
end
|
||||
|
||||
return LevelDot
|
Loading…
Reference in New Issue