我的平局不起作用?

时间:2015-02-14 21:48:14

标签: python pygame

我正在尝试制作一个基本的游戏,我想知道为什么我在尝试绘制我的精灵时仍然遇到错误?任何帮助将不胜感激。

我的代码:

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'

1 个答案:

答案 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),这也是有道理的。