【Pygame 学习笔记】3.导入图片并绘制

Python_pygame库学习笔记(2):创建窗口,设置背景颜色,图片导入与放置 Pygame入门,用pygame复刻超级玛丽 阅读详情

上一篇文章,我们讲解了如何用Pygame绘制图形,这篇文章,我们来讲解Pygame如何引入图片

这篇文章需要用到的素材:

0.png

我们创建一个resources文件夹,处于python文件的同一目录下,将图片存储于该文件夹中。 

先给出Pygame框架的基本代码

import pygame
from pygame.locals import *
import sys

class Game:
    def __init__(self):
        pygame.init()
        self.W,self.H=800,800
        self.screen=pygame.display.set_mode((self.W,self.H))
        pygame.display.set_caption("Window")

    def listen(self):
        for event in pygame.event.get():
            if event.type==QUIT:
                sys.exit()

    def draw(self):
        self.screen.fill((255,255,255))

    def run(self):
        while True:
            self.listen()
            self.draw()
            pygame.display.update()

if __name__ == '__main__':
    game=Game()
    game.run()

首先,我们要创建一个path常量,指向相对路径下的resources文件夹

path="resources/"

Game类初始化函数中,导入这张图片,存储与self.bg中,存储图片用到了pygame.image.load方法,传入图片路径,返回surface对象

self.bg=pygame.image.load(path+"0.png")

self.screen是屏幕,它是Surface对象,blit方法用于将物体绘制,传入两个参数,第一个为surface对象,则要绘制的物体,第二个参数可以是含有xy坐标的元组,表示物体左上角的坐标,也可以是rect对象

比如我们要把图像放置到10,10的位置,可以这样写

self.screen.blit(self.bg,(10,10))

 

如果要放置到屏幕正中间,用上面这种方法还要求出它的左上角坐标,有点麻烦,我们可以用以下方法

首先,用surface对象的get_rect方法,获取rect对象

rect=self.bg.get_rect()

并设置中心点

rect.center=self.W/2,self.H/2

这里用到了rect的参数,有以下表示位置的常用参数:

topleft:左上角xy坐标

top:最上方y坐标

topright:右上角xy坐标

left:最左边x坐标

center:中心xy坐标

centerx和centery:中心x坐标和中心y坐标

right:最右边x坐标

bottomleft:左下角xy坐标

bottom:最下方y坐标

bottomright:右下角xy坐标

x和y不强调某一精准的点,在制作飞机大战之类的游戏时,只为移动物体而不强调某一点,即可使用这两个参数

然后用blit方法绘制

self.screen.blit(self.bg,rect)

 


好了,这个就是将图片绘制到窗口的基本操作,下一篇文章,我们再深入学习,如何对图片进行放大、缩小等操作

制作不易,喜欢我的文章的话多多点赞收藏关注哦~

欢迎订阅专栏~

谢谢支持~

02 Python笔记:如何用pygame在python中导入图片 当前使用python3.8.2 如何加载一张图片: pygame.image.load("images/me_destroy_1.png").convert_alpha()  如果图片背景是透明的用convert_alpha()可以提高程序的运行速度。  如果图片没有透明的部分,则加convert可以加快程序的运行速度。  具体可查询pygame的官网https://www.pygame.org/docs/ 如何加载一堆图片,以在游戏中形成一个动画: destroy_image = [] 阅读详情

相关推荐

【每日一练】python之pygame游戏模块添加图片及基本处理

【代码】【每日一练】python之pygame游戏模块添加图片及基本处理。

程之编的博客 640

第3课pygame图片精灵

因为在这个游戏当中看到的都是很漂亮的图形或图片。 这个首先都是由美工给开发出来各种图像的资源。 导入资源图片,加载到精灵。 定义一个pygame.sprite.Sprite.init(self)属性, 只是用这个Surface()创建了一个形状,普通图形。 这个self.image = pygame.Surface((50, 50)),要让它从磁盘上来加载一个真正的图片文件,这样可以看到的这个屏幕窗口上就是图片效果。首先获取图片有哪些渠道,通过科学上网,美工专门切图。如何把小人的图片加载到游戏当中呢? ..

Candy5204的博客 1467

【飞机大战项目学习笔记day01】pygame 快速入门+使用pygame创建图形窗口+理解图像并实现图像绘制+理解游戏循环和游戏时钟+理解精灵和精灵组

