From d2a4535049a9feccb611e6a7b80c872075de0b96 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Tue, 23 Oct 2018 20:03:24 -0400 Subject: Breaking everything with major (but necessary to address bugs in last commit) refactoring --- draw.fnl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 draw.fnl (limited to 'draw.fnl') 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 . + +;; 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} -- cgit v1.3