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

这篇具有很好参考价值的文章主要介绍了【Pygame 学习笔记】3.导入图片并绘制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

0.png

pygame怎么导入图片,# Pygame 学习笔记,python,pygame,游戏

我们创建一个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))

pygame怎么导入图片,# Pygame 学习笔记,python,pygame,游戏

 

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

首先,用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)

pygame怎么导入图片,# Pygame 学习笔记,python,pygame,游戏

 


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

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

欢迎订阅专栏~

谢谢支持~文章来源地址https://www.toymoban.com/news/detail-568085.html

到了这里,关于【Pygame 学习笔记】3.导入图片并绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • VScode运行python时pygame无法正常导入

    VScode运行python时pygame无法正常导入

    用vscode运行python代码,需要pygame包,但是pygame下面有波浪线,提示无法正常导入。 以下为导入方法。 https://www.pygame.org/download.shtml 我直接下载了箭头指示的这个包,解压到python目录里即可。3113和3810是下载的两个python版本,我将tar包解压到了python的大文件目录里。 /https://ww

    2024年02月05日
    浏览(13)
  • Python和Pygame绘制自动驾驶和移动机器本地规划器算法

    可视化自动驾驶车辆路径规划和移动机器人中使用的众多不同的本地规划器算法。 该应用程序提供可定制的参数,以更好地了解每种算法的内部工作原理并探索它们的优点和缺点。 它是用 Python 编写的,并使用 Pygame 来渲染可视化。 基类 概率路线图 快速探索随机树 势场 迪

    2024年02月02日
    浏览(18)
  • pygame 绘制爱心函数 r = 1-cos(θ). Tag: python | 图形界面 | GUI

    pygame 绘制爱心函数 r = 1-cos(θ). Tag: python | 图形界面 | GUI

    最近做数学题,遇到一个“爱心函数” 即 r = 1 - cos(θ) . ——极坐标下函数表达式 用参数方程表示即: x = (1 - cos(θ)) * cos(θ) y = (1 - cos(θ)) * sin(θ) 放个函数图像 函数详情点这里 代码原理很简单,采用极坐标的方式,使用一个变量 t(即 θ ),每次循环自增(充当计时器/角度

    2024年02月13日
    浏览(13)
  • Pygame 教程(3):绘制图形

    Pygame 教程(3):绘制图形

    本章,你将学习如何在 Pygame 中绘制图形。 上一章:重要的概念及对象 下一章:图像传输和绘制文本 抗锯齿(anti-aliasing,简称 AA)是一种消除显示器输出的画面中图物边缘出现凹凸锯齿的技术。实现抗锯齿效果需要更多的计算时间,因此在进行高质量绘制的同时,也会带来

    2024年02月06日
    浏览(11)
  • chatgpt赋能python:Python怎么下载Pygame?——一位10年编程经验工程师的建议

    Python是一种高级编程语言,它的易用性和广泛应用使得它成为了很多人学习编程的选择。而Pygame则是Python的一个库,它专门用于开发游戏和多媒体应用程序。在本篇文章中,我们将介绍如何下载Pygame以及它的一些常见问题和建议。 要下载Pygame,有两种方法可供选择: 方法一

    2024年02月08日
    浏览(14)
  • 学习 Python 之 Pygame 开发坦克大战(二)

    学习 Python 之 Pygame 开发坦克大战(二)

    坦克大战游戏包含很多个物体,现在要对这些物体进行总结 类名 包含的操作 包含的属性 敌方坦克类 射击,移动,显示 生命,速度,伤害,方向,类型 我方坦克类 射击,移动,显示 生命,速度,伤害,方向,装甲,等级 子弹类 移动,显示 方向,伤害,发射源,速度 墙壁

    2024年02月02日
    浏览(20)
  • 学习 Python 之 Pygame 开发坦克大战(一)

    学习 Python 之 Pygame 开发坦克大战(一)

    Pygame是一组Python用于编写视频游戏的模块。Pygame在优秀的SDL库上添加了功能。可以让我们使用python语言创建功能齐全的游戏和多媒体程序,并且Pygame是高度可移植的,几乎可以在所有平台和操作系统上运行。 官方文档 函数名称 作用 返回值 pygame.display.init() 初始化展示模块

    2024年02月02日
    浏览(14)
  • 学习 Python 之 Pygame 开发魂斗罗(十五)

    学习 Python 之 Pygame 开发魂斗罗(十五)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(十四)中,我们加入桥和修复了一些问题,在这篇博客中我加入boss。 下面是图片的素材和源码,我把源码也放到了网盘 链接:https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwd=hdly 提取码:hdly 网盘中,代码如下 Teach是博客中发的代码,每

    2024年02月03日
    浏览(37)
  • 学习 Python 之 Pygame 开发魂斗罗(十六)

    学习 Python 之 Pygame 开发魂斗罗(十六)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(十五)中,我们加入了boss,至此,魂斗罗的主体部分已经完成了,接下来就是在其他地方加入一点敌人,设置进场动画,胜利动画,失败动画和音效了,在这篇博客中,我们加入音效和加入进场动画。 下面是图片的素材和源码,

    2024年02月05日
    浏览(17)
  • 学习 Python 之 Pygame 开发魂斗罗(三)

    学习 Python 之 Pygame 开发魂斗罗(三)

    在上次的博客学习 Python 之 Pygame 开发魂斗罗(二)中,我们完成了角色的创建和更新,现在具体实现一下更新函数中的角色状态函数 下面是图片的素材 链接:https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwd=hdly 提取码:hdly 1. 角色站立 在写角色站立函数时,先把其他状态函数注释了

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包