pygame 快速入门 文章目录pygame 快速入门目标项目准备01. 使用 `pygame` 创建图形窗口小节目标1.1 游戏的初始化和退出1.2 理解游戏中的坐标系案例演练1.3 创建游戏主窗口1.4 简单的游戏循环02. 理解 **图像** 并实现图像绘制代码演练 I —— 绘制背景图像代码演练 II —— 绘制英雄图像理解 `update()` 方法的作用03. 理解 **游戏循环** ...

汪雯琦的博客 853

pygam第2课——pygame加载图片

【代码】pygam第2课——pygame加载图片。

weixin_42636075的博客 2532

python学习笔记:外星人入侵项目导入pygame问题

一时脑热,买了一本python书《python变成从入门到实践》开始了我的自学之旅。 真的光是环境配置和IDE的下载都搞得我头大…一路克服困难不断的自我进步,我觉得记录下自己所遇到的一些小问题。 (大佬不要喷我,也请不要嘲笑我,有不好的地方欢迎指教,谢谢!) 遇到的问题:pip 导入的pygame有下波浪线导入失败。 终端(window+r:cmd)使用pip下载pygame python -m pip install --user pygame 后再pycharm使用import pygame报错 解决

Better_well的博客 446

Python游戏开发入门课程(pygame)学习笔记(01)

无

m0_59205095的博客 1347

Pygame入门——游戏基础及插入图片

PygamePygame学习笔记1——游戏基础及添加图片1、游戏最小系统1窗口标题2关闭窗口2、添加内容1添加图片2设置背景颜色3、资源4、预告 学习资料:https://www.bilibili.com/video/BV1bE411p7Ue?p=1,快来给这个前锋教育UP主点个赞???? 视频讲的更全,可以在这里看 【零基础 Python体验课】第四季 pygame游戏开发 Pygam

被一个OIER遗弃的一堆烂代码 2万+

还不懂飞机大战?最细学习笔记--全方位学习Pygame(附源码)

还不懂飞机大战?全网最细学习笔记--全方位学习Pygame

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 2927

【Pygame 学习笔记】4.Transform 图片的操作

上一篇文章,我们讲解了如何导入图片并绘制到屏幕中,这篇文章,我们趁热打铁,继续深入学习如何用pygame的transform对图片进行各种操作。这篇文章需要的资源如下:0.png Sky.jpg给出Pygame基本框架代码,这篇文章将在这部分代码的基础上做更多操作 首先,我们来学习如何对图片进行放大缩小制作一个游戏,我们需要的素材可能与我们需要的大小不同,最常见的就是背景图片不符合窗口大小,这个并不难解决,我们只需要对图片进行缩放即可,我们要将刚刚提供的Sky.jpg绘制到屏幕,但是大小不同,无法填满

leleprogrammer的博客 2456

SpotBugs使用

spotbugs命令行参数解析

javajingling的专栏 2946

工业缺陷检测深度学习方法综述

异常:点异常、 上下文异常和集群异常。点异常:又称为离群值 (outliers)[9], 描述数值上偏离正 常样本的独立数据。与异常相近的概念还包括新颖点(novelty)和分布外数据。上下文异常:同样描述数据点,其数值属于正常范围,但不符合局部上下文规律。集群异常:描述一系列相关数据的集合,集合中的每一个实例的数值在单独考察时都处于正常值域,但集 合整体的相关性特征不服从正常模式。一般的图像异常检测往往仅需区分正常与异常样本,而工业缺陷检测更关注于检测 图像中的异常像素.

2301_80355452的博客 1842

【Pygame 学习笔记】8.精灵

上面这行代码用到了pygame.time.set_timer方法,传入两个参数,第一个是事件,第二个是毫秒数,表示从这行代码开始,每运行多少毫秒触发一次事件,我们这里设置为700,也就是每700毫秒触发一次创建气球的事件,接下来我们在listen中进行事件的监听,在for循环事件遍历中添加这段代码,当程序捕捉到这个事件时,就向self.balloons精灵组添加精灵,用到了add方法,传入的参数就是我们精灵类的一个实例化。再运行程序,可看到,气球就正常地缓缓下落了,控制台输出的帧率,也是非常的接近120。.

leleprogrammer的博客 1693

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 340

Pygame学习笔记 1 —— 初探pygame

pygame学习笔记 1 一、pygame程序基本框架 程序的基本框架如下图所示: # 导入模块 import pygame, sys from pygame.locals import * # pygame 的初始化 pygame.init() pygame.display.set_caption("name") screen = pygame.display.set_mode((640,4...

我有两颗糖 747

GitHub 镜像站点

