gdritter repos animaltransiro / 24d65ce
Scale up display + show messages badly Getty Ritter 6 years ago
7 changed file(s) with 63 addition(s) and 11 deletion(s). Collapse all Expand all
11 return {
2 speed = 2,
3 tileSize = 24,
4 halfTile = 12,
2 speed = 2,
3 tileSize = 24,
4 halfTile = 12,
55 quarterTile = 6,
6 boardWidth = 32,
7 boardHeight = 24,
6 boardWidth = 16,
7 boardHeight = 12,
88 }
1919 function keys.pressed.e(s)
2020 local tgt = s.char:getFocus(s.board)
2121 if tgt then
22 tgt:action()
22 tgt:action(s)
2323 end
2424 end
2525
Binary diff not shown
33 local entity = require 'entity'
44 local tile = require 'tile'
55 local event = require 'event'
6 local menu = require 'menu'
67 local state = {}
78
89 local sprites = {}
1314
1415 function love.load()
1516 state.t = 0
17 state.message = nil
1618 state.board = board.Board:new()
1719 state.char = entity.Entity:new(state.board, 3 * 24, 3 * 24, tile.getTile('character'))
1820
2527 state.board:set(8, 4, tile.getTile('water'))
2628 state.board:set(8, 5, tile.getTile('water'))
2729 state.board:setEntity(9, 6, tile.getTile('sign'))
30
31 state.canvas = love.graphics.newCanvas(
32 consts.boardWidth * consts.tileSize,
33 consts.boardHeight * consts.tileSize)
34 state.canvas:setFilter('nearest', 'nearest')
35
36 love.window.setMode(consts.tileSize * consts.boardWidth * 2,
37 consts.tileSize * consts.boardHeight * 2)
38
39 love.graphics.setNewFont('font.ttf', 16)
2840 end
2941
3042 function love.update()
3749 end
3850
3951 function love.keypressed(key)
40 return event.keys.pressed[key] and
41 event.keys.pressed[key](state)
52 if state.message then
53 state.message = nil
54 else
55 return event.keys.pressed[key] and
56 event.keys.pressed[key](state)
57 end
4258 end
4359
4460 function love.keyreleased(key)
5470
5571 love.graphics.setColor(255, 255, 255)
5672
73 love.graphics.setCanvas(state.canvas)
74
5775 for x = 0, consts.boardWidth, 1 do
5876 for y = 0, consts.boardHeight, 1 do
5977 state.board:lookup(x, y):draw(x, y)
6886 end
6987
7088 state.char:draw()
89
90 if state.message then
91 local w = consts.boardWidth * consts.tileSize
92 local h = consts.boardHeight * consts.tileSize / 2
93 love.graphics.rectangle('fill', 8, 8 + h, w - 16, h - 16)
94 love.graphics.setColor(0, 0, 0)
95 love.graphics.print(state.message, 12, h + 12)
96 end
97
98 love.graphics.setCanvas()
99
100 love.graphics.setColor(255, 255, 255)
101 love.graphics.rectangle('fill', 0, 0,
102 love.graphics.getWidth(),
103 love.graphics.getHeight())
104
105 love.graphics.draw(state.canvas, 0, 0, 0, 2, 2)
71106 end
1 local function showMessage(msg)
2 love.graphics.print(msg)
3 end
4
5 return {
6 showMessage = showMessage
7 }
5050
5151 local tileCache = {}
5252
53 function getTile(name)
53 local function getTile(name)
5454 tileCache[name] = tileCache[name] or Tile:new(name)
5555 return tileCache[name]
5656 end
5757
58 local nilTile = {
59 pass = false,
60 name = 'nil',
61 draw = function(self, x, y) end,
62 drawPx = function(self, x, y) end,
63 action = function() end,
64 }
65
5866 return {
59 getTile = getTile
67 getTile = getTile,
68 nilTile = nilTile,
6069 }
33 name = 'sign',
44 spriteX = 3,
55 spriteY = 0,
6 action = function() print('A sign!') end,
6 action = function(self, state) state.message = self.signText end,
7 signText = 'Bonvolu al Animaltransiron!'
78 }