Pygame:创建一个不规则形状的精灵?

时间:2017-06-15 15:06:43

标签: python

我正在尝试在pygame,Python 2.7中创建一个生存游戏。我正在使用面向课程的程序,但我不知道如何使用Surface来制作树。是否有可以创建这种图像的功能?

这是我的代码:

class Tree(pygame.sprite.Sprite):
    global green
    global brown
    def __init__(self):
        super(Tree,self).__init__()
        self.image=pygame.Surface([20, 20])
        self.image.fill(green)
        self.rect=self.image.get_rect()

2 个答案:

答案 0 :(得分:2)

Surface允许您在屏幕上绘制和表示图像: https://www.pygame.org/docs/ref/surface.html http://www.cogsci.rpi.edu/~destem/gamedev/pygame.pdf

一旦有了更多信息,我会更新答案。你想画什么树? 它可以像绿色圆圈和棕色矩形树干一样简单,或者您需要精细的分形图像吗?

以下代码将为您提供一棵圣诞树:

def draw_a_tree(surface, leaf_size, (x,y), is_trunk=True):
    if is_trunk:
        rect = pygame.rect.Rect((x - 25, y - 30), (50,60))
        pygame.draw.rect(surface, (102,68,34), rect)
        draw_a_tree(surface, leaf_size, (x, y-30), False)
    elif leaf_size <= 2:
        return
    else:
        pygame.draw.polygon(surface, (0,200,0),((x-leaf_size/2,y),(x+leaf_size/2,y),(x,y-(2*leaf_size/3))))
        draw_a_tree(surface, 3*leaf_size/4, (x, y-leaf_size/3), False)

来源:http://helloworldbookblog.com/12-days-of-python-day-6/

答案 1 :(得分:0)

如果你想要一张树的普通图像,你可以使用blit:

image = pygame.image.load("tree.jpg")
screen = pygame.display.set_mode((500, 500))
screen.blit(image, (x1, y1))