您好,登录后才能下订单哦!
本篇内容主要讲解“Pygame怎么实现太空射击实战图像精灵”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pygame怎么实现太空射击实战图像精灵”吧!
首先,我们需要一个文件夹来保存我们的组件,这是游戏开发人员用来指代艺术和声音等事物的术语。我简称该文件夹为“img”,并将玩家图像放入其中。
要在游戏中使用此图像,我们需要告诉 Pygame 加载图片文件,这意味着我们需要程序知道文件的位置。根据您使用的计算机类型,这可能会有所不同,并且我们希望能够在任何计算机上运行我们的程序,因此我们需要加载一个名为os
的Python库,然后指定我们的游戏所在的位置:
import pygame import random import os # set up asset folders game_folder = os.path.dirname(__file__)
特殊的 Python 变量__file__
是指保存游戏代码的文件夹,该命令os.path.dirname
会找出该文件夹的路径。如果您使用的是 Windows,则路径可能如下所示:
C:\Users\chris\Documents\python\game.py
不同的操作系统使用不同的方法来描述事物在计算机上的位置。通过使用os.path
命令,我们可以让计算机找出正确的路径是什么(例如,是使用“/”还是“\”)。
现在,我们可以指定我们的“img”文件夹:
import pygame import random import os # set up asset folders game_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的绘制速度。现在,我们准备将 sprite 中的普通绿色方块替换为花哨的玩家图像:
class Player(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) self.image = player_img self.rect = self.image.get_rect() self.rect.center = (WIDTH / 2, HEIGHT / 2)
请注意,我们已经删除了self.image.fill(GREEN)
命令- 我们不再需要用纯色填充它。 get_rect()
仍然可以正常工作,因为它会找出self.image
边界矩形。
现在,如果您运行该程序,您应该看到一个漂亮的小卡通外星人在屏幕上奔跑。但是我们有一个问题 - 一个我们看不到的问题,因为背景目前是黑色的。将底部的命令screen.fill()
更改为其他命令 - 我决定使用BLUE
.现在您可以看到问题:
当计算机上有图像文件时,该文件始终是像素的矩形网格。无论您绘制了什么形状,图像仍然有一个填充“背景”的边框。我们需要做的是告诉Pygame忽略图像中我们不关心的像素。在此图像中,这些像素恰好是黑色的,因此我们可以添加以下内容:
class Player(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) self.image = player_img self.image.set_colorkey(BLACK) self.rect = self.image.get_rect() self.rect.center = (WIDTH / 2, HEIGHT / 2)
set_colorkey()
只是告诉Pygame,当我们绘制图像时,我们要忽略指定颜色的任何像素。现在我们的图像看起来好多了:
到此,相信大家对“Pygame怎么实现太空射击实战图像精灵”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。