转向图片精灵

彩色矩形很好 - 它们是一个好的开始,并确保你的游戏基本工作,但迟早你会想要为你的精灵使用一个很酷的宇宙飞船图像或角色。这引出了第一个问题:在哪里获得游戏资源。

获取图片资源

当你需要为你的游戏添加图片资源时,你有3个选择:

自己制作
找一位美工为你制作
使用互联网上已有的图片资源
在本课中,将使用图像“p1_jump.png”:

管理游戏资源

首先,需要一个文件夹img来保存游戏资源,然后将图像放入其中。

要在游戏中使用此图像,需要让Pygame加载图片文件,这意味着需要程序知道文件的位置。根据使用的计算机类型,这可能会有所不同,希望能够在任何计算机上运行程序,因此需要导入一个名为os的Python库。

 import pygameimport randomimport os# set up asset foldersgame_folder = os.path.dirname(__file__)

特殊的Python变量__file__指的是当前代码文件所在的文件夹,函数os.path.dirname会获得该文件夹的路径。例如

/Users/chris/Documents/gamedev/tutorials/1-3 sprite example.py

如果使用的是Windows,路径可能如下所示:

C:\Users\chris\Documents\python\game.py

不同的操作系统使用不同的方式来描述计算机上的位置。通过使用os.path命令,可以让计算机找出正确的路径。

 import pygameimport randomimport os# set up asset foldersgame_folder = os.path.dirname(__file__)img_folder = os.path.join(game_folder, 'img')player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert()

现在已经加载了图像,pygame.image.load()并且已经确保使用convert(),这将通过将图像转换为在屏幕上绘制更快的格式来加速Pygame的绘制。现在准备用精美的玩家图片形象替换精灵中的普通绿色方块:

class Player(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)self.image = player_imgself.rect = self.image.get_rect()self.rect.center = (WIDTH / 2, HEIGHT / 2)

请注意,已经删除了命令self.image.fill(GREEN)- 不再需要填充纯色。

现在,如果你运行该程序,你应该看到一个漂亮的小卡通外星人在屏幕上运行。但是遇到了一个问题:
目前无法看到,因为背景目前是黑色的。
用screen.fill(BLUE)将背景改为蓝色。现在可以看到问题:

当您在计算机上有图像文件时,该文件始终是矩形像素网格。无论你绘制什么样的形状,仍然会有像素边框填充图像的“背景”。需要做的是告诉Pygame忽略不关心的图像中的像素。在此图像中,这些像素恰好是黑色,因此可以添加以下内容:

class Player(pygame.sprite.Sprite):def __init__(self):pygame.sprite.Sprite.__init__(self)self.image = player_imgself.image.set_colorkey(BLACK)self.rect = self.image.get_rect()self.rect.center = (WIDTH / 2, HEIGHT / 2)

set_colorkey()只是告诉Pygame,当绘制图像时,要忽略指定颜色的任何像素。现在图像看起来好多了:

pygame图片精灵相关推荐

  1. 第3课pygame图片精灵

    1.图片精灵 因为在这个游戏当中看到的都是很漂亮的图形或图片. 这个首先都是由美工给开发出来各种图像的资源. 导入资源图片,加载到精灵. 定义一个pygame.sprite.Sprite.init(s ...

  2. 基于pygame 图片多边形坐标获取

    基于pygame 图片多边形坐标获取 简介 视频效果预览 一.取坐标点 draw.py 二.检测生成的坐标点是否正确 test.py 简介 做目标检测的时候,设置检测区域可以有效减少误识别.之前画区域 ...

  3. 图片精灵快速定位工具-spritecow

    声明 原文内容转载自简书,作者是squidbrother,链接地址是: https://www.jianshu.com/p/eb3e505238d1 前言 最近在练习做NodeJs + VueJs ( ...

  4. Babylongjs-高度图,天空盒,图片精灵及K帧动画

    我们想把村庄建在山谷里.可以从网格创建山丘,但是还有另一种方法可以为地面网格添加垂直高度.这是使用高度图来实现的,该高度图使用灰色阴影来确定地面的高度.白色区域最高,黑色最低.这个简单的高度图: 中间 ...

  5. CSS Sprites(CSS图片精灵、雪碧图)看这里就够了

    CSS Sprites是什么 CSS Sprites是一种网页图片应用处理方式. 又被解释为: CSS精灵 CSS图像拼合 CSS贴图定位 CSS图片精灵 CSS雪碧图 图片合成技术 CSS Spri ...

  6. 使用图片精灵优化前端 减少http请求

    所谓的图片精灵(CSS sprite)其实就是把几张图拼成一张图而已.它提供了一种把很多小图片拼成一张大一些的图片从而在低并发的浏览器上达到快速传输并呈现内容的目的. 大多数网站会做跨页面的图片精灵. ...

  7. html精灵图的hover状态,css图片精灵图标怎么使用?

    css精灵图(sprite)直译为"CSS精灵",也被称为通常被解释为"CSS图像拼合"."CSS贴图定位"或"CSS图片精灵&q ...

  8. pygame - 图片移动

    目录 代码段 效果展示 代码段 import sys import pygame pygame.init() # 使用pygame之前必须初始化LENGTH = 1000 # 主屏窗口长度 WIDTH ...

  9. css基础:样式之定位、样式之隐藏、二级菜单、多个列表转表格、图片精灵技术

    <html lang="en"> <head>     <meta charset="UTF-8">     <tit ...

最新文章

  1. 450刀的eGPU vs 谷歌Colab,谁更划算?
  2. mysql 主从 问题_Mysql主从复制的问题与解决
  3. Java Socket 编程
  4. hyper-V 检查点
  5. VTK:超流线用法实战
  6. javaweb分页查询oracle,JavaWeb项目 利用Oracle数据库实现分页查看细讲
  7. ssl2863-石子合并【dp练习】
  8. Arduino笔记-呼吸流水灯
  9. 最值得入手的新旗舰来了:性价比极高
  10. opencv-api matchShapes
  11. 专业 英语 心智 口才
  12. mqtt消息队列安装并启用启用认证(客户端密码模式)
  13. Adobe flash builder 4 不生效的序列号说明及解決方法
  14. 旧手机改造成web服务器并实现内网穿透
  15. 阴阳师服务器维护3月25日,阴阳师3月25日更新内容-阴阳师3月25日更新内容介绍_牛游戏网...
  16. double浮点数转字符串算法
  17. Dolby fMP4视频seek后卡顿问题分析
  18. PDF文件怎么插入空白页面
  19. AXI - 4KB边界
  20. 如何用快捷键关闭计算机,电脑如何快捷键关机

热门文章

  1. 众安在线荣获第十届中国证券金紫荆“最佳投资者关系上市公司”奖
  2. 凭什么杀程序员祭天?
  3. 这项AR技术将你活生生地“解剖”给别人看
  4. PLC控制气缸,如何使用二位五通和三位五通控制电磁阀控制
  5. 无效的源发行版,解决方案
  6. 【方案】去哪儿网徐磊:如何利用开源技术构建日处理130亿+的实时日志平台?...
  7. dataTables国际化
  8. 快嘴雅虎通群发 官方
  9. MobaXterm中文版
  10. 微软“咸鱼翻身”:股价沉沦17年后创历史新高