def Update(self): self.counter += 1 if self.counter == 3: #self.PlaySound('phase_complete.ogg') levelseed = GamePlay.LevelSeed('next', self.prevPlayScene.levelSeed, self.prevPlayScene.level) if levelseed.won: self.next = GamePlay.WinScene(self.prevPlayScene) else: self.nextPlayScene = GamePlay.PlayScene(levelseed) elif self.counter == 69: self.next = self.nextPlayScene camOff = self.next.level.initCameraOffset if camOff != None: self.next.cameraX = self.prevPlayScene.cameraX + camOff[0] * 32 self.next.cameraY = self.prevPlayScene.cameraY + camOff[1] * 32
def ProcessInput(self, events): for event in events: if event.type == pygame.MOUSEBUTTONUP and event.button == 1: x = event.pos[0] + self.cameraX y = event.pos[1] + self.cameraY pressed = pygame.key.get_pressed() if pressed[pygame.K_LCTRL] or pressed[ pygame.K_RCTRL] or pressed[pygame.K_LSHIFT] or pressed[ pygame.K_RSHIFT]: #TODO: figure out why this gets called even when shift/ctrl isn't pressed #self.ToggleSelection(self.dragStart, (x, y)) self.SetSelection(self.dragStart, (x, y)) else: self.SetSelection(self.dragStart, (x, y)) self.dragStart = None elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: x = event.pos[0] + self.cameraX y = event.pos[1] + self.cameraY self.dragStart = (x, y) self.suppressDragDraw = False elif event.type == pygame.MOUSEMOTION: self.cursorScreenPosition = event.pos x = event.pos[0] + self.cameraX y = event.pos[1] + self.cameraY self.cursorLogicalPosition = (x, y) elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 3: self.MoveSelectionToTarget(event.pos[0] + self.cameraX, event.pos[1] + self.cameraY) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: self.next = Menus.GamePauseMenu(self) if event.key == pygame.K_F7: for sprite in self.level.citizens: sprite.Decolorize() if event.key == pygame.K_F8: self.next = GamePlay.WinScene(self)