pygame教程2

响应键盘上的事件

import pygame#导入pygame。
import sys#导入sys
from pygame.locals import *#导入pygame所有的常量,方便以后使用。
pygame.init()#初始化pygame。
screen = pygame.display.set_mode((800,600))#设置窗口大小,此时已经创建窗口。
pygame.display.set_caption("Hello")#设置标题为Hello。
while True:
	for event in pygame.event.get():#pygame.event.get()可以获得事件。
		keyslist = pygame.key.get_pressed() # 获取按键元组信息
	    if event.type == QUIT:
	    #接收到退出事件后退出程序(QUIT是退出事件)。
	    	pygame.quit() #上一篇文章忘加了,不加无法关闭窗口。
	        sys.exit()
        if keyslist[pygame.K_RIGHT]: # K_RIGHT右键。如果按键按下,这个值为1
  			print("右")
	pygame.display.update()#刷新pygame,更新画面。或者用pygame.display.flip()。

插一句题外话,如果代码出错,pygame窗口无法关闭,可以使用系统自带的任务管理器(windows系统)进行强制关闭,快捷键为Ctrl+Shift+Esc。

让画面动起来

了解x轴和y轴

首先我们需要了解x轴和y轴。
在这里插入图片描述
x轴就是那条横着的轴,y轴就是那条竖着的轴。x轴和y轴相交处的点坐标为(0,0)。在平面上,x和y坐标就可以表示一个位置。

画圆形

可以用pygame.draw.circle()。包括五个参数:(1)画圆的表面,就是画在哪个窗口上(2)用什么颜色来画,如用红色[255,0,0]。(3)在什么位置画,[top,left]。(4)直径。(5)线宽,其中0表示完成填充。

圆形动起来

import pygame#导入pygame。
import sys#导入sys
from pygame.locals import *#导入pygame所有的常量,方便以后使用。
    
pygame.init()#初始化pygame。
screen = pygame.display.set_mode((800,600))#设置窗口大小,此时已经创建窗口。
pygame.display.set_caption("Hello")#设置标题为Hello。
a = False #用来确定圆形什么时候转向用的。
circle_x = 60 #圆形的x轴坐标变量
fps = 30 #动画为30帧
fcclock = pygame.time.Clock()#控制帧速率
while True:
    screen.fill([255, 255, 255])#设置窗口背景颜色
    pygame.draw.circle(screen, [255, 0, 0], [circle_x, 240], 30, 0)
    for event in pygame.event.get():#pygame.event.get()可以获得事件。
        keyslist = pygame.key.get_pressed() # 获取按键元组信息
        if event.type == QUIT:#这个程序不关闭是不会停止的
            #接收到退出事件后退出程序(QUIT是退出事件)。
            pygame.quit()
            sys.exit()
    if a == False:
        if circle_x <= 200:
            circle_x += 5
            pygame.draw.circle(screen, [255, 0, 0], [circle_x, 240], 30, 0)
        else:
            a = True
    else:
        if circle_x >= 60:
            circle_x -= 5
            pygame.draw.circle(screen, [255, 0, 0], [circle_x, 240], 30, 0)
        else:
            a = False
    
    pygame.display.update()#刷新pygame,更新画面。或者用pygame.display.flip()。
    fcclock.tick(fps)#设置动画的帧,就是1秒内移动几次。
<think>好的,我现在需要帮用户找到Pygame相关的教程和学习资料。首先,我得仔细看看用户提供的引用内容,虽然这些引用可能不是直接相关的,但里面确实提到了Pygame的一些基础知识和代码示例。用户之前的问题是关于快速排序的,但现在转向了Pygame,所以我要确保回答集中在Pygame上,而不会混淆之前的内容。 首先,用户可能是个刚开始学习游戏开发的新手,想了解如何入门Pygame。根据引用[1]和[2],Pygame是基于SDL库的Python库,用于处理图形、声音和输入设备。所以,我应该从基础开始,介绍必要的知识点,比如初始化和退出,创建窗口,事件处理等。 引用[3]和[4]提供了代码示例,比如如何初始化Pygame,创建窗口,处理退出事件。这些代码片段可以作为回答中的示例,帮助用户理解基本结构。另外,引用[5]中的事件循环和显示模块的内容也很重要,需要提及。 接下来,我需要整理出用户可能需要的资源。官方文档(引用[4]提到的pygame.org/docs/)肯定是首要推荐的,因为它最全面。然后是教程推荐,比如引用[1]提到的详细教程,可能需要建议用户查看具体的在线资源或书籍。此外,实践项目也很重要,用户可能需要从简单的小游戏开始,逐步深入。 用户可能还会有一些常见问题,比如安装Pygame,处理窗口关闭事件,或者理解游戏循环的结构。这些问题在引用中都有涉及,比如安装命令是pip install pygame,事件循环中使用pygame.event.get()来检测退出事件。 最后,根据用户的要求,生成相关问题。这些问题应该围绕Pygame的学习路径、核心概念、项目推荐、常见错误处理以及与其他库的对比。例如,如何系统学习Pygame,或者如何处理游戏中的碰撞检测。 需要确保回答结构清晰,分点说明,并正确引用提供的资料。同时,检查所有数学表达式和代码块是否符合格式要求,比如行内公式用$...$,独立公式用$$...$$,代码用三个反引号包裹。虽然当前问题不涉及数学公式,但如果有相关内容出现,需要遵守格式规则。 总结一下,回答应该包括基础知识点、推荐学习资料、代码示例、常见问题解答和相关问题。确保语言简洁,用中文,并且引用标记正确,比如[^1]、[^2]等。同时,避免提到用户不可见的系统指令,保持回答自然。</think>### Pygame 学习指南与资源推荐 #### 一、基础知识点 1. **初始化与退出** Pygame 需先通过 `pygame.init()` 初始化所有模块,退出时调用 `pygame.quit()`[^2]。 ```python import pygame pygame.init() # 初始化 # ... 游戏逻辑 pygame.quit() # 退出 ``` 2. **创建游戏窗口** 使用 `pygame.display.set_mode()` 设置窗口尺寸,并通过事件循环监听关闭操作[^3][^4]: ```python screen = pygame.display.set_mode((800, 600)) # 800x600窗口 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() pygame.display.update() # 刷新画面 ``` 3. **核心模块** - **图形绘制**:`pygame.Surface` 和 `pygame.draw` - **事件处理**:`pygame.event` 管理键盘、鼠标事件 - **声音控制**:`pygame.mixer` 加载背景音乐与音效[^1][^4] --- #### 二、推荐学习资料 1. **官方文档** - [Pygame 官方文档](https://www.pygame.org/docs/):覆盖所有模块的 API 说明和示例[^4]。 2. **中文教程** - **入门教程**:引用[1]提到的详细教程可搜索《Pygame 入门到精通》或菜鸟教程专题。 - **实战项目**:如《用 Pygame 制作贪吃蛇》《飞机大战开发指南》。 3. **书籍推荐** - 《Python游戏编程快速上手》(Al Sweigart 著) - 《Making Games with Python & Pygame》(免费电子书) --- #### 三、常见问题解答 1. **如何安装 Pygame?** 通过 pip 安装: ```bash pip install pygame ``` 2. **窗口为何闪退?** 缺少事件循环或未正确处理 `pygame.QUIT` 事件[^3][^5]。需确保主循环持续运行。 3. **如何加载图片和音效?** ```python image = pygame.image.load("player.png") # 加载图片 sound = pygame.mixer.Sound("shoot.wav") # 加载音效 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值