melee-roguelite/mode-intro.fnl
Anish Lakhwara a210317ab4 love2d:
- load mrmo sprite sheet
- find player character
- move player character with dvorak key press
2022-05-30 22:30:36 +10:00

48 lines
1.5 KiB
Fennel

(import-macros {: incf} :sample-macros)
(var counter 0)
(var time 0)
(love.graphics.setNewFont 30)
(local sheet (love.graphics.newImage "images/MRMOTEXT.png"))
(fn split-images [sheet height width]
(var images {})
(var count 0)
(for [y 0 (- (sheet:getHeight) height) height]
(for [x 0 (- (sheet:getWidth) width) width]
(tset images count (love.graphics.newQuad x y width height (sheet:getDimensions)))
(set count (+ count 1))
))
images)
(local sprites (split-images sheet 8 8))
(fn get-image [sprites row column]
(. sprites (+ (* 32 row) column)))
(local player (get-image sprites 13 1))
(var player-data {:x 100
:y 100})
(fn get-player-x []
(. player-data :x))
(fn get-player-y []
(. player-data :y))
{:draw (fn draw [message]
(local (w h _flags) (love.window.getMode))
(love.graphics.draw sheet player (get-player-x) (get-player-y) 0 2 2)
)
:update (fn update [dt set-mode]
(incf time dt))
:keypressed (fn keypressed [key set-mode]
(if (love.keyboard.isDown ".")
(tset player-data :y (- (. player-data :y) 8)))
(if (love.keyboard.isDown "e")
(tset player-data :y (+ (. player-data :y) 8)))
(if (love.keyboard.isDown "u")
(tset player-data :x (+ (. player-data :x) 8)))
(if (love.keyboard.isDown "o")
(tset player-data :x (- (. player-data :x) 8)))
)}