国内访问 GitHub 有时会遇到速度慢或不稳定的情况,这时 GitHub 镜像站点就能帮上忙。它们通过代理或缓存机制,让你更顺畅地浏览仓库、下载资源甚至克隆代码。希望这些信息能帮你更顺畅地访问 GitHub 资源。下面表格汇总了一些常见的镜像站及其主要用途。

BillKu的博客 6万+

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2118

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

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

小橙子的博客 4248

《UDS协议从入门到精通》系列——图解0x23:通过地址读取内存

如何读取ECU中指定内存地址的数据?图解UDS 0x23服务带你快速上手!!

车载系统攻城狮 2622

pygame 学习笔记(5)创建游戏窗口

本文内容: 创建一个指定大小的游戏窗口 设置窗口的名字以及背景图片 创建游戏窗口 在创建一个窗口之前,我们需要做一些初始化工作: import pygame #导入pygame库 from pygame.locals import * #导入pygame中所有常量 from sys import exit #需要sys中exit()...

白杨木屋 2439

VIIRS-NPP夜间灯光遥感数据下载和预处理

右侧搜索框搜索“按掩膜提取”,提取出夜光影像中国区域。将其转换为Albers积投影和重采样到400m。点击右上角Export,选择shp格式。最后点export导出就行。点击复制按钮,来到这个。,ctrl + v粘贴。将小于0.3的值置为0。下载好月合成产品后,

热爱分享,热爱记录 1万+

Transformer实战(38)——视觉Transformer (Vision Transformer, ViT)

Transformer 在自然语言处理 (NLP) 领域取得了显著成就,在许多不同的任务中都表现出色。在本节中,我们将探索视觉 Transformer (Vision Transformer, ViT) 模型。正如 NLP 领域创建了多种模型一样,视觉领域也开发了多种模型,每种模型都为计算机视觉提供了新的视角。通过本节,将学习如何使用 ViT 等模型进行计算机视觉任务,了解基于 Transformer 的预训练计算机视觉模型的工作原理,以及如何针对特定任务进行微调。

盼小辉丶的博客 2809

python pygame教程_Python——pygame入门实例

本文章是一篇学习笔记。加入了自己的理解。最终实现的是小球的一个移动pygame:就是一个制作游戏的模块,在Python中进行调用即可。import pygame#导入pygame模块pygame.init()#初始化pygamescreen = pygame.display.set_mode((600,400))#设置窗口condition = True #创建游戏结束的条件whil...

weixin_39550172的博客 659

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

pygame学习笔记

pygame基本框架 import sys import pygame pygame.init() size = width, height = 680, 480 screen = pygame.display.set_mode(size) clock=pygame.time.Clock() while True: clock.tick(60)

qq_45622214的博客 316

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pygame 学习笔记(7)添加一个精灵:坦克的移动和旋转

本文内容 精灵 类的使用 Rect 类的使用 实现一个坦克的移动和旋转 效果演示 添加一个静态坦克 我们已经知道如何创建一个游戏窗口,并设置背景图片,还让游戏程序可以对键盘和鼠标进行响应,接着我们需要给游戏添加一个精灵,精灵是游戏开发里的一个概念,比如游戏里面的一个坦克,一棵树木,一个子弹都可以是一个精灵。 pgame.sprite提供了一个最基础的精灵类Sprite,它包含了图片ima...

白杨木屋 4687

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pygame快速入门笔记——飞机大战例子(自用)

这个是黑马程序员视频笔记,记录一下,方便以后查看。 目录pygame 快速入门目标项目准备01. 使用 `pygame` 创建图形窗口小节目标1.1 游戏的初始化和退出1.2 理解游戏中的坐标系案例演练1.3 创建游戏主窗口1.4 简单的游戏循环02. 理解 **图像** 并实现图像绘制代码演练 I —— 绘制背景图像代码演练 II —— 绘制英雄图像理解 `update()` 方法的作用03. 理解 **游戏循环** 和 **游戏时钟**3.1 游戏中的动画实现原理3.2 **游戏循环**游戏的两个.

Ma Sizhou 495

增加小球python,Python——pygame入门实例

本文章是一篇学习笔记。加入了自己的理解。最终实现的是小球的一个移动pygame:就是一个制作游戏的模块,在Python中进行调用即可。impor pygame  #导入pygame模块impor sys   #导入sys模块pygame.init()  #初始化pygamescreen = pygame.display.set_mode((600,400))  #设置窗口while True:...

weixin_42099936的博客 451
上一篇: 【Pygame 学习笔记】2.绘制图形
下一篇: 【Pygame 学习笔记】4.Transform 图片的操作
Leleprogrammer
博客等级 码龄5年 1万+粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值