课程要求
通过键盘可以左右移动飞船
1.pygame得响应按键
添加得代码
![](https://img.haomeiwen.com/i515827/c334155b2035db99.png)
全部代码
import pygame #导入第三方得pygame游戏库
import sys #导入系统库
"""
1、外星人入侵游戏
1.1 我们这次不使用函数,后续逐步优化升级,我们只是使用python基础得语法
"""
pygame.init() #这个是进行游戏初始化,就是创建一个屏幕
screen = pygame.display.set_mode((1200,800)) #设置游戏屏幕得大小,宽和高,注意这个是元组(1200,800)
pygame.display.set_caption("外星人入侵") #这个是设置屏幕得名称(左上角游戏名称)
#首先游戏是不断进行得,需要使用无限循环,使用while
bg_color = (230,230,230) #三原色设置背景颜色
#创建ship船舰
class Ship:
def __init__(self,screen): #这个是构造函数,初始化使用,后续函数会详细讲解
"""
可设置相应rect对象的属性center、centerx或centery。要让游戏元素与屏幕边缘对齐,
可使用属性top、bottom、left或right;要调整游戏元素的水平或垂直位置,
可使用属性x和y,它们分别是相应矩形左上角的x和y坐标。
"""
self.screen = screen #这个是初始化飞船平设置其初始化位置
# self.image = pygame.image.load("../images/ship.bmp") #设置飞船得路径,一般在代码文件目录新建一个images
self.image = pygame.image.load("../images/ship.bmp")
self.rect = self.image.get_rect() #获取图像得大小
print("self.rect",self.rect)
self.screen_rect = screen.get_rect()
#将每艘新飞船放在屏幕底部中央
self.rect.centerx = self.screen_rect.centerx#
print(self.rect.centerx)
self.rect.bottom = self.screen_rect.bottom #
def blitme(self):
print(self)
self.screen.blit(self.image,self.rect) #在指定位置绘制飞船
#绘制飞机
ship = Ship(screen)
while True:
for event in pygame.event.get(): #不断循环获取坐标位置
# print(event) #这个可以看到屏幕是不断进行刷新
if event.type == pygame.QUIT: #判断这个是否点击x进行退出
sys.exit() #系统退出指令
elif event.type == pygame.KEYDOWN: #首选需要判断键盘是不是按下
if event.key == pygame.K_RIGHT: #判断是不是往右方向键
ship.rect.centerx += 10 #移动一步
# ship.blitme() #
screen.fill(bg_color) #每次都进行屏幕得绘制
# screen.fill(ship)
# screen.blit(ship_bg,(100,100))
ship.blitme()
pygame.display.flip() #最近绘制屏幕可见
点击左方向键移动飞船位置
![](https://img.haomeiwen.com/i515827/26684443af340c11.png)
![](https://img.haomeiwen.com/i515827/34d594e6dbf46dc7.gif)
网友评论