浅谈Python Pygame图像的基本使用

 更新时间:2021年06月15日 14:31:24   作者:咸鱼箘  
今天给大家带来的是关于Python Pygame的相关知识,文章围绕着Pygame图像的基本使用展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

笛卡尔坐标系

游戏离不开坐标,我们来康康pygame中坐标是如何设立的吧~

在这里插入图片描述

窗口左上角坐标(0,0),横轴正向向右,纵轴正向向下

实际效果

碰到边框就返回(其实是小球碰撞实验,我不爱用正经的小球,所以…)

在这里插入图片描述

代码

import pygame,sys

pygame.init()
size = width, height = 600, 400
speed = [1,1]
BLACK = 0, 0, 0
s = pygame.display.set_mode(size)
pygame.display.set_caption("hi 滑稽")

ball = pygame.image.load("img/361.png")
ballrect = ball.get_rect()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    ballrect = ballrect.move(speed[0], speed[1])
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = - speed[0]
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = - speed[1]

    s.fill(BLACK)
    s.blit(ball, ballrect)
    pygame.display.update()

代码说明

碰撞原理

在这里插入图片描述

方法说明

方法 说明
pygame.image.load(filename) 将filename路径下的图像载入游戏,支持JPG、PNG、GIF(非动画)等13种常用图片格式
get_rect() 返回一个覆盖图像的矩形Rect对象
move(x,y) 矩形移动一个偏移量(x,y),即在横轴方向移动x像素,纵轴方向移动y像素,xy为整数
fill(color) 显示窗口背景填充为color颜色,采用RGB色彩体系
blit(src, dest) 将一个图像绘制在另一个图像上,即将src绘制到dest位置上。

载入图片

pygame.init()
size = width, height = 600, 400       #设置了宽高,也可以在pygame.display.set_mode()设置
speed = [1,1]              #速度
BLACK = 0, 0, 0            #颜色黑色
s = pygame.display.set_mode(size)
pygame.display.set_caption("hi 滑稽")
ball = pygame.image.load("img/361.png")  #注意图片路径

ballrect = ball.get_rect()

surface对象和Rect对象

在这里插入图片描述

Rect对象属性

Rect对象有一些重要属性,例如:top,bottom,left,right表示上下左右width,height表示宽度、高度。

在这里插入图片描述

移动

ballrect = ballrect.move(speed[0], speed[1])      #  x1
    if ballrect.left < 0 or ballrect.right > width:    # x2
        speed[0] = - speed[0]
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = - speed[1]

x1:矩形移动一个偏移量(x,y),即在横轴方向移动x像素,纵轴方向移动y像素,xy为整数x2:遇到左右两侧,横向速度取反;遇到上下两侧,纵向速度取反。

到此这篇关于浅谈Python Pygame图像的基本使用的文章就介绍到这了,更多相关Pygame图像的基本使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 高级教程之线程进程和协程的代码解析

    Python 高级教程之线程进程和协程的代码解析

    这篇文章主要介绍了Python 高级教程之线程进程和协程的代码解析,包括使用线程模块的简单示例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 通过Python把学姐照片做成拼图游戏

    通过Python把学姐照片做成拼图游戏

    马上就到毕业季了,你心中的那个学姐,你真的放下了吗?本文将用pygame为你的学姐,定制开发一个拼图游戏,感兴趣的快跟随小编一起学习一下
    2022-02-02
  • python字符串的常用操作方法小结

    python字符串的常用操作方法小结

    这篇文章主要为大家详细介绍了python字符串的常用操作方法,如字符串的替换、删除、截取、复制、连接、比较、查找、分割等,需要的朋友可以参考下
    2016-05-05
  • 用Python3通过PyCharm上传代码到Git服务器的详细过程

    用Python3通过PyCharm上传代码到Git服务器的详细过程

    上传代码到服务器,如果不知道的情况下还用传统的方式上传很麻烦,现在很多IDE都提供上传代码的功能,例如:VSCode,PyCharm等等,本文讲解的是PyCharm,需要的朋友可以参考下
    2024-03-03
  • django template 模板渲染的实现

    django template 模板渲染的实现

    Django 的模板系统旨在使设计人员能够编写 HTML,同时以一种安全和灵活的方式动态显示数据,本文主要介绍了django template模板渲染的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • Python virtualenv虚拟环境实现过程解析

    Python virtualenv虚拟环境实现过程解析

    这篇文章主要介绍了Python virtualenv虚拟环境实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • 如何基于pandas读取csv后合并两个股票

    如何基于pandas读取csv后合并两个股票

    这篇文章主要介绍了如何基于pandas读取csv后合并两个股票,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • pytest利用request fixture实现个性化测试需求详解

    pytest利用request fixture实现个性化测试需求详解

    这篇文章主要为大家详细介绍了pytest如何利用request fixture实现个性化测试需求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09
  • Python3简单爬虫抓取网页图片代码实例

    Python3简单爬虫抓取网页图片代码实例

    这篇文章主要介绍了Python3简单爬虫抓取网页图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 人工智能深度学习OpenAI baselines的使用方法

    人工智能深度学习OpenAI baselines的使用方法

    这篇文章主要为大家介绍了人工智能深度学习OpenAI baselines的使用方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论