diff options
Diffstat (limited to 'draw.fnl')
| -rw-r--r-- | draw.fnl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/draw.fnl b/draw.fnl new file mode 100644 index 0000000..11b7594 --- /dev/null +++ b/draw.fnl @@ -0,0 +1,33 @@ +;;;; Copyright (C) 2018 Jakob L. Kreuze, All Rights Reserved. +;;;; +;;;; This file is part of slime-the-world. +;;;; +;;;; slime-the-world is free software: you can redistribute it and/or modify it +;;;; under the terms of the GNU General Public License as published by the Free +;;;; Software Foundation, either version 3 of the License, or (at your option) +;;;; any later version. +;;;; +;;;; slime-the-world is distributed in the hope that it will be useful, but +;;;; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +;;;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +;;;; more details. +;;;; +;;;; You should have received a copy of the GNU General Public License along +;;;; with slime-the-world. If not, see <http://www.gnu.org/licenses/>. + +;; Draws from the a given tile sheet to the screen coordinates, (`x', `y'), +;; accounting for padding and actual tile size. +(fn tile [x y sheet frame-x frame-y] + (let [x-offset (+ (. sheet :padding-x) + (* frame-x (+ (. sheet :width) (. sheet :padding-x)))) + y-offset (+ (. sheet :padding-y) + (* frame-y (+ (. sheet :height) (. sheet :padding-y))))] + (let [quad (love.graphics.newQuad x-offset + y-offset + (. sheet :width) + (. sheet :height) + (: (. sheet :img) :getWidth) + (: (. sheet :img) :getHeight))] + (love.graphics.draw (. sheet :img) quad x y)))) + +{:tile tile} |