Pygame怎么实现太空射击实战图像精灵

发布时间:2022-08-04 14:00:26 作者:iii
来源:亿速云 阅读:126

本篇内容主要讲解“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怎么实现太空射击实战图像精灵

当计算机上有图像文件时,该文件始终是像素的矩形网格。无论您绘制了什么形状,图像仍然有一个填充“背景”的边框。我们需要做的是告诉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怎么实现太空射击实战图像精灵

到此,相信大家对“Pygame怎么实现太空射击实战图像精灵”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. python pygame实现滚动横版射击游戏城市之战
  2. 基于SceneForm如何实现子弹射击

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pygame

上一篇:基于Qt如何实现秒表设计

下一篇:怎么使用React函数组件useContext useReducer自定义hooks

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》