Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function miniMapObject:init(zoom)
- if not zoom then zoom = 1 end
- self.miniMap = game:newImage('media/images/ui/minimap.png', nil, 0, 0, 'TopLeft')
- self.miniMap.x, self.miniMap.y = -10 * _S, -25 * _S
- self.viewPort = display.newRoundedRect(0, 0, width * zoom, height * zoom, 5)
- game:setRP(self.viewPort, 'TopLeft')
- self.viewPort.x = 0
- self.viewPort.y = 0
- self.eventFocused = false
- local function miniMapTouched (event)
- if event.phase == 'began' then
- display.getCurrentStage():setFocus(self.miniMap, event.id)
- self.eventFocused = true
- end
- if event.phase == 'ended' or event.phase == 'cancelled' then
- display.getCurrentStage():setFocus(nil)
- self.eventFocused = false
- end
- if event.phase ~= 'ended' and self.eventFocused then
- local lx, ly = self:contentToLocal(event.x, event.y)
- game.map:panMap(lx / width, ly / height)
- return true
- end
- end
- self.miniMap:addEventListener('touch', miniMapTouched)
- -- Prevent tap ivents from passing through
- self.miniMap:addEventListener('tap', function () return true end)
- miniMapObject:insert(self.miniMap)
- miniMapObject:insert(self.timeLabel)
- -- Updates view port position and size
- -- this is called from mapGroupObject
- function miniMapObject:update(x, y, xScale, yScale)
- self.viewPort.xScale = 1 / xScale
- self.viewPort.yScale = 1 / yScale
- local offsetX = -x * self.viewPort.width
- local offsetY = -y * self.viewPort.height
- if offsetX > self.miniMap.width - self.viewPort.contentWidth then offsetX = self.miniMap.width - self.viewPort.contentWidth end
- if offsetY > self.miniMap.height - self.viewPort.contentHeight then offsetY = self.miniMap.height - self.viewPort.contentHeight end
- self.viewPort.x = offsetX
- self.viewPort.y = offsetY
- self.timeLabel.text = os.date('%H:%M')
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement