2015-11-19 1 views
0

Je suis un débutant et j'ai été mis au défi de faire un jeu "Simon dit". Cependant, je ne peux pas faire apparaître 'yellow_tile' sur l'écran dans le code ci-dessous. Qu'est-ce que je rate. Je sais que ça doit être quelque chose de très élémentaire, mais je suis coincé.Ajouter un Sprite à l'écran en pygame

Merci.

code (sous commentaire «créer des tuiles):

# Simon Says 
# displays sequences of sounds and/or colors which the user has to repeat 

from livewires import games, color 
import random 

# initialise screen 
games.init(screen_width = 640, screen_height = 480, fps = 50) 

class Game(object): 
    """A sequence repeat game""" 
    sequence_count = 1 
    score = 0 

    def __init__(self): 
     """Initialize Game object""" 

     # create key 
     self.menu_title = games.Text(value = "Key", 
            size = 25, 
            color = color.white, 
            top = 5, 
            left = games.screen.width - 100, 
            is_collideable = False) 
     self.menu_choice0 = games.Text(value = "0 - Quit", 
          size = 20, 
          color = color.white, 
          top = self.menu_title.bottom + 5, 
          left = games.screen.width - 120, 
          is_collideable = False) 
     self.menu_choice1 = games.Text(value = "1 - Yellow", 
          size = 20, 
          color = color.yellow, 
          top = self.menu_choice0.bottom + 5, 
          left = games.screen.width - 120, 
          is_collideable = False) 
     self.menu_choice2 = games.Text(value = "2 - Red", 
          size = 20, 
          color = color.red, 
          top = self.menu_choice1.bottom + 5, 
          left = games.screen.width - 120, 
          is_collideable = False) 
     self.menu_choice3 = games.Text(value = "2 - Blue", 
          size = 20, 
          color = color.blue, 
          top = self.menu_choice2.bottom + 5, 
          left = games.screen.width - 120, 
          is_collideable = False) 
     self.menu_choice4 = games.Text(value = "4 - Green", 
             size = 20, 
             color = color.green, 
             top = self.menu_choice3.bottom + 5, 
             left = games.screen.width - 120, 
             is_collideable = False) 

     games.screen.add(self.menu_title) 
     games.screen.add(self.menu_choice0) 
     games.screen.add(self.menu_choice1) 
     games.screen.add(self.menu_choice2) 
     games.screen.add(self.menu_choice3) 
     games.screen.add(self.menu_choice4) 

     # add scrolling text at bottom of screen 
     self.instructions = games.Text(value = "Repeat the sequence by entering the " 
               "corresponding number.", 
               size = 20, 
               color = color.white, 
               x = games.screen.width/2, 
               bottom = games.screen.height - 2) 

     games.screen.add(self.instructions) 

     # create score 
     self.score = games.Text(value = 0, 
           size = 30, 
           color = color.white, 
           top = 5, 
           left = 10, 
           is_collideable = False) 
     games.screen.add(self.score) 


     # create tiles 
     self.yellow_tile = Yellow(game = self, x = games.screen.width/4, 
            y = games.screen.height/4) 
     games.screen.add(self.yellow_tile) 

    def play(self): 
     """Play game""" 
     # load and set background 
     black_background = games.load_image("blackbackground.jpg", transparent = False) 
     games.screen.background = black_background 
     games.screen.mainloop() 


class Yellow(games.Sprite): 
    """The yellow square""" 
    sound = games.load_sound("thrust.wav") 
    image = games.load_image("yellow_sq.bmp") 
    def __init__(self, game, x, y): 
     """Initialize yellow sprite""" 
     super(Yellow, self).__init__(image = Yellow.image, x = x, y = y) 
     self.game = game 




def main(): 
    sequence = Game() 
    sequence.play() 

main() 

Répondre

0

La question n'a pas été que le Sprite n'a pas été ajouté à l'écran, mais que l'image utilisée n'apparaissait pas (pour des raisons que je n'ai pas encore enquêter).

D'autres images, connues pour être bonnes, apparaissent comme elles le devraient lorsqu'elles sont entrées dans le même code.

Ceci est une leçon douloureuse! Vérifiez tout.