2017-04-21 4 views
-1

sehen, also habe ich versucht, scrollenden Hintergrund mit Pygame hinzuzufügen, und ich habe getan, was this guy auf eine andere Frage beantwortet hat. und leider kann ich nur 1 der Hintergründe scrollen sehen. Hier ist, wie es aussieht:
enter image description herePygame - Kann nur einen scrollenden Hintergrund

Hauptdatei (wo bg Klasse vorhanden)

#!/usr/bin/python 
VERSION = "0.1" 
import os, sys, player 
from os import path 

try: 
    import pygame 
    from pygame.locals import * 
except ImportError, err: 
    print 'Could not load module %s' % (err) 
    sys.exit(2) 

# main variables 
WIDTH, HEIGHT, FPS = 700, 400, 30 

# initialize game 
pygame.init() 
screen = pygame.display.set_mode((WIDTH,HEIGHT)) 
pygame.display.set_caption("FlappyTroll - Python2.7") 

# background 
background = pygame.Surface(screen.get_size()) 
background = background.convert() 
background.fill((255,255,255)) 

img_dir = path.join(path.dirname(__file__), 'img') 
class Background(pygame.sprite.Sprite): 
    def __init__(self, image_file, location): 
     pygame.sprite.Sprite.__init__(self) 
     self.width = WIDTH 
     self.height = HEIGHT 
     self.image = pygame.image.load(path.join(img_dir,image_file)).convert_alpha() 
     self.image = pygame.transform.scale(self.image,(self.width,self.height)) 
     self.rect = self.image.get_rect() 
     #self.rect.left, self.rect.top = location 
     self.rect.x, self.rect.y = location 
     self.speedx = 5 
    def update(self): 
     self.rect.x -= self.speedx 
     if self.rect.x <= -self.width: 
      self.rect.x = WIDTH 

bg = Background('FlappyTrollbg.jpg', [0,0]) 
bg2 = Background('FlappyTrollbg.jpg', [WIDTH,0]) 

# blitting 
screen.blit(background,(0,0)) 
pygame.display.flip() 

# clock for FPS settings 
clock = pygame.time.Clock() 


def main(): 
    all_sprites = pygame.sprite.Group() 
    creature = pygame.sprite.Group() 
    creature.add(player.FlappyTroll()) 
    # variable for main loop 
    running = True 
    # init umbrella 
    # event loop 
    while running: 
     clock.tick(FPS) 
     for event in pygame.event.get(): 
      if event.type == pygame.QUIT: 
       running = False 


    # gets_hit = pygame.sprite.spritecollide(umb, all_sprites, True) 
    # if gets_hit: 
    #  newDrop() 

     #screen.blit(background,(0,0)) 
     bg.update() 
     bg2.update() 
     screen.fill([255, 255, 255]) 
     screen.blit(bg.image, bg.rect) 
     screen.blit(bg2.image, bg.rect) 
     # clear 

     # update 
     creature.update() 

     # draw 
     creature.draw(screen) 

     # flip the table 
     pygame.display.flip() 
    pygame.quit() 

if __name__ == '__main__': 
    main() 

Antwort

-1

Problem

Gut gelöst, nachdem er eine Weile darüber nachzudenken, was .blit() funktioniert, i Facepalmed so hart, dass eine neue Dimension erstellt wurde ... Alles, was ich tun musste, war, beide Bilder in
bgs = pygame.sprite.Group() und dannzu setzenbgs.draw(screen) sie. enter image description here

Verwandte Themen