Exemple #1
0
    def on_key_press(self, symbol, modifiers):
        # called every time a key is pressed

        # quit if q is pressed
        if symbol == pyglet.window.key.Q:
            sys.exit(0)

        elif symbol == pyglet.window.key.SPACE:
            self.cart.jump()

        elif symbol == pyglet.window.key.R:
            self.cart.gp = self.spawn_points[0].gp

        elif symbol == pyglet.window.key.I:
            raw_input()
        elif symbol == pyglet.window.key.O:
            music.next()
        elif symbol == pyglet.window.key.P:
            music.stop()
        else:
            # ok check for level skipping.
            level = skip.get(symbol)
            if level:
                self.finish(skip=level)
Exemple #2
0
def handle_event(event, view):
    if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
        return True

    elif event.type == MOUSEBUTTONDOWN:
        if event.button == 1:
            if pygame.rect.Rect(6, 348, 128,
                                128).collidepoint(*event.pos):  #minimap
                pos = (v(event.pos) - (6, 348)) * 32 + (16, 16)
                view.pos = pos - v((640, 480)) / 2
            elif pygame.rect.Rect(413, 410, 60, 56).collidepoint(*event.pos):
                view.followselection = True
            else:
                view.begin_pos = event.pos

        elif event.button == 2:
            view.scroll_start = event.pos
            view.scroll_center = view.pos

        elif event.button == 3:
            target = default_action(view.pos + event.pos, view)
            for unit in view.selection:
                unit.action(target, view)
            view.uisprites.append(Sprite("Acquired", view.pos + event.pos))

    elif event.type == MOUSEBUTTONUP:
        if event.button == 1:
            if view.followselection:
                view.followselection = False
            elif view.begin_pos:
                wpos = view.pos + event.pos
                if event.pos == view.begin_pos:
                    table = []
                    for unit in [x for x in view.units if x.selectable]:
                        df = wpos - unit.pos
                        dist = sqrt(dot(df, df))
                        table.append((dist, unit))
                    table.sort()
                    view.selection = [table[0][1]]
                else:
                    view.selarea = pygame.Rect(view.begin_pos,
                                               v(event.pos) - view.begin_pos)
                    view.selarea.normalize()
                    new = []
                    for unit in view.units:
                        area = pygame.Rect(
                            unit.pos - unit.bound / 2 - view.pos,
                            unit.pos + unit.bound / 2 - view.pos)
                        if area.colliderect(view.selarea) and unit.selectable:
                            new.append(unit)
                    if new: view.selection = new
                view.selarea = None
                view.begin_pos = None

        if event.button == 2:
            view.scroll_start = None

    elif event.type == MOUSEMOTION:
        if view.begin_pos:
            view.selarea = pygame.Rect(view.begin_pos,
                                       v(event.pos) - view.begin_pos)
            view.selarea.normalize()
        if view.scroll_start:
            view.pos = v(view.scroll_start) - event.pos + view.scroll_center
            #view.scroll_start = event.pos
    elif event.type == KEYDOWN:
        if pygame.key.name(event.key) == "b":
            for unit in view.selection:
                pos = view.pos + pygame.mouse.get_pos()
                unit.action2(pygame.key.name(event.key), pos, view)
        if event.key == pygame.K_LEFT: view.scrollleft = True
        if event.key == pygame.K_RIGHT: view.scrollright = True
        if event.key == pygame.K_UP: view.scrollup = True
        if event.key == pygame.K_DOWN: view.scrolldown = True
    elif event.type == KEYUP:
        if event.key == pygame.K_LEFT: view.scrollleft = False
        if event.key == pygame.K_RIGHT: view.scrollright = False
        if event.key == pygame.K_UP: view.scrollup = False
        if event.key == pygame.K_DOWN: view.scrolldown = False
    elif event.type == USEREVENT:
        music.next(view)
Exemple #3
0
def handle_event(event, view):
    if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
        return True
        
    elif event.type == MOUSEBUTTONDOWN:
        if event.button == 1:
            if pygame.rect.Rect(6,348,128,128).collidepoint(*event.pos): #minimap
                pos = (v(event.pos)-(6,348))*32+(16,16)
                view.pos = pos-v((640,480))/2
            elif pygame.rect.Rect(413,410,60,56).collidepoint(*event.pos):
                view.followselection = True
            else:
                view.begin_pos = event.pos
                
        elif event.button == 2:
            view.scroll_start = event.pos
            view.scroll_center = view.pos
            
        elif event.button == 3:
            target = default_action(view.pos+event.pos,view)
            for unit in view.selection:
                unit.action(target,view)
            view.uisprites.append(Sprite("Acquired",view.pos+event.pos))
            
    elif event.type == MOUSEBUTTONUP:
        if event.button == 1:
            if view.followselection:
                view.followselection = False
            elif view.begin_pos:
                wpos = view.pos+event.pos
                if event.pos == view.begin_pos:
                    table = []
                    for unit in [x for x in view.units if x.selectable]:
                        df = wpos-unit.pos
                        dist = sqrt(dot(df,df))
                        table.append((dist,unit))
                    table.sort()
                    view.selection = [table[0][1]]
                else:
                    view.selarea = pygame.Rect(view.begin_pos,v(event.pos)-view.begin_pos)
                    view.selarea.normalize()
                    new = []
                    for unit in view.units:
                        area = pygame.Rect(unit.pos-unit.bound/2-view.pos,unit.pos+unit.bound/2-view.pos)
                        if area.colliderect(view.selarea) and unit.selectable:
                            new.append(unit)
                    if new: view.selection = new
                view.selarea = None
                view.begin_pos = None
                
        if event.button == 2:
            view.scroll_start = None
            
    elif event.type == MOUSEMOTION:
        if view.begin_pos:
            view.selarea = pygame.Rect(view.begin_pos,v(event.pos)-view.begin_pos)
            view.selarea.normalize()
        if view.scroll_start:
            view.pos = v(view.scroll_start)-event.pos+view.scroll_center
            #view.scroll_start = event.pos
    elif event.type == KEYDOWN:
        if pygame.key.name(event.key) == "b":
            for unit in view.selection:
                pos = view.pos+pygame.mouse.get_pos()
                unit.action2(pygame.key.name(event.key),pos,view)
        if event.key == pygame.K_LEFT: view.scrollleft = True
        if event.key == pygame.K_RIGHT: view.scrollright = True
        if event.key == pygame.K_UP: view.scrollup = True
        if event.key == pygame.K_DOWN: view.scrolldown = True
    elif event.type == KEYUP:
        if event.key == pygame.K_LEFT: view.scrollleft = False
        if event.key == pygame.K_RIGHT: view.scrollright = False
        if event.key == pygame.K_UP: view.scrollup = False
        if event.key == pygame.K_DOWN: view.scrolldown = False
    elif event.type == USEREVENT:
        music.next(view)