2011-06-22 7 views
0
from livewires import games, color 

#Creating and validating the pygame screen. 
scrwidth = 640 
scrheight = 480 
fps = 50 
myscr = games.Screen(scrwidth, scrheight) 
#Loading an image into memory to create an image object 
wall_image = games.load_image("wall.jpg", transparent = False) 
myscr.set_background (wall_image) 
#Printing Arbitary Score 
texty = games.Text(value = "Score: 2048321", 
        size = 70, 
        color = color.black, 
        x = 400, 
        y = 30) 
myscr.add(texty) 
myscr.mainloop() 

Pour une raison quelconque, je suis incapable d'imprimer la chaîne de score dans la position que je l'ai assigné à. Quand j'ai fait la même chose sans assigner de variables aux objets donnés, j'ai réussi à le faire avec succès, mais maintenant je ne suis pas en train de l'assigner à une variable.programme Python Debugging pygame

Toute contribution serait appréciée. Merci d'avance.

EDIT: Comme demandé, le code de travail.

from livewires import games, color 

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

wall_image = games.load_image("wall.jpg", transparent = False) 
games.screen.background = wall_image 

score = games.Text(value = 1756521, 
        size = 60, 
        color = color.black, 
        x = 550, 
        y = 30) 
games.screen.add(score) 

games.screen.mainloop() 

Nous y sommes! Code de travail:

from livewires import games, color 

#Creating and validating the pygame screen. 
scrwidth = 640 
scrheight = 480 
fpsy = 50 
games.init(screen_width = scrwidth, screen_height =scrheight, fps = fpsy) 
myscr = games.screen 
#Loading an image into memory to create an image object 
wall_image = games.load_image("wall.jpg", transparent = False) 
myscr.background = wall_image 
#Printing Arbitary Score 
texty = games.Text(value = "Score: 2048321", 
        size = 70, 
        color = color.black, 
        x = 400, 
        y = 30) 
myscr.add(texty) 
myscr.mainloop() 
+0

Pouvez-vous fournir la version du code vous parlez, où vous "avez fait la même chose sans assigner de variables aux objets donnés", et cela a fonctionné? –

+1

pouvez-vous poster le code initial avant d'attribuer des variables, qui a fonctionné? –

+0

Bien sûr, affiché juste sous le code qui ne fonctionne pas. Vérifiez dans une seconde. – Louis93

Répondre

2

Je pense que je sais ce qu'il se passe, si je ne me trompe pas, vous pourriez être en supposant que

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

est la même chose que

scrwidth = 640 
scrheight = 480 
fps = 50 
games.init(scrwidth, scrheight) 

Mais cela ne peut pas le cas, les arguments int regard de l'écran pour les paires nom = valeur sans ordre particulier, si juste paires de valeurs peut ne pas fonctionner. Vous pouvez cependant faire

scrwidth = 640 
scrheight = 480 
fps = 50 
games.init(screen_width=scrwidth, screen_height= scrheight, fps=fps) 
myscr = games.screen 

Je devine depuis votre taille n'a pas été réglée correctement et x, y dans le texte sont des variables absolues, votre texte peut être foiré

+0

Je reçois cette maintenant: TypeError: __init __() a un argument mot-clé inattendu 'screen_width' – Louis93

+0

Mon mauvais, il devrait être init pas écran, pourquoi avez-vous supprimé l'init? Remplacez donc myscr = jeux.Screen (scrwidth, scrheight) par games.init (largeur_écran = scrwidth, screen_height = scrheight, fps = fps), puis ajoutez myscr = jeux.screen –

+0

J'ai compris, merci. J'ai fait la même chose, et il y a eu quelques petites choses que je n'ai pas apprises à saisir correctement (comme l'arrière-plan), mais tout va bien maintenant. J'ai placé la copie de travail dans la question si vous voulez la voir encore merci. – Louis93