我正在学习红宝石,我正在写一个简单的文字游戏,我们正在与对手作战.我有一个班级"英雄",我有这样的代码
def attack(enemy)
enemy.hp -= attack_damage
puts enemy.name + " HP:" + enemy.hp.to_s
enemy.attack(# This is the place where I need to refer to object from what I'm calling this method #)
end
Run Code Online (Sandbox Code Playgroud)
当我想要打架我只是创造新的英雄和敌人,但我不能使用递归,因为我不知道如何引用对象,正如我所说,所以战斗持续只有1击
abundzu = Hero.new("abundzu", 100, 25, 5)
herr = Hero.new("herr", 50, 25, 5)
abundzu.attack(herr)
Run Code Online (Sandbox Code Playgroud)
只需使用self:
def attack(enemy)
enemy.hp -= attack_damage
puts "#{enemy.name} HP: #{enemy.hp}"
enemy.attack(self)
end
Run Code Online (Sandbox Code Playgroud)