def __init__(self): pygame.mixer.pre_init(44100, -16, 2, 512) pygame.init() pygame.key.set_repeat(500, 100) pygame.font.init() pygame.event.set_allowed([ pygame.QUIT, pygame.VIDEORESIZE, pygame.KEYDOWN, pygame.MOUSEBUTTONDOWN ]) self.playing = True self.clock = pygame.time.Clock() self.running = True # Start with the game paused (menus will keep running though) self.paused = True self.fullscreen = config["graphics"]["fullscreen"] self.vsync = config["graphics"]["vsync"] # Engine self.renderer = Renderer(self) self.spriteRenderer = SpriteRenderer(self) self.clickManager = ClickManager(self) self.textHandler = TextHandler() # Loaders self.imageLoader = ImageLoader(self) self.mapLoader = MapLoader() self.audioLoader = AudioLoader() # Map editor self.mapEditor = MapEditor(self) # Menu's self.mainMenu = MainMenu(self) self.optionMenu = OptionMenu(self) if self.fullscreen: self.renderer.setFullscreen() self.setCaption() self.setIcon() self.setCursor()
# Screen dimensions. screenWidth = 1000 screenHeight = 1000 desiredDepth = 1000 # Place our light sources. light0 = Lighting((1000, 0, 0), (255, 0, 0), 1000) light1 = Lighting((0, 1000, 0), (0, 255, 0), 1000) light2 = Lighting((0, 0, 1000), (0, 0, 255), 1000) lights = [light0, light1, light2] # Define the camera. camera = Camera( ((-1, screenWidth + 1), (-1, screenHeight + 1), (-1, desiredDepth + 1)), lights) # Build renderer. renderer = Renderer(camera) def draw_starfield(renderer): """ Generate 250 random stars. """ for point in range(250): renderer.camera.objectsInWorld.append( Star((randrange( 0, renderer.screenWidth), randrange(0, renderer.screenHeight), randrange(0, renderer.desiredDepth)), renderer)) renderer.camera.drawScene() def draw_pointfield(renderer):
location = (i * 100, i * 100) velocity = [0, 0] tag = "Snake" width = 100 height = 100 game_obj = GameObj(location, velocity, [0, 0], tag, width, height) game_obj_dict[location] = game_obj time.sleep(1) # create gameobj game_obj_dict = dict() # create window title = "Render Test" window_width = 800 window_height = 800 window_manager = WindowManager(title, window_width, window_height) # populate square print("start populate") populate_populator = populator(game_obj_dict) populate_thread = threading.Thread(target=populate_populator.populate) populate_thread.start() # start rendering renderer = Renderer(game_obj_dict, window_manager) render_process = multiprocessing.Process(target=renderer.start_rendering()) render_process.start() render_process.join()