1、定義銳雯類
class Riven:
camp = 'Noxus' # 全部玩家的英雄(銳雯)的陣營都是Noxus;
def __init__(
self,
nickname,
aggressivity=54, # 英雄的初始攻擊力54;
life_value=414,
money=1001,
armor=3):
self.nickname = nickname # 爲本身的銳雯起個別名;
self.aggressivity = aggressivity # 英雄都有本身的攻擊力;
self.life_value = life_value # 英雄都有本身的生命值;
self.money = money
self.armor = armor
def attack(self, enemy): # 普通攻擊技能,enemy是敵人;
damage_value = self.aggressivity - enemy.armor # 根據本身的攻擊力,攻擊敵人就減掉敵人的生命值。
enemy.life_value -= damage_value
2、定義蓋倫類
class Garen: # 定義英雄蓋倫的類,不一樣的玩家能夠用它實例出本身英雄;
camp = 'Demacia' # 全部玩家的英雄(蓋倫)的陣營都是Demacia;
def __init__(
self,
nickname,
aggressivity=58, # 英雄的初始攻擊力58...;
life_value=455,
money=100,
armor=10):
self.nickname = nickname # 爲本身的蓋倫起個別名;
self.aggressivity = aggressivity # 英雄都有本身的攻擊力;
self.life_value = life_value # 英雄都有本身的生命值;
self.money = money
self.armor = armor
def attack(self, enemy): # 普通攻擊技能,enemy是敵人;
damage_value = self.aggressivity - enemy.armor # 根據本身的攻擊力,攻擊敵人就減掉敵人的生命值。
enemy.life_value -= damage_value
3、定義裝備類
class BlackCleaver:
def __init__(self, price=475, aggrev=9, life_value=100):
self.price = price
self.aggrev = aggrev
self.life_value = life_value
def update(self, obj):
obj.money -= self.price #減錢
obj.aggressivity += self.aggrev #加攻擊
obj.life_value += self.life_value #加生命值
def fire(self, obj): #這是該裝備的主動技能,噴火,燒死對方
obj.life_value -= 1000 #假設火燒的攻擊力是1000
4、交互
r1 = Riven('草叢倫')
g1 = Garen('蓋文')
b1 = BlackCleaver()
print(r1.aggressivity, r1.life_value, r1.money) #r1的攻擊力,生命值,護甲
if r1.money > b1.price:
r1.b1 = b1
b1.update(r1)
print(r1.aggressivity, r1.life_value, r1.money) #r1的攻擊力,生命值,護甲
print(g1.life_value)
r1.attack(g1) #普通攻擊
print(g1.life_value)
r1.b1.fire(g1) #用裝備攻擊
print(g1.life_value) #g1的生命值小於0就死了
54 414 1001
63 514 526
455
402
-598
- 按照這種思路一點一點的設計類和對象,最終你徹底能夠實現一個對戰類遊戲。