Итак, я начинаю веселиться с pygame. Но у меня проблемы. Я пытался каким-то образом усовершенствовать свой код, сделать его организованным, поэтому я решил использовать классы здесь. Это выглядит так:Использование классов в Pygame
import pygame
from pygame.locals import *
import sys
pygame.init()
class MainWindow:
def __init__(self, width, height):
self.width=width
self.height=height
self.display=pygame.display.set_mode((self.width,self.height))
pygame.display.set_caption("Caption")
def background(self)
img = pygame.image.load("image.png")
self.display.blit(img, (0,0))
mainWindow = MainWindow(800,600)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.exit()
sys.exit()
mainWindow.background()
pygame.display.update()
Хорошо, работает. Но что, если я хочу, например, заполнить окна белым цветом? Затем я должен определить метод fill()
, который будет только self.display.fill()
, правильно? Есть ли способ справиться с этим нормально, не определяя сотни уже существующих методов pygame в моем классе?
И еще одно. Если я что-то сделать с помощью моего класса, и я завинтить, я всегда получаю эту Сообщ:
File "C:/Python35/game.py", line 23, in <module>
pygame.display.update()
pygame.error
И я на самом деле не знаю, что, черт возьми, это не так. Если я делаю это нормально, без классов, то я получаю erros, например, pygame object blabla has no method blablabla
или что-то в этом роде, я просто знаю, что происходит. Есть ли способ преодолеть это и найти, что происходит?
Заранее благодарим за вашу помощь!
Вы можете установить родительский класс, который определяет цвет, который ваш MainWindow мог бы наследовать от него. –
Да, я знаю, но я хотел, чтобы ситуация была похожа на вашу, но когда MainWindow наследует, как из некоторого класса pygame, поэтому методы наследуются , нет необходимости определять их XD И я думаю, что это невозможно :( – Frynio
Почему бы просто не установить класс, который я предлагаю вместо этого в качестве mixin? –