您好,登錄后才能下訂單哦!
本篇內容主要講解“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。