我正在尝试制作一个基本的游戏,我想知道为什么我在尝试绘制我的精灵时仍然遇到错误?任何帮助将不胜感激。
我的代码:
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'
答案 0 :(得分:1)
您的第一个问题是您需要实际实例化sprite
类。行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)
,这也是有道理的。