花了挺长时间看完了,这本书的项目1:游戏开发。很有趣,内容也循序渐进,程序分部来写。中间还进行了多次重构。总的印象就是,不同的部分写入不同的类,设置写入设置类,状态写入状态类,实现功能的函数全部写入一个模块。
安装pygame模块,我是WIN10,VSCODE编辑器,直接在终端输入pip install pygame就行,不用照着书上来。
pygame.display.set_mode() 返回的是一个surface,应该类似于matlab中的图形句柄。对surface使用.get_rect(),可以获得rect属性,rect属性包括: top,bottom,left,right,center,centerx,centery坐标。
pygame.dispaly.flip() 不断显示新屏幕,擦去旧屏幕。
鼠标放在函数或类上会自动显示文档字符串里的注释内容,VScode上。
.bmp格式的为位图,pygame默认加载位图。
使用两个if让移动更准确,如果用if和elif,同时按住左右键,只会响应if语句里的按键。程序如下:
def update(self):
"""根据移动标志调整飞船的位置"""
# 更新飞船的center值,而不是rect
if self.moving_right and self.rect.right < self.screen_rect.right:
self.centerx += self.ai_settings.ship_speed_factor
if self.moving_left and self.rect.left >