Pygame и классы - PullRequest
       15

Pygame и классы

3 голосов
/ 31 января 2020

Так что я делаю tkinter / pygame игру в классах, а python не распознает pygame, когда она в классе. (не беспокойтесь о том, как я собираюсь запустить windows отдельно, это будет сделано, когда окно заработает

from tkinter import *
from pygame import *
class firstscreen:
    def __init__(self):
        self.window = Tk()
        self.window.minsize(300, 250)
        self.window.resizable(width=False, height=False)
        self.window.title("Login")
        self.username = ""
        self.password = ""
        self.userlabel = Label(self.window, text="Username")
        self.userlabel.place(x=50, y=50)
        self.passlabel = Label(self.window, text="Password")
        self.passlabel.place(x=50, y=100)
        self.userentry = Entry(self.window, textvariable=self.username)
        self.userentry.place(x=110, y=50)
        self.passentry = Entry(self.window, textvariable=self.password, show="*")
        self.passentry.place(x=110, y=100)
        self.loginbutton = Button(self.window, text="Login", command = self.login())
        self.loginbutton.place(x=80, y=140)
        self.registerbutton = Button(self.window, text="Register",command=self.login())
        self.registerbutton.place(x=140, y=140)
        self.window.mainloop()
    def login(self):
        print("Hello")

class gamewindow():
    def __init__(self):
        pygame.init()
        game = pygame.display.set_mode((800, 300))
runlogin = firstscreen()
rungame = gamewindow()
NameError:name 'pygame' is not defined

(для строки 29 , pygame.init ())

1 Ответ

2 голосов
/ 31 января 2020

Это должно быть либо

from pygame import *

# [...]

class gamewindow():
    def __init__(self):
        init()
        game = display.set_mode((800, 300))

или

import pygame

# [...]

class gamewindow():
    def __init__(self):
        pygame.init()
        game = pygame.display.set_mode((800, 300))

См. Система импорта - Подмодули

...