pygame入门学习(四)位图的使用

这篇具有很好参考价值的文章主要介绍了pygame入门学习(四)位图的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pygame入门学习(四)位图的使用,pygame,python,pygame

大家好!我是码银🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

载入图片

pygame.image.load( ),Pygame 可以通过pygame.image.load( )函数处理位图文件。

大致可以支持以下文件:JPG、PNG、GIF、BMP、PCX、TGA、TIF、LBM、PBM、PGM、PPM、XPM。

1、加载背景图片主要有两行代码:

asurf = pygame.image.load('test.jpg').convert()
screen.blit(asurf, (0, 0))#加载背景图片

下面来看一下这段代码在整体代码中的位置:

import pygame
from pygame.locals import*
import sys


pygame.init()

screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("图片")
asurf = pygame.image.load('test.jpg').convert()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
    screen.blit(asurf, (0, 0))
    pygame.display.update()

pygame入门学习(四)位图的使用,pygame,python,pygame

2、背景图片上显示另一幅图片

import pygame
from pygame.locals import*
import sys


pygame.init()

screen = pygame.display.set_mode((751,521))
pygame.display.set_caption("图片")
asurf = pygame.image.load('test.png').convert()
moon = pygame.image.load('moon.png').convert()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
    screen.blit(asurf, (0, 0))
    screen.blit(moon, (100,200))
    pygame.display.update()

pygame入门学习(四)位图的使用,pygame,python,pygame

可以看到背景图是一张“星星”的图片,左下角贴了一张月球的图片。

screen.blit(asurf, (0, 0))
screen.blit(moon, (100,200))

这段代码按照这个顺序,那么月球就会在背景图的上方显示,代码的先后顺序代表着图片的覆盖关系。

下面部分,本想控制月球移动的,但是图片太大,于是随找了一个小的图片进行测试。

控制图片移动

先看代码

import pygame
import sys

# 初始化Pygame
pygame.init()

# 设置窗口大小和标题
window_width = 800
window_height = 600
window_title = "图片移动示例"
screen = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption(window_title)

# 加载图片
image_path = "brick.png"
image = pygame.image.load(image_path)
image_rect = image.get_rect()

# 设置初始位置
image_rect.x = 0
image_rect.y = 0

# 游戏循环
while True:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

            # 移动图片
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and image_rect.x > 0:
        image_rect.x -= 1
    if keys[pygame.K_RIGHT] and image_rect.x < window_width - image_rect.width:
        image_rect.x += 1
    if keys[pygame.K_UP] and image_rect.y > 0:
        image_rect.y -= 1
    if keys[pygame.K_DOWN] and image_rect.y < window_height - image_rect.height:
        image_rect.y += 1

        # 绘制图片和窗口边界
    screen.fill((0, 0, 0))  # 填充背景色为黑色
    screen.blit(image, image_rect)  # 在指定位置绘制图片
    pygame.display.update()  # 更新显示内容

如何去控制图片移动,这部分代码是与上一篇文章(pygame学习(三)——支持多种类型的事件-CSDN博客)相结合起来 的,将图片与键盘事件相结合,以此来控制图片的移动。

pygame键盘控制图片移动

image.get_rect()方法

 是 Pygame 中的一个方法,用于获取图像的矩形区域。这个矩形区域表示图像在屏幕上的位置和大小。

当你加载一个图像到 Pygame 中时,你可以使用 get_rect() 方法来获取该图像的矩形对象。这个矩形对象具有 x 和 y 属性,分别表示矩形左上角的坐标,以及 width 和 height 属性,分别表示矩形的宽度和高度。

例如上面代码中设置图片的初始位置:

# 设置初始位置
image_rect.x = 0
image_rect.y = 0

图片移动

        # 移动图片
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and image_rect.x > 0:
    image_rect.x -= 1
if keys[pygame.K_RIGHT] and image_rect.x < window_width - image_rect.width:
    image_rect.x += 1
if keys[pygame.K_UP] and image_rect.y > 0:
    image_rect.y -= 1
if keys[pygame.K_DOWN] and image_rect.y < window_height - image_rect.height:
    image_rect.y += 1

这段代码是使用Pygame库来控制图片在屏幕上的移动。具体来说,它通过检测用户的键盘输入来移动一个图片对象。以下是这段代码的总结:

  • 获取按键状态: 使用pygame.key.get_pressed()函数来获取当前所有按键的状态。

  • 图片移动逻辑:

    • 如果用户按下左键,并且图片的x坐标大于0,则将图片的x坐标减少1,使图片向左移动。
    • 如果用户按下右键,并且图片的x坐标小于屏幕宽度减去图片宽度,则将图片的x坐标增加1,使图片向右移动。
    • 如果用户按下上键,并且图片的y坐标大于0,则将图片的y坐标减少1,使图片向上移动。
    • 如果用户按下下键,并且图片的y坐标小于屏幕高度减去图片高度,则将图片的y坐标增加1,使图片向下移动。

既然都看到这里啦,点点赞吧😁,欢迎关注:

pygame入门学习(四)位图的使用,pygame,python,pygame文章来源地址https://www.toymoban.com/news/detail-821543.html

到了这里,关于pygame入门学习(四)位图的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Pygame事件处理机制简介-慕课的python游戏开发入门02

    目录 首先解释几个问题: 1、事件处理需求主要有以下几个方面: 2、Pygame事件队列 3、Pygame事件 4、事件类型及属性  5、事件处理的重要函数  6、键盘事件 7、鼠标事件 8、处理事件函数 9、操作事件队列 10、生成事件 其次给出代码段,有利于大家对其进行学习和分析 最后进

    2024年02月06日
    浏览(89)
  • Python学习笔记-Pygame

    目录 一、Pygame概述 1.安装Pyganme 2.Pygame常用模块介绍 2.1 display模块常用方法 2.2 pygame.event模块常用方法 2.3 Surface对象的常用方法 二、问题汇总 1.窗体问题 1.1 添加死循环之后出现窗体未响应。 记述关于Pyganme开发的基本知识。 Pygame是跨平台的python模块,转为电子游戏设计(包含

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

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

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

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

    2024年02月02日
    浏览(49)
  • Python 学习之路:python3中pygame解决中文显示

            这篇文章主要介绍python3中pygame解决中文显示问题,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。   1.实例代码展示: 2.实例运行效果: 3.路径和字体设置:         需要自己下载好字体,放置一个指定

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

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

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

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

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

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

    2024年02月03日
    浏览(56)
  • python | 基础学习(六)pygame游戏开发:飞机大战

    pygame 模块,转为电子游戏设计 $ sudo pip3 install pygame windows: pip install pygame (1)新建项目 飞机大战 (2)新建文件 pygame.py (3)建立游戏窗口: ①pygame的初始化和退出 pygame.init() :导入并初始化所有pygame模块,使用其他模块之前,必须先调用init方法。 pygame.quit() :卸载所有

    2024年02月08日
    浏览(56)
  • 【python】 pygame学习示例 --飞机大战小游戏制作

    python版本:3.8.5 所需模块:pygame random os pygame版本:20.1 开发环境:pycharm专业版 硬件环境:win11 8G内存以上 使用python的第三方库–pygame 制作飞机大战小游戏 小游戏的内容包括: 玩家player的移动 子弹的发射 陨石的随机掉落(包括旋转 大小 下落角度) 玩家 子弹 陨石的碰撞交互

    2024年02月04日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包