Sprite sheet 创建一个 window 的图像表面
Sprite sheet creating a window of the image surface
我正在尝试在 pygame
/python
中重新创建 chrome 无互联网恐龙游戏。但是每当我 运行 它而不是创建主文件 window 时,它都会从 sprite sheet 文件创建图像 window。不知道我在这里做错了什么。
主文件:
# importing the other file where the spritesheet class is
from SpriteSheet import SpriteSheet
import pygame
pygame.init()
SW = 500
SH = 500
win = pygame.display.set_mode((SW, SH))
SPRITE_SHEET = pygame.image.load('sheet.png')
# mainloop
run = True
while run:
# checking for clicking the x button
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# cropping the image from the spritesheet
spritesheet = SpriteSheet(SPRITE_SHEET)
image = spritesheet.get_image(
848, 2, 44, 47, (255, 255, 255))
win.blit(image, (0, 0))
精灵sheet文件:
import pygame
# creating the class
class SpriteSheet(object):
SpriteSheet = None
# getting the spritesheet
def __init__(self, sheet):
self.SpriteSheet = sheet
# cropping the image
def get_image(self, x, y, width, height, color):
image = pygame.display.set_mode([width, height])
image.blit(self.SpriteSheet, (0, 0), (x, y, width, height))
image.set_colorkey(color)
return image
instead of creating the main file window it creates the image window
没有。没有什么比图像更好的了 window.
与显示关联的 pygame.Surface
对象的内容就是您在 window 中看到的内容。
win = pygame.display.set_mode((SW, SH))
首先你 blit SPRITESHEET
在 image
(在 SpriteSheet.get_image()
)
image.blit(self.SpriteSheet, (0, 0), (x, y, width, height))
现在 image
的内容是 SPRITESHEET
。然后你 blit image
在 win
win.blit(image, (0, 0))
因此显示image
的内容(与SPRITESHEET
相同)。
当你不想在window中看到SPRITESHEET
的内容时,那么你就要去掉
这一行
>win.blit(image, (0, 0))
顺便说一句,pygame wiki 提供了一个很好且完整的 Spritesheet 示例。
我正在尝试在 pygame
/python
中重新创建 chrome 无互联网恐龙游戏。但是每当我 运行 它而不是创建主文件 window 时,它都会从 sprite sheet 文件创建图像 window。不知道我在这里做错了什么。
主文件:
# importing the other file where the spritesheet class is
from SpriteSheet import SpriteSheet
import pygame
pygame.init()
SW = 500
SH = 500
win = pygame.display.set_mode((SW, SH))
SPRITE_SHEET = pygame.image.load('sheet.png')
# mainloop
run = True
while run:
# checking for clicking the x button
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# cropping the image from the spritesheet
spritesheet = SpriteSheet(SPRITE_SHEET)
image = spritesheet.get_image(
848, 2, 44, 47, (255, 255, 255))
win.blit(image, (0, 0))
精灵sheet文件:
import pygame
# creating the class
class SpriteSheet(object):
SpriteSheet = None
# getting the spritesheet
def __init__(self, sheet):
self.SpriteSheet = sheet
# cropping the image
def get_image(self, x, y, width, height, color):
image = pygame.display.set_mode([width, height])
image.blit(self.SpriteSheet, (0, 0), (x, y, width, height))
image.set_colorkey(color)
return image
instead of creating the main file window it creates the image window
没有。没有什么比图像更好的了 window.
与显示关联的 pygame.Surface
对象的内容就是您在 window 中看到的内容。
win = pygame.display.set_mode((SW, SH))
首先你 blit SPRITESHEET
在 image
(在 SpriteSheet.get_image()
)
image.blit(self.SpriteSheet, (0, 0), (x, y, width, height))
现在 image
的内容是 SPRITESHEET
。然后你 blit image
在 win
win.blit(image, (0, 0))
因此显示image
的内容(与SPRITESHEET
相同)。
当你不想在window中看到SPRITESHEET
的内容时,那么你就要去掉
>win.blit(image, (0, 0))
顺便说一句,pygame wiki 提供了一个很好且完整的 Spritesheet 示例。