Seite 1 von 1
Pygame player datei importieren
Verfasst: Sonntag 8. Februar 2015, 21:32
von N4SONIC
Ich habe eine main datei und eine player datei und die main datei kann die player datei nicht richtig aufrufen.
main.py
Verfasst: Sonntag 8. Februar 2015, 21:33
von N4SONIC
Code: Alles auswählen
import pygame
from player import *
pygame.init()
window = pygame.display.set_mode((800,600))
pygame.display.set_caption("Window")
black = (0,0,0)
white = (255,255,255)
blue = (50,60,200)
green = (85,255,0,85)
yellow = (255,255,85)
red = (255,85,85)
orange = (255,170,0)
FPS = 60
clock=pygame.time.Clock()
player = Player(100,400,300,50,50)
gameLoop=True
while gameLoop:
for event in pygame.event.get():
if (event.type==pygame.QUIT):
gameLoop=False
window.fill(blue)
player.render(window)
clock.tick(FPS)
pygame.display.flip()
pygame.quit()
player.py
Verfasst: Sonntag 8. Februar 2015, 21:34
von N4SONIC
Code: Alles auswählen
import pygame
class Player:
def __init__(self, health, x, y, width, height):
self.health = health
self.x = x
self.y = y
self.width = width
self.height = height
def render(self, window):
pygame.draw.rect(window, black, (self.x, self.y, self.width, self.height))
Re: Pygame player datei importieren
Verfasst: Sonntag 8. Februar 2015, 21:54
von BlackJack
@N4SONIC: Und wo liegt jetzt das konkrete Problem? Bekommst Du eine Ausnahme? Explodiert Dein Rechner? Passiert etwas anderes als Du erwartet hast? Falls ja, was hast Du erwartet? Und was passiert stattdessen?
Re: Pygame player datei importieren
Verfasst: Sonntag 8. Februar 2015, 22:08
von N4SONIC
@BlackJack: Wenn ich die main ausführe dann öffnet sich kurz das fenster und geht wieder zu und dann kommt dieser Error.
"C:\Spiele und Programme\Python\python.exe" "C:/Users/N4SONIC/Desktop/Python Projekte/Test/main.py"
Traceback (most recent call last):
File "C:/Users/N4SONIC/Desktop/Python Projekte/Test/main.py", line 35, in <module>
player.render(window)
File "C:\Users\N4SONIC\Desktop\Python Projekte\Test\player.py", line 12, in render
pygame.draw.rect(window, black, (self.x, self.y, self.width, self.height))
NameError: global name 'black' is not defined
Process finished with exit code 1
Re: Pygame player datei importieren
Verfasst: Sonntag 8. Februar 2015, 22:19
von BlackJack
@N4SONIC: Der Name `black` ist im `player`-Modul ja auch nirgends definiert. Und komm jetzt bloss nicht auf die Idee den aus dem `main`-Modul importieren zu wollen, denn dann hast Du einen zirkulären import und das funktioniert in den seltensten Fällen so wie man sich das vorstellt. Du müsstest also entweder die Farben, oder zumindest `black` in ein weiteres Modul auslagern aus dem sich dann das `main`- und das `player`-Modul die benötigten Farbwerte importieren, oder `Player` in das `main`-Modul verschieben und das `player`-Modul verwerfen.
Bei der Gelegenheit könntest Du dann auch die Namen für Konstante Werte komplett gross schreiben und das mit dem ``*`` beim ``import`` sein lassen.
Es könnte eventuell Sinn machen für `Player` die Klasse `pygame.sprite.Sprite` als Basisklasse zu verwenden. Oder zumindest `x`, `y`, `width`, und `height` durch ein `Rect`-Exemplar zu ersetzen.
Re: Pygame player datei importieren
Verfasst: Sonntag 8. Februar 2015, 22:50
von N4SONIC
Problem gelöst danke
