系列文章目录
第一章 Pygame 游戏模块学习入门之简单基础学习
第二章 Pygame 游戏模块学习入门之pygame精灵
第三章 Pygame 游戏模块学习入门之飞机大战
第四章 Pygame 游戏模块学习进阶之飞机大战(复杂版)
前言
提示:这里可以添加本文要记录的大概内容:
Pygame是一个强大而灵活的游戏开发工具,可以帮助开发者快速创建2D游戏和多媒体应用程序。无论是初学者还是有经验的开发者,都可以通过Pygame实现自己的游戏创意,妃常有趣哦!!
提示:以下是本篇文章正文内容,下面案例可供参考
一、pygame是什么?
Pygame是一个基于Python编程语言的开源模块,用于开发2D游戏和多媒体应用程序。它提供了一套丰富的工具和函数,可用于处理图形、声音、输入设备和碰撞检测等方面。通过Pygame,开发者可以轻松地创建游戏角色、背景、音效和特效等元素,从而实现自己的游戏创意。
Pygame的主要特点包括:
-
简单易用:Pygame提供了直观的API和简化的编程接口,使得开发者能够快速上手,无论是初学者还是有经验的开发者都可以轻松使用。
-
跨平台性:Pygame基于Python开发,可以在多个平台上运行,包括Windows、Mac OS、Linux等。
-
强大的图形功能:Pygame提供了图像加载、绘制、旋转、缩放等功能,开发者可以使用这些功能创建游戏中的角色、背景等元素。
-
多媒体支持:Pygame可以处理音频、视频等多媒体内容,开发者可以使用它播放音乐、音效等效果。
-
碰撞检测: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()
总结
提示:这里对文章进行总结:
以上是今天的模块讲解了,晚安,希望━((′д`)爻(′д`))━!!!大家都能睡个好觉!!!!!