今天敲完了飞船绘制的部分
import pygame
class Ship:
def __init__(self, ai_game):
"""初始化飞船"""
self.screen = ai_game.screen # 获取屏幕的相关方法 让他可以用屏幕中的所有内容
self.screen_rect = ai_game.screen.get_rect() # 获取窗体的元素 他的作用是找到使得ship找到合适的位置
# 获取飞船的外接矩形
self.image = pygame.image.load("ship.bmp")
self.rect = self.image.get_rect() # 获取图像的外接矩形
# 对于每艘新飞船 把他放在屏幕中央
self.rect.midbottom = self.screen_rect.midbottom
def blitme(self):
self.screen.blit(self.image,self.rect) # 把图像画在rect的位置,之前把他设置在midbottom了
我现在逻辑有点乱了,对着书敲代码,但是不知道每一部分是如何架构起来的,谁先谁后,分析一下。
首先我设定了一个类,用来做管理游戏中用到的所有属性。
1.clock负责游戏振率,它在游戏循环里边其效果,它每次循环后都重新绘制屏幕,它控制我重新绘制屏幕的频率,这种项目应该把这个东西写在循环的最后。同时要配上flip()刷新屏幕
显示的核心思想应该是:在后台根据操作重新绘制屏幕,然后通过display里边的方法显示它
2.settings:设置保存属性
3.screen 所有元素存放的位置
4.ship 我的飞船,主要看绘制飞船的代码
self.screen_rect.midbottom
它的所有行为使用的都是screen里边的方法,实际上就是在screen上添加了一个元素,更改它的位置的方式是在screen上重绘它。
然后是主循环 负责循环绘制窗体