我的抽奖不起作用?

My draw isn't working?

我正在尝试制作一款基本游戏,但我想知道为什么我在尝试绘制精灵时总是出现错误?任何帮助将不胜感激。

我的代码:

import pygame
import sys
import time
from time import sleep
import random

class sprite:
    def __init__(self):
        self.image = pygame.image.load(image1)
        self.x = 50
        self.y = 50
        self.image.fill(255, 255, 0)

    def background(self, surface):
        self.image2 = pygame.image.load(white.png)
        screen.blit(self.image2, (0,0))

    def draw(self, surface):
        screen.blit(self.image, (self.x, self.y))

screen = pygame.display.set_mode((1250, 500))
screen.fill((255,255,255))

sprite=sprite

while True:
    pygame.init()
    pygame.event.get()
    pygame.event.pump
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
           pygame.quit()

    sprite.draw(sprite)

我的错误:

Traceback (most recent call last):
  File "C:/Users/camil/Desktop/Polar Bear/PB.py", line 43, in <module>
    sprite.draw(sprite)
TypeError: draw() missing 1 required positional argument: 'surface'

您的第一个问题是您需要实际实例化 sprite class。 sprite=sprite 行应该类似于 my_sprite = sprite(),然后 my_sprite.draw(sprite) 而不是 sprite.draw(sprite)

但是,您的代码中还有其他问题。

draw函数中,surface参数是不必要的。你应该这样做:

def draw(self):
    screen.blit(self.image, (self.x, self.y))

然后 my_sprite.draw() 而不是 my_sprite.draw(sprite)

或者,您可以这样做:

def draw(self, surface):
    surface.blit(self.image, (self.x, self.y))

my_sprite.draw(screen),这也是有道理的。