我想用卡片制作游戏,比如Heartstone,但更简单(因为我不是专业程序员)。这只是程序的一部分
import pygame
class Card:
def AdCard(self, AdCard):
self.AdCard = AdCard
def HpCard(self, HpCard):
self.HpCard = HpCard
def Picture(self, Picture):
self.Picture = Picture
def Special(self, Special):
if Special == "Heal":
pass
pygame.init()
display = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
swordsman = Card()
swordsman_picture = pygame.image.load("Swordsman.png").convert()
swordsman.Picture(swordsman_picture)
print(type(swordsman.Picture))
现在的问题是它打印出的那种类型的图片是类' pygame.Surface'但我希望这张照片是精灵。 怎么做。 TNX。
答案 0 :(得分:0)
Sprite
是一个使用Surface
来保持图像并Rect
保持位置和大小的类。
class Card(pygame.sprite.Sprite):
def __init__(self, surface):
pygame.sprite.Sprite.__init__(self)
self.image = surface
self.rect = self.image.get_rect() # size and position
# and then
one_card = Card(swordsman_picture)
(参见Pygame文档:pygame.sprite.Sprite)
或者可能但我之前没有看到这个
one_card = pygame.sprite.Sprite()
one_card.image = swordsman_picture
one_card.rect = one_card.image.get_rect() # size and position
BTW :仅为类名使用“CamelCase”名称 - 使代码更具可读性 - 甚至StackOveflor编辑器也会将Picture
,AdCard
等作为类名称使用蓝色。对于函数和变量,请使用lower_case
名称。
这似乎毫无用处
def Picture(self, Picture):
self.Picture = Picture
swordsman.Picture(swordsman_picture)
你可以在一行中做同样的事情 - 并使其更具可读性。
swordsman.Picture = swordsman_picture