예제 #1
0
    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()
예제 #2
0
# 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):
예제 #3
0
            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()