美文网首页
pygame项目外星人入侵第二课-让飞船动起来

pygame项目外星人入侵第二课-让飞船动起来

作者: 韩老司 | 来源:发表于2021-05-08 13:00 被阅读0次

课程要求

通过键盘可以左右移动飞船

1.pygame得响应按键

添加得代码
image.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() #最近绘制屏幕可见

点击左方向键移动飞船位置

image.png bjvhc-nna9i.gif

相关文章

网友评论

      本文标题:pygame项目外星人入侵第二课-让飞船动起来

      本文链接:https://www.haomeiwen.com/subject/rqdudltx.html