All pastes #150321 Raw Edit

Pygame trouble with

public python v1 · immutable
#150321 ·published 2006-08-26 19:03 UTC
rendered paste body
# -*- coding: cp1252 -*-import os, sys, pygamepygame.init()pygame.mixer.init()from time import sleep# RANDOM settings#size = width, height = 700, 700speed = [2, 2]black = 0, 0, 0## AssignmentsSP = 1screen = pygame.display.set_mode((700, 700))background = pygame.Surface(screen.get_size())background = background.convert()background.fill((250, 250, 250))# SOUND LOADINGdef load_sound(name):    class NoneSound:        def play(self): pass    if not pygame.mixer or not pygame.mixer.get_init():        return NoneSound()    fullname = os.path.join('sound', name)    try:        sound = pygame.mixer.Sound(fullname)    except pygame.error, message:            print 'cannot find\load sound: ', fullname            raise SystemExit, message    return sound    # IMAGE LOADINGdef load_ball(name, colorkey=None):    fullname = os.path.join('image', name)    try:        image = pygame.image.load(fullname)    except pygame.error, message:        print 'Cannot load image:', name        raise SystemExit, message    image = image.convert()    if colorkey is not None:        if colorkey is -1:            colorkey = image.get_at((0,0))        image.set_colorkey(colorkey)#RLEACCEL    return image, image.get_rect()# Classesclass crosshair(pygame.sprite.Sprite):    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.image, self.rect = load_ball('crosshair.gif', -1)        self.firing = 0    def update(self):        pos = pygame.mouse.get_pos()        self.rect.midtop = pos        if self.firing:            self.rect.move_ip(5, 10)            def fire(self, target):        if not self.firing:            self.firing = 1            hitbox = self.rect.inflate(-5, -5)            return hitbox.colliderect(target.rect)    def unfire(self):        self.firing = 0        sleep(0.26)        load_sound('cock.wav')class ball(pygame.sprite.Sprite):    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.image, self.rect = load_ball('ball.bmp', -1)        screen = pygame.display.get_surface()        self.area = screen.get_rect()        self.rect.topleft = 10, 10        self.move = 9        self.hit = 0    def update(self):        if self.hit:            self._hit()        else:            self._walk()            self.image = load_ball('ball.bmp')    def _walk(self):        newpos = self.rect.move((self.move, 0))        if self.rect.left < self.area.left or \           self.rect.right > self.area.right: 	            self.move = -self.move 	            newpos = self.rect.move((self.move, 0))##        if not self.area.contains(newpos):##            if self.rect.left < self.area.left or \##                       self.rect.right > self.area.right:##                    self.move = -self.move##                    newpos = self.rect.move((self.move, 0))##            if self.rect.top < self.area.top or \##                       self.rect.bottom > self.area.bottom:##                    self.move = -self.move##        self.rect = newpos    def _hit(self):        if self.hit:            self.image = load_ball('BS1.gif')            sleep(0.25)            self.image = load_ball('BS4.gif')    def punched(self):        if not self.hit:            self.hit = 1            self.original = self.imageallsprites = pygame.sprite.RenderPlain((crosshair(), ball()))def ControllerTick():    for event in pygame.event.get():        if event.type == pygame.QUIT:            load_sound('gameover.wav')            sleep(1.2)            sys.exit()            SP = 0        elif event.type == pygame.MOUSEBUTTONDOWN:            load_sound('M3_Fire.wav')            #FIRE_sound.play()            if crosshair.fire(crosshair(), ball()):                load_sound('bodysplat.wav')                #Bsplatter_sound.play()                ball.punched(ball())        elif event.type == pygame.MOUSEBUTTONUP:            crosshair.unfire(crosshair())def ViewTick():    PS = pygame.Surface    allsprites.update()    screen.blit(background, (0, 0))    screen.draw(allsprites)     <-- changed    pygame.display.flip()def main():    pygame.init()    #screen = pygame.display.set_mode((700, 700))    pygame.display.set_caption('BALL')    pygame.mouse.set_visible(0)##    background = pygame.Surface(screen.get_size())##    background = background.convert()##    background.fill((250, 250, 250))    if pygame.font:        font = pygame.font.Font('4yeostamp.ttf', 40)        text = font.render("Made by lillEkU", 1, (10, 10, 10))        TP = text.get_rect()        background.blit(text, TP)                     #screen.blit(background, (0, 0))    #pygame.display.flip()    B = ball()    CH = crosshair()    #allsprites = pygame.sprite.RenderPlain((crosshair(), ball()))    clock = pygame.time.Clock()    SP = 1    while (SP==1):        clock.tick(60)        if ControllerTick() == 0:            return        ViewTick()#if __name__ == '__main__': main()if SP == 1:    main()------------------------------------------------------END OF CODE------------------------------------------------------ERROR MESSAGE:Traceback (most recent call last):  File "H:\programmer-python\SICKball\ball.py", line 176, in ?    main()  File "H:\programmer-python\SICKball\ball.py", line 172, in main    ViewTick()  File "H:\programmer-python\SICKball\ball.py", line 141, in ViewTick    allsprites.draw(PS,screen)TypeError: draw() takes exactly 2 arguments (3 given)----------------------------------------------------------PS = pygame.Surfaceif i write : allsprites.draw(screen)i get a message saying that "the first argument must be pygame.Surface"