Inheritance in Love2d and Lua

你离开我真会死。 提交于 2019-12-11 03:39:24

问题


I have a class with this set of values and functions:

require("class")

entity = class:new()

function entity:new()
    self.x = 100
    self.y = 100
    self.width = 32
    self.height = 32
    self.info = "entity"
    self.alive = true
    self.color = {r = 255, g = 0, b = 0}

    return self
end

function entity:load()
end

function entity:update()
    if self.alive then
    end
end

function entity:draw()
    if self.alive then
        love.graphics.setColor(self.color.r, self.color.g, self.color.b)
    end
end

function entity:destroy()
    self.alive = false
end

And I want to be able to use those same functions and values simply for other classes, like so:

require("entity")

local player = entity:new()

function player:load()
   self.color.r = 100
end

function player:update()
end
--etc etc

I come from a flash and As3 background, which if any of you know you may understand more or less what I'm trying to do. So could anyone help me with this? All help is appreciated.


回答1:


You can use this class system to get the experience you are desiring to have. (Make sure to copy the code of the full version).

Your code would look like this:

require("class")

entity = class()

entity.x = 100
entity.y = 100
entity.width = 32
entity.height = 32
entity.info = "entity"
entity.alive = true
entity.color = {r = 255, g = 0, b = 0}


function entity:load()
end

function entity:update()
    if self.alive then
    end
end

function entity:draw()
    if self.alive then
        love.graphics.setColor(self.color.r, self.color.g, self.color.b)
    end
end

function entity:destroy()
    self.alive = false
end

And the second file:

require("entity")

local player = class()
player:addparent(entity)

function player:load()
   self.color.r = 100
end

function player:update()
end


来源:https://stackoverflow.com/questions/23275262/inheritance-in-love2d-and-lua

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!