Python pygame入门

Pygame的游戏制作 一、pygame的窗口制作 坏境是vscode 1.43.0 python版本是3.7.6 import pygame from pygame.locals import * import sys def hello_world(): pygame.init() pygame.display.set_mode((640,480)) pygame.display.set_caption("hello world") while True: for event in pyg 阅读详情

1.前言

很多人学语言就是想做出来一个小游戏,但是你会发现,初学者一般学习的是输入输出,还没涉及到显示屏上的窗口图片游戏。如果你把基础已经学好了,你就可以开始做一些游戏了。做游戏需要用到一些第三方库。就看你为了做出来什么样的游戏。这篇文章我会带你们来学习一下pygame入门.

2.框架

如果你之前学过C++,你一定知道什么叫做框架​​​​​​看看我做的《c++入门和Python入门》icon-default.png?t=N7T8https://blog.youkuaiyun.com/pythonwyw123321/article/details/134345913?spm=1001.2014.3001.5502

框架代码:

import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

执行这些代码会有一个白色的窗口显示在你的面前,你点X就可以把它关闭.

3.青铜玩法

把背景颜色换一下,变成随机数.

import pygame,sys,random as r
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((r.randint(0,255),r.randint(0,255),r.randint(0,255)))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

啊!要把我的眼睛闪瞎了 .

4.白银玩法

教你怎么导入图片.

在循环的前面先写一些代码,导入一下照片.

变量名 = pygame.image.load("路径")

在循环里面显示一下图片.

窗口名.blit(变量名,(x,y))

就像这样

​
import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("a.png")
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,(0,0))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

​

然后我们让图片跟着我们的鼠标移动,获取鼠标的xy坐标.

pygame.mouse.get_pos() -->这个是一个元组像这样(0,0)

把s.blit(a,(0,0))改成s.blit(a,pygame.mouse.get_pos())

这样图片就可以跟着鼠标移动了.

代码:

​
import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("a.png")
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,​pygame.mouse.get_pos())
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

​

 5.黄金玩法

加上了碰撞检测

名字 = pygame.Rect(x, y, 宽, 高)

名字2 = pygame.Rect(x, y, 宽, 高)

if 名字.colliderect(名字2):

        #如果名字一和名字二的地方发生了碰撞,接下来要怎么做.

这个是鼠标的判断

pygame.mouse.get_pressed()

它是一个列表,零号位是左键按下判断,一号位是滚轮按下判断,二号位是右键按下判断.

向使这样的一个列表:[True,False,False]

展示代码(图片需要自己配,1个叫做13.png的图片,这是一个开关灯的程序,用鼠标点击左上角)

import pygame,sys,time
pygame.init()
pygame.display.set_caption('跳跳小恐龙') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("13.png")
a = pygame.transform.scale(a,(100,100))
b = pygame.image.load("13.png")
b = pygame.transform.scale(b,(50,50))
j = 0   #0是关 1是开
while True: #让窗口一直出现 ,就要用到while循环


    m = pygame.mouse.get_pos()
    hit = pygame.Rect(0, 0, 100, 100)
    hit2 = pygame.Rect(m[0], m[1], 50, 50)

    if hit.colliderect(hit2) and pygame.mouse.get_pressed()[0]:
        if j == 0:
            j = 1
        elif j == 1:
            j = 0
        time.sleep(0.1)
    if j == 1:
        s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    if j == 0:
        s.fill((0, 0, 0))  # 设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,(0,0))
    s.blit(b,m)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)
pygame.transform.scale(a,(100,100))这个代码是控制图片大小的,我把这个变量名叫做a的图片变成了100乘100的.

6.总结

那些好玩的游戏都是用这些基础语句做的,组合一下就可以变成一个小游戏了.

但是最好用精灵类.判断碰撞更好一些.

