📜  Pygame – 创建精灵

📅  最后修改于: 2022-05-13 01:55:27.953000             🧑  作者: Mango

Pygame – 创建精灵

Sprite是对象,具有高度、宽度、颜色等不同属性,以及向右、向左、向上和向下移动、跳跃等方法。在本文中,我们希望创建一个用户可以控制的对象对象并使用箭头键向前、向后、向上和向下移动它。

首先看看我们的第一类,即定义我们的精灵的类,我们将称该类为精灵。这个 Sprite 类定义了它的位置(x 和 y 坐标)、对象的尺寸、颜色等。首先,我们将调用我们的__init__()方法。它被称为类的构造函数。

示例:创建 Sprite 类

Python3
import pygame
  
# GLOBAL VARIABLES
COLOR = (255, 100, 98)
SURFACE_COLOR = (167, 255, 100)
WIDTH = 500
HEIGHT = 500
  
# Object class
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()
  
        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)
  
        pygame.draw.rect(self.image,
                         color,
                         pygame.Rect(0, 0, width, height))
  
        self.rect = self.image.get_rect()


Python3
import pygame
import random
  
# GLOBAL VARIABLES
COLOR = (255, 100, 98)
SURFACE_COLOR = (167, 255, 100)
WIDTH = 500
HEIGHT = 500
  
# Object class
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()
  
        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)
  
        pygame.draw.rect(self.image,color,pygame.Rect(0, 0, width, height))
  
        self.rect = self.image.get_rect()
  
  
pygame.init()
  
RED = (255, 0, 0)
  
size = (WIDTH, HEIGHT)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Creating Sprite")
  
all_sprites_list = pygame.sprite.Group()
  
object_ = Sprite(RED, 20, 30)
object_.rect.x = 200
object_.rect.y = 300
  
all_sprites_list.add(object_)
  
exit = True
clock = pygame.time.Clock()
  
while exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit = False
  
    all_sprites_list.update()
    screen.fill(SURFACE_COLOR)
    all_sprites_list.draw(screen)
    pygame.display.flip()
    clock.tick(60)
  
pygame.quit()


现在,已经创建了类,我们可以从类中创建对象。它使我们能够使用相同的类创建所需数量的对象。现在我们将使用我们的类 Sprite 创建一个对象。



句法:

默认情况下,对象将位于 (0,0) 位置,即屏幕的左上角。我们可以更改对象的 x 和 y 属性。

句法:

我们可以定义 n 个想要创建的精灵,但为了便于理解,让我们简化一下。在这里,我们创建了一个特定尺寸的矩形精灵,我们可以在其上执行不同的操作来对精灵执行前进、后退、跳跃、慢速、加速等。

示例:创建精灵

蟒蛇3

import pygame
import random
  
# GLOBAL VARIABLES
COLOR = (255, 100, 98)
SURFACE_COLOR = (167, 255, 100)
WIDTH = 500
HEIGHT = 500
  
# Object class
class Sprite(pygame.sprite.Sprite):
    def __init__(self, color, height, width):
        super().__init__()
  
        self.image = pygame.Surface([width, height])
        self.image.fill(SURFACE_COLOR)
        self.image.set_colorkey(COLOR)
  
        pygame.draw.rect(self.image,color,pygame.Rect(0, 0, width, height))
  
        self.rect = self.image.get_rect()
  
  
pygame.init()
  
RED = (255, 0, 0)
  
size = (WIDTH, HEIGHT)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Creating Sprite")
  
all_sprites_list = pygame.sprite.Group()
  
object_ = Sprite(RED, 20, 30)
object_.rect.x = 200
object_.rect.y = 300
  
all_sprites_list.add(object_)
  
exit = True
clock = pygame.time.Clock()
  
while exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit = False
  
    all_sprites_list.update()
    screen.fill(SURFACE_COLOR)
    all_sprites_list.draw(screen)
    pygame.display.flip()
    clock.tick(60)
  
pygame.quit()

输出: