示例#1
0
    def __init__(self, name, flip_image=False, obey_gravity=False):
        super(Sprite, self).__init__()

        # Signals
        self.moved = Signal()
        self.direction_changed = Signal()
        self.reverse_gravity_changed = Signal()

        # State
        self.rect = pygame.Rect(0, 0, 0, 0)
        self.quad_trees = set()
        self.layer = None
        self.name = name
        self.image = None
        self.visible = 1
        self.dirty = 2
        self.velocity = (0, 0)
        self.obey_gravity = obey_gravity
        self.reverse_gravity = False
        self.lethal = False
        self.falling = False
        self.collidable = True
        self.grabbed = False
        self.grabbable = False
        self.should_check_collisions = False
        self.use_pixel_collisions = False
        self.flip_image = flip_image
        self.collision_rects = []
        self.collision_masks = []
        self._colliding_objects = set()
        self._direction = Direction.RIGHT
        self._flipped_images = {}
示例#2
0
    def __init__(self):
        self.timer = None
        self.timer_ms = 150

        # Signals
        self.started = Signal()
        self.stopped = Signal()
示例#3
0
    def __init__(self):
        super(Player, self).__init__('player', flip_image=True,
                                     obey_gravity=True)
        self.engine = get_engine()
        self.should_check_collisions = True

        # Sprites
        self.propulsion_below = Sprite("propulsion_below", flip_image=True)
        self.propulsion_below.collidable = False
        self.propulsion_below.visible = 0
        self.tractor_beam = TractorBeam(self)

        # State
        self.jumping = False
        self.hovering = False
        self.block_events = False
        self.jump_origin = None
        self.hover_time_ms = 0
        self.health = self.MAX_HEALTH
        self.lives = self.MAX_LIVES
        self.last_safe_spot = None
        self.vehicle = None
        self.vehicle_move_cnx = None

        # Signals
        self.health_changed = Signal()
        self.lives_changed = Signal()

        self.direction_changed.connect(self.on_direction_changed)
        self.reverse_gravity_changed.connect(self.on_reverse_gravity_changed)
示例#4
0
    def __init__(self, area):
        self.area = area
        self.rects = []
        area.register_for_events(self)
        self.entered_objects = set()

        # Signals
        self.event_fired = Signal()
        self.object_moved = Signal()
        self.object_entered = Signal()
        self.object_exited = Signal()
示例#5
0
    def __init__(self, engine):
        self.engine = engine
        self.time_periods = []
        self.active_area = None
        self.music = None
        self.crossover_timer = None
        self.crossovers = []
        self.pending_crossovers = {}
        self.next_crossover_id = 0

        self.engine.tick.connect(self.on_tick)

        # Signals
        self.area_changed = Signal()
        self.time_period_changed = Signal()
示例#6
0
    def __init__(self, *args, **kwargs):
        super(Item, self).__init__(obey_gravity=True, *args, **kwargs)
        self.should_check_collisions = True
        self.grabbable = True
        self.flip_image = True

        # Signals
        self.grab_changed = Signal()
示例#7
0
    def __init__(self):
        self.pages = []
        self.next_page = 0
        self.current_page = None
        self.allow_escape = True

        # Signals
        self.done = Signal()
示例#8
0
    def __init__(self, screen):
        set_engine(self)

        # Signals
        self.level_changed = Signal()
        self.tick = Signal()

        # State and objects
        self.active_level = None
        self.active_cutscene = None
        self.paused = False
        self.screen = screen
        self.clock = pygame.time.Clock()
        self.player = Player()
        self.ui_manager = UIManager(self)
        self.camera = None

        # Debug flags
        self.debug_rects = False
        self.god_mode = False
        self.show_debug_info = False

        self.area_changed_cnx = None
        self.ui_ready_cnx = None
示例#9
0
文件: ui.py 项目: chipx86/foreverend
    def __init__(self, engine):
        pygame.font.init()

        self.ready = Signal()

        self.engine = engine
        self.size = engine.screen.get_size()
        self.surface = pygame.Surface(self.size).convert_alpha()
        self.widgets = []
        self.timers = []

        self.default_font = get_font_filename()
        #self.default_font = pygame.font.get_default_font()
        self.font = pygame.font.Font(self.default_font, 20)
        self.small_font = pygame.font.Font(self.default_font, 16)

        self.engine.level_changed.connect(self.on_level_changed)

        self.control_panel = None
        self.paused_textbox = None
        self.confirm_quit_box = None
示例#10
0
    def __init__(self, *args, **kwargs):
        super(ScreenFlashEffect, self).__init__(*args, **kwargs)
        self.fade_out = True
        self.color = (255, 255, 255)

        self.flash_peaked = Signal()
示例#11
0
 def __init__(self):
     self.done = Signal()
示例#12
0
 def __init__(self, name):
     super(Button, self).__init__(name)
     self.pressed = Signal()
示例#13
0
文件: ui.py 项目: chipx86/foreverend
    def __init__(self, ui_manager):
        self.ui_manager = ui_manager
        self.ui_manager.widgets.append(self)
        self.rect = pygame.Rect(0, 0, 0, 0)

        self.closed = Signal()