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)
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)
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)