scenes/maps: add dot object when cursor

This commit is contained in:
Kazhnuz 2019-03-08 21:20:08 +01:00
parent 587f2e08a1
commit 07d2bda40a
5 changed files with 54 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

View File

@ -0,0 +1,8 @@
return {
realm = "Mystery Zone",
name = "Coral Sands",
x = 6,
y = 10,
mapfile = "test-map2",
music = "sunnyparadise1.mp3",
}

View File

@ -0,0 +1 @@
return {"coralsands"}

View File

@ -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

View File

@ -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