예제 #1
0
 def __init__(self,
              level_name,
              player,
              static_world_components,
              dynamic_world_components,
              background=None,
              level_size=None,
              camera_type=None):
     if level_size == None:
         level_size = background.size
     self.background = background
     self.size = level_size
     self.name = level_name
     # a dictionary with all image related game components
     self.player = player
     self.characters = [
     ]  # starts empty; is filled by npc, and the player(s)
     self.npc = pygame.sprite.Group()
     self.static_components = static_world_components  # image parts (e.g. background, ground)
     self.dynamic_components = dynamic_world_components  # image parts (e.g. swings, moving objects, bullets)
     self.components = [] + self.static_components + self.dynamic_components  # redundant list; fast requesting component
     self.add_character(player)
     # build the static game world
     self.image, self.rect = self.build_background(
         level_size,
         background=background,
         static_components=self.static_components)
     if camera_type is not None:
         self.camera = Camera(camera_type, player.rect,
                              level_size)  # the screen view
         # todo: decide on who should hold the camera
         graphics_handler.set_camera(
             self.camera
         )  # makes it possible to blit directly to the graphics handler
     else:
         self.camera = None
     self.freeze = False  # freezes all updates to components
     if INFO:
         print("[LV] image '{}' loaded".format(level_name))
     self.killed_monster = 0
예제 #2
0
scene = loading.load("test_map03")

chest = objects.getObjectsOfType(Chest)[0]
chest._items = [Item("Potion"), Item("Potion"), Item("Book")]

animTile = GameObject(z = 10, position = Vector2(0, 50))
animTile.sprite = sprite2.loadSpriteAnimation("player_idle")
animTile.play("player_idle")

_player = objects.getObjectsOfType(player.Player)[0]
_player.sprite = sprite2.loadSpriteAnimation("eggy")
_player.play("eggy")

#####
camera = Camera(15)
camera.setTarget(player.getPlayer())

fps_delay = 60 #Show fps every second
fps_delta = 0

while True:
    inputcontrol.evaluate(pygame.event.get())
    physics.solve(objects.getObjectsOfType(Entity))
    camera.render(gameScreen)
    ui.render(gameScreen)
    scaled_display = pygame.transform.scale(gameScreen, (SCREENWIDTH * SCALEFACTOR, SCREENHEIGHT * SCALEFACTOR))
    display.blit(scaled_display, (0, 0))
    pygame.display.update()
    clock.tick(60)
예제 #3
0
from pygame.locals import *
from pygame import *
from graphics import Camera
from pygame.math import Vector2
from gameobject import GameObject

pygame.init()

display = pygame.display.set_mode((SCREENWIDTH, SCREENHEIGHT))
pygame.display.set_caption("Ultimate Pong")
clock = pygame.time.Clock()

fps_delay = 60
fps_delta = 0

camera = Camera()

background = GameObject(position=Vector2(0, 0),
                        scale=Vector2(SCREENWIDTH, SCREENHEIGHT))
background.colorize(pygame.Color(255, 255, 255))

ball = GameObject(position=Vector2(40, 40))
ball.colorize(pygame.Color(255, 0, 0))

while True:
    #TODO: Move inputs into a custom class and handle with single function call
    for event in pygame.event.get():
        if event.type == QUIT:
            print("Closing game...")
            pygame.quit()
            sys.exit(0)