近期再学习python,关于类的学习有一些粗浅的认识,相比c语言面向过程的枯燥的学习,我觉得学习面向对象的语言能让我换一种思维的方式。
关于类,我认为类是一种方便的定义显示世界,和实现功能的重要的工具,最近参加多媒体大赛,在用python实现雷电时,发现一切部件都是通过类定义的,这大大减少了定义东西的代码量。
随着学习的不断深入我认为,可以用类实现更多的东西。
class Plane: def __init__(self): self.position() self.image = pygame.image.load('D:/飞机大战/飞机.png') def position(self): self.x = 0 self.y = 0
def move(self): x, y = pygame.mouse.get_pos() x -= self.image.get_width() / 2 y -= self.image.get_height() / 2 self.x = x self.y = y
# 定义敌军飞机(Enemy)class Enemy: def __init__(self): self.position() self.image = pygame.image.load('D:/飞机大战/敌机2.png') def position(self): self.x = random.randint(50, 550) self.y = random.randint(-100, 0) self.speed = random.random() + 2
def move(self): if self.y < 900: self.y += self.speed else: self.position()
# 定义子弹(Bullet)class Bullet: def __init__(self): self.x = 0 self.y = 0 self.image = pygame.image.load('D:/飞机大战/子弹.png') self.active = False
def move(self):
if self.active: self.y -= 5
if self.y < 0: self.active = False
def position(self): x, y = pygame.mouse.get_pos() self.x = x - 15 self.y = y - 20 self.active = True