class Window: def __init__(self, width, height, title): self.__width = width self.__height = height self.__title = title self.__should_close = False self.__objects = [] # Init SDL, create window and renderer SDL_Init(SDL_INIT_EVERYTHING) self.__window = SDL_CreateWindow(title.encode("ASCII"), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, int(width * cf.SCALE), int(height * cf.SCALE), 0) self.renderer = Renderer(self.__width, self.__height, self.__window) def AddObject(self, obj): self.__objects.append(obj) def Update(self): # Handle SDL events event = SDL_Event() while SDL_PollEvent(event): for obj in self.__objects: obj.OnEvent(event) if event.type == SDL_QUIT: self.Close() # Update screen for obj in self.__objects: obj.Update(1) obj.Render(self.renderer) self.renderer.Update() def IsRunning(self): return not self.__should_close def Close(self): self.__should_close = True SDL_DestroyWindow(self.__window)