第一章 Pygame 游戏模块学习入门之简单基础学习

系列文章目录

第一章 Pygame 游戏模块学习入门之简单基础学习

第二章 Pygame 游戏模块学习入门之pygame精灵

第三章 Pygame 游戏模块学习入门之飞机大战

第四章 Pygame 游戏模块学习进阶之飞机大战(复杂版)



前言

提示:这里可以添加本文要记录的大概内容:

Pygame是一个强大而灵活的游戏开发工具,可以帮助开发者快速创建2D游戏和多媒体应用程序。无论是初学者还是有经验的开发者,都可以通过Pygame实现自己的游戏创意,妃常有趣哦!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、pygame是什么?

Pygame是一个基于Python编程语言的开源模块,用于开发2D游戏和多媒体应用程序。它提供了一套丰富的工具和函数,可用于处理图形、声音、输入设备和碰撞检测等方面。通过Pygame,开发者可以轻松地创建游戏角色、背景、音效和特效等元素,从而实现自己的游戏创意。

Pygame的主要特点包括:

  1. 简单易用:Pygame提供了直观的API和简化的编程接口,使得开发者能够快速上手,无论是初学者还是有经验的开发者都可以轻松使用。

  2. 跨平台性:Pygame基于Python开发,可以在多个平台上运行,包括Windows、Mac OS、Linux等。

  3. 强大的图形功能:Pygame提供了图像加载、绘制、旋转、缩放等功能,开发者可以使用这些功能创建游戏中的角色、背景等元素。

  4. 多媒体支持:Pygame可以处理音频、视频等多媒体内容,开发者可以使用它播放音乐、音效等效果。

  5. 碰撞检测:Pygame提供了碰撞检测函数,可以检测游戏角色之间的碰撞情况,从而实现游戏中的交互效果。

二、基础语句

  • 初始化模块:pygame.init()

  • 设置标题
    pygame.display.set_caption(“标题名”)

  • 设置图标
    icon = pygame.image.load(图标文件)
    pygame.display.set_icon(icon)

  • 构建窗口:screen = pygame.display.set_mode(size=大小) 尺寸为元组,例如:(400, 400)

  • 加载图片:pygame.image.load(图片)

  • 游戏帧率25FPS:clock = pygame.time.Clock()
    clock.tick(25) ==》 每秒25帧

  • 背景音乐:pygame.mixer.music.load(音乐文件mp3)

  • 设置循环播放:pygame.mixer.music.play(loops=1) 1为否,0为是循环

  • 播放音乐:pygame.mixer.Sound(音乐文件mp3)

  • 获取所有事件:get是一个阻塞函数,直到事件触发
    for event in pygame.event.get()

  • 退出事件
    if event.type == pygame.QUIT:; pygame.quit() # 初始化 ; sys.exit() # 清理

  • 空格事件: if event.type == pygame.KEYUP and event.key == pygame.K_SPACE

  • 填充背景填充色: screen.fill(“颜色”, 位置)

  • 绘制背景: screen.blit(图片, 位置)

  • 更新绘制: pygame.display.flip()

三、实例代码(简单版)

# 1. 导入模块
import pygame
import sys
import time

# 2. 初始化模块
pygame.init()

# 12.设置标题和图标
pygame.display.set_caption("我的世界")
icon = pygame.image.load("素材/pygame图标.ico")
pygame.display.set_icon(icon)

# 3. 构建窗口
SIZE = (400, 400)
screen = pygame.display.set_mode(size=SIZE)


# 8. 加载图片背景
bg = pygame.image.load("素材/背景1.jpg")

# 10.加载人物图片
pos_y = 175
rw = pygame.image.load("素材/人物(90x90).png")
# 打印人物坐标长度
center_rw = rw.get_rect()
# print(center_rw.left, center_rw.right, center_rw.top, center_rw.bottom, center_rw.center)
# # 0 45 0 45 (22, 22)

# 13.游戏帧率25FPS
clock = pygame.time.Clock()

pause = False

# 16.背景音乐
pygame.mixer.music.load("素材/背景音乐.mp3")
pygame.mixer.music.play(loops=1)

pause_sound = pygame.mixer.Sound("素材/effect.mp3")


# 4. 主循环
while True:
    # 每秒25帧
    clock.tick(25)

    # 14.控制运动
    if not pause:
        pos_y -= 3
        if pos_y <= -45:
            pos_y = 400

    # 5. 获取所有事件
    # get是一个阻塞函数,直到事件触发
    for event in pygame.event.get():
        # 退出事件
        if event.type == pygame.QUIT:
            # pygame.QUIT(常量)  ==》 256 表示关闭
            pygame.quit()  # 初始化
            sys.exit()  # 清理

        # 15.空格暂停
        if event.type == pygame.KEYUP and event.key == pygame.K_SPACE:
            pause_sound.play()
            pause = not pause

    # 6. 填充背景填充色
    # (0, 0, 600, 401) ==> 位置
    screen.fill("lightgrey", (0, 0, 400, 400))

    # 9.绘制背景
    screen.blit(bg, (100, 50))

    # 11.绘制人物
    screen.blit(rw, (175, pos_y))

    # 17.绘制血条
    pygame.draw.rect(screen, "red", (center_rw.left, center_rw.top, 80, 10))
    pygame.draw.rect(screen, "green", (center_rw.left, center_rw.top, 40, 10))

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

总结

提示:这里对文章进行总结:

以上是今天的模块讲解了,晚安,希望━((′д`)爻(′д`))━!!!大家都能睡个好觉!!!!!

相关推荐

  1. 第一 Pygame 游戏模块学习入门简单基础学习

    2024-03-12 07:22:03       22 阅读
  2. 第一:CSS基础入门

    2024-03-12 07:22:03       12 阅读
  3. 学习笔记--第二WebGIS开发基础

    2024-03-12 07:22:03       20 阅读
  4. 第一:SQL简单基础的法则

    2024-03-12 07:22:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-12 07:22:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-12 07:22:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-12 07:22:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-12 07:22:03       20 阅读

热门阅读

  1. 不依赖第三方平台,用Dart语言实现 ios 消息推送

    2024-03-12 07:22:03       21 阅读
  2. Twitter的分布式自增ID雪花算法snowflake

    2024-03-12 07:22:03       26 阅读
  3. mmlspark.lightgbm.LightGBMClassifier参数说明

    2024-03-12 07:22:03       23 阅读
  4. 华为手机正在重回巅峰

    2024-03-12 07:22:03       23 阅读
  5. 华为交换机创建端口组

    2024-03-12 07:22:03       32 阅读
  6. mysql用 法like concat()

    2024-03-12 07:22:03       22 阅读
  7. ES6基础3

    2024-03-12 07:22:03       25 阅读
  8. XR虚拟拍摄引领短剧创新风潮

    2024-03-12 07:22:03       28 阅读
  9. OpenXR 超详细的spec--Chapter 1 Introduce

    2024-03-12 07:22:03       24 阅读
  10. django默认后台管理显示内容深化设置

    2024-03-12 07:22:03       24 阅读