Python pygame 游戏开发 系列文章 三

Pygame是一个开源的跨平台的Python多媒体库,用于开发2D游戏和多媒体应用程序。它基于Simple DirectMedia Layer(SDL)库,提供了一系列用于图形、音频和输入处理的函数和类。Pygame能够使用硬件加速,使得游戏开发更加高效和快速。

import pygame

# 初始化模块
pygame.init()
# 构建窗体
screen = pygame.display.set_mode((500, 500))
# 填充背景色
screen_color = pygame.Color(125, 125, 125)

# 构建面填充色
surface1 = pygame.Surface((300, 300))
surface1_color = pygame.Color(125, 255, 125)

surface1_speed = 3
surface1_y = -300

# 引入时钟模块
clock = pygame.time.Clock()

# 绘制一个角色
surface2 = pygame.Surface((50, 50))
surface2_color = pygame.Color(125, 125, 255)
surface2.fill(surface2_color)
surface2_speed = 10
surface2_x = 0
surface2_y = 0

# 主循环
while True:
    clock.tick(20)

    # 获取键盘按下事件
    key_pressed = pygame.key.get_pressed()
    if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]:
        surface2_x -= surface2_speed
        if surface2_x < 0:
            surface2_x = 0
    elif key_pressed[pygame.K_d] or key_pressed[pygame.K_RIGHT]:
        surface2_x += surface2_speed
        if surface2_x > 250:
            surface2_x = 250
    elif key_pressed[pygame.K_w] or key_pressed[pygame.K_UP]:
        surface2_y -= surface2_speed
        if surface2_y < 0:
            surface2_y = 0
    elif key_pressed[pygame.K_s] or key_pressed[pygame.K_DOWN]:
        surface2_y += surface2_speed
        if surface2_y > 250:
            surface2_y = 250

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()
        # 获取键盘抬起事件
        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_SPACE:
                print("抬起空格")
            elif event.key == pygame.K_LEFT or event.key == pygame.K_a:
                print("左键")
            elif event.key == pygame.K_RIGHT or event.key == pygame.K_d:
                print("右键")
            elif event.key == pygame.K_UP or event.key == pygame.K_w:
                print("上键")
            elif event.key == pygame.K_DOWN or event.key == pygame.K_s:
                print("下键")

    # 每一帧都是先刷背景
    screen.fill(screen_color)

    # 更新surface1的背景色
    surface1.fill(surface1_color)
    surface1.blit(surface2, (surface2_x, surface2_y))

    surface1_y += surface1_speed
    if surface1_y >= 500:
        surface1_y = -300

    # 绘制面(在某一个位置刷一个矩形)
    screen.blit(surface1, (100, surface1_y))

    # 更新绘制
    pygame.display.flip()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农NoError

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值