local Cube = setmetatable({}, { __index = Entity }) Cube.__index = Cube function Cube.new() local self = Entity.new() setmetatable(self, Cube) self:add(Entity.POSITION) self.position.x = 0 self.position.y = 0 self.position.z = 0 self:add(Entity.MESH) self:add(Entity.MATERIAL) self.material.color = colorRed() return self end function Cube:update() local speed = 3.0 local dx = inputAxis(INPUT_ACTION_LEFT, INPUT_ACTION_RIGHT) local dz = inputAxis(INPUT_ACTION_UP, INPUT_ACTION_DOWN) self.position.x = self.position.x + dx * speed * TIME.delta self.position.z = self.position.z + dz * speed * TIME.delta end return Cube