【Python】Pygame从零开始学习 本模块将引导您完成 Pygame 的安装,并深入理解 Pygame 应用程序的基石——游戏循环、事件处理、Surface 与 Rect 对象、显示控制以及颜色管理。Pygame 是一组专为编写视频游戏而设计的 Python 模块。它构建在优秀的 SDL (Simple DirectMedia Layer) 库之上,允许您使用 Python 语言创建功能齐全的游戏和多媒体应用程序。SDL 库本身提供了跨平台的底层硬件访问,包括音频、键盘、鼠标、游戏杆和图形硬件(通过 OpenGL/DirectX)。Pygam 阅读详情

相关推荐

《Python入门经典》——用PyGame开发游戏

一、什么是PyGame PyGame是一个开源的库,它帮助我们完成创建桌面应用程序的很多实际工作。包括屏幕的分辨率、视频、对象冲突、硬件甚至图像渲染。 二、安装PyGame cdm打开命令行窗口,输入pip install pygame 显示Successfully installed pygame-1.9.6,表示安装成功 三、创建屏幕 创建一个one.py的新文件,输入以下文本: 结果显示了400*400的正方形屏幕窗口 注:原教材是窗口一闪而过,但是在实际运行中,窗口一直存在 1、主程序循环:

m0_47397401的博客 432

Python学习笔记——Pygame之基础知识

Pygame基础知识 GUI vs. CLI 使用Python的内建函数编写的Python程序,只能够通过print()和input()函数来处理文本。程序可以在屏幕上显示文本,并且让用户通过键盘来输入文本。这类程序有一个命令行界面(command line interface,CLI)。这些程序多少有些局限性,因为它们不能显示图形,没有颜色,并且不能使用鼠标。这种CLI程序只是使用input...

唯恋殊雨的博客 1万+

Python中使用Pygame模块写入门级小游戏

Python中使用Pygame模块写入门级小游戏 这是刚开始学习python时候,使用pygame写的一个低端的飞机游戏,后来网上的某某热狗很火(你懂的),就把资源换成了吃热狗和发射热狗。功能没做完,比较懒,后面其实应该加一个敌机爆炸的效果和hot dog数增加的效果会更好。其实就是当发射的热狗碰到敌机的区域坐标的时候就更换一个图片达到效果同时把hot dog加一就行 pygame 一、Pygam...

weixin_44898911的博客 3962

Python pygame-ce(GUI编程)模块最完整教程(1/8)

pygame是python中一个流行的GUI编程模块,是专门为了开发游戏而设计的。这是一个第三方模块,是SDL语言和Python的接口。 pygame还可以用于制作网页游戏、Android手机游戏。

pythonzzy的博客 3万+

【python教程入门学习】第一个Pygame程序

Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 Python 编程的相关知识就能很轻松地掌握它。 Pygame 语法简单、明了,秉持了 Python 语言一贯的风格。同时,它作为一个游戏开发库来说,具有图形编程的基本特点,如果您对于图形编程从未了解过,即使您有 Python 编程基础,也会略感迷茫。因此,在接下来的学习中会详细介绍 Pygame 的常用模块,以及图形编程中的相关概念,帮助您快速掌握 Pygame 的使用。 下面是一个简单的 Pygame 程序,如下所示: 1. #导入所

muli9881的博客 2348

【HCIE】FRR+BFD+OSPF与BGP联动

FRR+BFD+OSPF与BGP联动

Wenrs的博客 1997

python的pygame用法_python pygame使用详解

pygame是python常用的游戏模块,不过很可惜,python并没有自带该模块,我们只好自己安装。win+r打开运行框,输入cmd,之后pip install pygame最后会有提示 Successfully installed pygame如果报错那么请评论错误原因!pygame常用的模块:模块名功能pygame.cdrom访问光驱pygame.cursors加载光标pygame.disp...

weixin_33894886的博客 8268

Open5GS实战指南:Ubuntu 22.04环境下的5G核心网快速部署

本文提供Open5GS在Ubuntu 22.04环境下部署5G核心网的实战指南,涵盖环境准备、MongoDB配置、核心组件安装、WebUI部署及网络调优等关键步骤。通过详细的安装教程和常见问题解决方案,帮助开发者快速搭建开源5G核心网测试环境。

