python pygame 键盘控制 Sprite精灵运动

python pygame 键盘控制 Sprite精灵运动

python实例qingyu2022-02-25 23:16:54187A+A-

精灵动起来2.gif

import pygame

FPS = 60  # 每秒更新游戏画面的频率
WIDTH = 500  # 窗口宽度
HEIGHT = 600  # 窗口高度
GREEN = (54, 173, 35)
# 游戏初始化
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))  # 游戏窗口
pygame.display.set_caption("飞机大战")  # 窗口标题
clock = pygame.time.Clock()  # 设定时钟,为了控制游戏更新画面频率
running = True


# 精灵类游戏角色类
class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((86, 20))  # 精灵图片
        self.image.fill(GREEN)
        self.rect = self.image.get_rect()  # 定位精灵位置,坐标
        self.rect.centerx = WIDTH / 2  # 位置 X轴中间
        self.rect.bottom = HEIGHT - 10  # 位置 窗口底部-10
        self.speedx = 4  # 控制精灵移动速度
        # self.rect.center =(WIDTH/2,HEIGHT/2) 在画布中央

    def update(self):
        key_pressed = pygame.key.get_pressed()  # 监听键盘,按下键返回ture,否flase
        if key_pressed[pygame.K_RIGHT]:  # 键盘方向键右键  pygame.K_a  键盘A键
            self.rect.x += self.speedx
        if key_pressed[pygame.K_LEFT]:  # 键盘方向键左键
            self.rect.x -= self.speedx

        # 触碰窗口左右两边边界判断
        if self.rect.right > WIDTH:
            self.rect.right = WIDTH
        if self.rect.left < 0:
            self.rect.left = 0


# 多游戏角色
all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)  # 加入游戏群组

# 主游戏循环
while running:
    clock.tick(FPS)  # FPS一秒更新几次画面
    # 鼠标键盘实践监听,回传列表
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    # 更新游戏
    all_sprites.update()  # 执行游戏精灵群组里每个物件的update函数
    # 显示
    screen.fill((255, 0, 0))  # RGB 红绿蓝(0-255)
    all_sprites.draw(screen)  # 将游戏群组里精灵画出来
    pygame.display.update()
pygame.quit()
点击这里复制本文地址 欢迎来到大黄鸡源码分享网
qrcode

大黄鸡源码编程网 © All Rights Reserved.  
网站备案号:闽ICP备18012015号-4
Powered by Z-BlogPHP
联系我们| 关于我们| 广告联系| 网站管理