From 00af64d4e503dd82abf4657ec6fd44b0a418adb2 Mon Sep 17 00:00:00 2001 From: equa Date: Mon, 19 Apr 2021 20:39:21 -0500 Subject: cool bullets --- lib/bullet.fnl | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lib/bullet.fnl (limited to 'lib/bullet.fnl') diff --git a/lib/bullet.fnl b/lib/bullet.fnl new file mode 100644 index 0000000..d7f1b62 --- /dev/null +++ b/lib/bullet.fnl @@ -0,0 +1,25 @@ +(local entity (require :lib.entity)) +(local vec (require :lib.vec)) +(local cell (require :lib.cell)) +(local cells (require :lib.cells)) + +(fn init [self pos vel] + (setmetatable {entity.position pos + entity.velocity vel + entity.duration 120} + self)) + +(fn draw [self game id] + (love.graphics.setColor 1 1 1 (/ (entity.duration self) 120)) + (love.graphics.setLineWidth 0.3) + (love.graphics.line 0 0 + (. self entity.velocity :x) + (. self entity.velocity :y))) + +(fn collide [self game id x y] + (when (> (cell.aliveness (. game.grid x y)) 0) + (tset game.entities id nil) + ;; TODO: less boom-y thing? + (tset game.grid x y (cell.init cells.boom (/ (entity.duration self) 180))))) + +{entity.init init entity.draw draw entity.collide collide} -- cgit 1.3.0-6-gf8a5