Character = {}
Character.new = function(name, HP)
local instance = {}
instance.name = name
instance.HP = HP
function instance:decreaseHP(delta)
self.HP = self.HP - delta
end
function instance:printMe()
print(self.name, self.HP)
end
return instance
end
local hero = Character.new("Luke", 10)
local vader = Character.new("Vader", 20)
local soldier = Character.new("Soldier", 5)
hero:printMe()
vader:printMe()
soldier:printMe()
function vader:talk()
print("I am your father")
end
function soldier:printMe()
print(self.name, self.HP, "March!")
end
hero:decreaseHP(1)
vader:decreaseHP(2)
soldier:decreaseHP(4)
vader:talk()
hero:printMe()
vader:printMe()
soldier:printMe()
Lua에서는 이처럼 특정 오브젝트만이 가지는 함수를 넣을 수도 있고, 같은 클래스라도 오브젝트 별로 다른 함수를 넣어줄 수도 있다.
(애초에 language 안에 클래스라는 개념이 없기 때문에 가능한 일)
No comments:
Post a Comment