From 28e5e484981e3fde021ff9e9668c5a3234bf73af Mon Sep 17 00:00:00 2001 From: NCLanceman Date: Tue, 25 Mar 2025 22:10:35 -0500 Subject: [PATCH] placeholder player and movement --- classic.lua | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ main.lua | 12 +++++++++++ player.lua | 15 ++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 classic.lua create mode 100644 main.lua create mode 100644 player.lua diff --git a/classic.lua b/classic.lua new file mode 100644 index 0000000..035bbff --- /dev/null +++ b/classic.lua @@ -0,0 +1,59 @@ +-- +-- classic +-- +-- Copyright (c) 2014, rxi +-- +-- This module is free software; you can redistribute it and/or modify it under +-- the terms of the MIT license. See LICENSE for details. +-- + +local Object = {} +Object.__index = Object + +function Object:new() end + +function Object:extend() + local cls = {} + for k, v in pairs(self) do + if k:find("__") == 1 then + cls[k] = v + end + end + cls.__index = cls + cls.super = self + setmetatable(cls, self) + return cls +end + +function Object:implement(...) + for _, cls in pairs({ ... }) do + for k, v in pairs(cls) do + if self[k] == nil and type(v) == "function" then + self[k] = v + end + end + end +end + +function Object:is(T) + local mt = getmetatable(self) + while mt do + if mt == T then + return true + end + mt = getmetatable(mt) + end + return false +end + +function Object:__tostring() + return "Object" +end + +function Object:__call(...) + local obj = setmetatable({}, self) + obj:new(...) + return obj +end + +return Object diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..994de56 --- /dev/null +++ b/main.lua @@ -0,0 +1,12 @@ +function love.load() + Object = require("classic") + require("player") + + player = Player() +end + +function love.update(dt) end + +function love.draw() + player:draw() +end diff --git a/player.lua b/player.lua new file mode 100644 index 0000000..a01e6db --- /dev/null +++ b/player.lua @@ -0,0 +1,15 @@ +--! file: player.lua +Player = Object:extend() + +function Player:new() + self.x = 100 + self.y = 100 + self.health = 100 +end + +function Player:update(dt) end + +function Player:draw() + local vert = { self.x, self.y, (self.x - 50), (self.y - 50), (self.x + 50), (self.y - 50) } + love.graphics.polygon("fill", vert) +end