weixin_29202213的博客 540

python blit_pygame入门

pygame入门说明在学习pygame时,主要参考了目光博客的教程。目光博客原教程是2011年写的,年代比较久远了,使用Python2。我学习时使用python3将代码重新实现了一遍,同时补充了一些细节。相比较原博客,少了一些实例。一、pygame的安装pip install pygame1安装好后,可以用下面的方法确认有没有安装成功>>>import pygame>&gt...

weixin_39719476的博客 1748

PINN内嵌物理知识神经网络入门及文献总结

内嵌物理知识深度学习方法(PINN)已经成功用于解决各类科学计算问题,其本质是将物理先验知识嵌入神经网络训练中,将一个求解PDE的问题转化为一个优化问题。这篇博客主要记录PINN相关论文

山里娃的博客 7万+

CFturbo 2024保姆级教程:从流量扬程到三维叶轮,手把手搞定离心泵水力设计

本文提供CFturbo 2024离心泵水力设计的全流程实战指南,从流量扬程参数输入到三维叶轮模型导出,详细解析设计步骤与优化技巧。涵盖叶轮尺寸确定、子午面型线设计、叶片角度调整等关键环节,帮助工程师高效完成CAE辅助的离心泵水力设计,提升设计质量与效率。

weixin_42569329的博客 936

用Python和Pygame写游戏-从入门到精通

用Python和Pygame写游戏-从入门到精通(1) 博客刚开,打算做一个Pygame的系列,翻译自Will McGugan的《Beginning Game Development with Python and Pygame –From Novice to Professional》,有兴趣的朋友可以搜一下,有英文版的PDF可以下载。其实也不是翻译,把精华摘出来,共同学习。 看这个系列

lu_123456的专栏 1844

CAN轴控制流【6041,6040】

【代码】CAN轴控制流【6041,6040】

cfqq1989的博客 1783

python中pygame文件怎么定义_Pygame - Python游戏编程入门(0)

引言博客刚开,想把最近学习的东西记录下来,算是一种笔记。最近打算开始学习Python,因为我感觉Python是一门很有意思的语言,很早以前就想学了(碍于懒),它的功能很强大,你可以用它来做科学运算,或者数字图像处理,或者任务的自动化,还可以构建动态网站,很多很多听起来就很有意思的实现。关于Python你还可以找到更多的资料,这里不一一赘述。一说到开始学习一门新的编程语言,很多童鞋可能马上想到,“嗯...

weixin_39611666的博客 492

AI爬虫:一文讲通AI爬虫技术和原理,及34个AI爬虫工具推荐

AI 爬虫 是一种结合了传统网络爬虫技术和人工智能(AI)技术的工具,能够更智能、高效地从网页中提取和处理数据。与传统爬虫相比,AI 爬虫能够更好地处理动态内容、复杂网页结构以及非结构化数据,同时具备数据清洗、分类、情感分析等高级功能。

数据知道的博客 1万+

云原生监控:Prometheus+Grafana监控Nginx实战

在云原生环境中,应用的高可用性和性能优化至关重要。Nginx作为一款广泛使用的高性能Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,对其进行有效的监控能够及时发现潜在问题,保障服务的稳定运行。本文章的目的是详细介绍如何使用Prometheus和Grafana构建一套完整的监控系统来监控Nginx,范围涵盖从环境搭建、数据采集、存储到可视化展示的整个流程。

AI云原生与云计算技术学院 1575

Python之pygame,从入门到精通(一)

Python之pygame,从入门到精通(一)

赣州博讯科技工作室的博客 65

058、时域降噪(Temporal Denoise):运动补偿与递归滤波在视频降噪中的应用

本文深入探讨了时域降噪(Temporal Denoise)技术在视频处理中的应用。作者通过车载环视项目案例,揭示了空域降噪的局限性,提出利用帧间信息进行降噪的核心思路。文章详细解析了递归滤波和运动补偿两大关键技术,指出递归滤波简单但易产生拖影,而运动补偿通过计算运动矢量解决此问题。作者还分享了多帧降噪方案的优势与算力挑战,并总结了噪声模型匹配、运动矢量一致性等实战调优经验。最后强调时域降噪需要与空域降噪平衡,指出调试工具的重要性,提出"在保证运动区域无鬼影的前提下追求信噪比"的实践原则,体现了算法复杂度与效

zzfmlxs的博客 93

Python学习笔记——游戏开发pygame入门

一、找到官网: https://www.pygame.org 二、安装(可以使用谷歌翻译) 安装pygame(使用python3命令安装报错,可以尝试使用python命令) python -m pip install -U pygame --user 测试安装是否成功 python -m pygame.examples.aliens 安装过程截图 三、查看帮...

小橙子的博客 4255

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python从入门到入坟——第九章 Python Pygame

Pygame是一个开源的Python游戏开发库,它提供了许多功能和工具,如图形渲染、音频处理、事件处理等,帮助开发者快速创建2D游戏。Pygame易于学习和使用,适合初学者和有经验的开发者。通过本文的介绍,你已经了解了Python中强大的游戏开发库Pygame及其基本概念、开发流程和常用功能。Pygame为开发者提供了丰富的工具和功能,帮助我们快速创建2D游戏,并且让游戏开发变得更加有趣和创造性。愿你在探索Pygame的过程中,不断学习和实践,创造出属于自己的游戏作品,让游戏开发之路充满乐趣与挑战!

tyc120621的博客 1030

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

15. python从入门到精通——Pygame游戏编程

当点击屏幕的时候小鸟就往上飞,再次点击小鸟再次往上飞,当不点击时小鸟会以更快速度降落。我们需要控制小鸟我们需要控制小鸟通过各种各样的管道,当我们穿过一组管道时就会得一分,如果在飞行过程中碰到了管道那么小鸟状态变为灰色掉在地上,游戏结束并且显示一个总的分数。

weixin_43812198的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

《用 Python 和 Pygame 写游戏 - 从入门到精通》教程资源

《用 Python 和 Pygame 写游戏 - 从入门到精通》教程资源 【下载地址】用Python和Pygame写游戏-从入门到精通教程资源 《用 Python 和 Pygame 写游戏 - 从入门到精通》是一本全面指导游戏开发的电子书,适合所有对游戏开发感兴趣的读者。无论您是编程新手还是经验丰富的开发者,本书都能帮助...

gitblog_06721的博客 475

Python游戏开发入门与Pygame

游戏开发一直以来都是程序员们的热门话题,而Python凭借其简洁易懂的语法和丰富的库支持,成为了一种理想的游戏开发语言。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。通过以上步骤,你将能够从零开始开发一个经典的“打砖块”游戏,从游戏界面到挡板和小球,再到砖块和得分系统,每一步都至关重要。现在,让我们创建一个简单的游戏窗口,体验一下Pygame的魅力。

master_chenchen的博客 1551

用 Python 和 Pygame 写游戏 - 从入门到精通(目录)

目光博客一开始,就有一个将pygame好好介绍一遍的宏伟计划,历时四个月,在各位朋友的关怀鞭策下,如今(2011/8/26)理论学习的部分似乎已经都完成了,在次列一个目录,方便查询。介绍还不是很全,下次有时间补充完整一些。 python.cn也有一个目录在这里,这个系列很多流量都是来自它,表示感谢。 系统学习部分 用Python和Pygame写游戏-从入门到精通(1) Pygame的历史,...

极客点儿 954

【Python】Pygame入门

Pygame的历史 Pygame是一个利用SDL库的写的游戏库,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛写的,据说他为了让Loki(致力于向Linux上移植Windows的游戏的一家大好人公司,可惜已经倒闭,唉好人不长命啊……)更有效的工作,创造了这个东东。 SDL是用C写的,不过它也可以使用C++进行开发,当然还有很多其...

点滴记忆 1041
上一篇: turtle画好看的图
下一篇: 好玩的一些网站,上班必备
B757-300
博客等级 码龄4年 259粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值