Exemple #1
0
 def __init__(self, game, playMusic=True):
     self.mGame = game
     Pgl.app.setUpdaterate(int(Updaterate.FAST))
     pygame.mouse.set_visible(False)
             
     if playMusic: SoundManager.getInstance().playMenuMusic()
 
     #set input & camera
     self.mGame.input = MenuInput(self)
     self.mCamera = Camera(Pgl.width, Pgl.height)
     self.modelsize = self.mCamera.getModelCoords(b2Vec2(Pgl.width, Pgl.height))
     
     #fonts
     self.screenFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x / 3.0)
     self.titleFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x * 2.0)
     self.infoFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x / 2)
     
     #graphics
     self.arrow = Sprite(Resources.getInstance().mArrow) 
     self.arrow.setSize(self.mCamera.getScaledSize((self.arrow.getWidth()/float(self.arrow.getHeight())) * 0.5, 0.5))
     self.menubutton = Animation(Resources.getInstance().mMenuButton, 2, 1, 0, self.mCamera.getScaledSize(1, 1), False, False)
     self.levelbutton = Animation(Resources.getInstance().mLevelButton, 2, 1, 0, self.mCamera.getScaledSize(1, 1), False, False)
     self.checkbutton = Animation(Resources.getInstance().mCheckButton, 2, 1, 0, self.mCamera.getScaledSize(1, 1), False, False)
     self.lock = Sprite(Resources.getInstance().mLock)
     self.lock.setSize(self.mCamera.getScaledSize((self.lock.getWidth()/float(self.lock.getHeight())) * 0.2, 0.2))
Exemple #2
0
    def __init__(self, game):
        super(EndScreen, self).__init__(game, False)
        SoundManager.getInstance().playEndMusic()

        #fonts
        self.textFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x * 0.6)
        self.headerFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x)
        self.titleFont = Resources.getInstance().getScaledFont(self.mCamera.scale.x * 2.0)

        self.modelsize = self.mCamera.getModelCoords(b2Vec2(Pgl.width, Pgl.height))
        self.mDone = False
        self.mTimer = 0

        texts = [
                 [self.titleFont, (200,160,160), "pxlgrvty", 0],
                 [self.headerFont, (170,170,170), "Programming:", 25],
                 [self.textFont, (255,255,255), "Rickard Hansson", 0],
                 [self.headerFont, (170,170,170), "Graphics:", 25],
                 [self.textFont, (255,255,255), "Rickard Hansson", 0],
                 [self.headerFont, (170,170,170), "Audio/FX:", 25],
                 [self.textFont, (255,255,255), "Rickard Hansson", 0],
                 [self.headerFont, (170,170,170), "Music:", 25],
                 [self.textFont, (255,255,255), "anamanaguchi - helix nebula", 0],
                 [self.textFont, (255,255,255), "anamanaguchi - video challenge", 0],
                 [self.textFont, (255,255,255), "electric children - spring retrospective", 0],
                 [self.textFont, (255,255,255), "teknoaxe - chiptune does dubstep", 0],
                 [self.textFont, (255,255,255), "roccow - chipho instrumental", 0],
                 [self.textFont, (255,255,255), "sycamore drive - kicks", 0]]

        self.titlepos = self.mCamera.getViewCoords(b2Vec2(self.modelsize.x / 2.0, self.modelsize.y))
        self.text = Text(texts, self.titlepos, 1, Pgl.app.surface)
        self.endtext = self.headerFont.render("thanks for playing!", 1, (170,170,170))
        self.endsize = self.headerFont.size("thanks for playeing!")
        self.endpos = self.mCamera.getViewCoords(b2Vec2(self.modelsize.x/2.0, self.modelsize.y/2.0))
Exemple #3
0
    def update(self, delta):
        if not self.mDone:
            if self.text.mPos.y + self.text.height > 0:
                self.text.mPos.y -= self.mCamera.scale.y * delta / 2.0
            else: self.mDone = True
        else:
            if self.mTimer == 0:
                SoundManager.getInstance().fadeout(4800)

            self.mTimer += delta

            if self.mTimer >= 5:
                self.mGame.setScreen(screen.MenuScreen.MenuScreen(self.mGame))
Exemple #4
0
    def update(self, delta):
        self.mTimer += delta

        #step the physicsworld
        self.physWorld.Step(delta, self.vel_iters, self.pos_iters)
        self.physWorld.ClearForces()

        for body in self.physWorld.bodies:
            #dynamic body
            if body.type == b2_dynamicBody:
                if self.mFirstUpdate:
                    if isinstance(body.userData, Player):
                        self.dynamic_enities.append(body)

                    # body.userData.update(delta)
                if isinstance(body.userData, Player):
                    body.userData.update(delta)
                elif isinstance(body.userData, Enemy):
                    body.userData.update(delta)
                elif isinstance(body.userData, PickableObject):
                    body.userData.update(delta)
                elif isinstance(body.userData, Particle):
                    body.userData.update(delta)


        if self.mFirstUpdate == True:
            self.mFirstUpdate = False

        #update level, if level is done, returns true
        if self.level.update(delta, self.player.position):
            self.mLevelDone = True

        #is player dead?
        if not self.player.alive:

            if self.mSwitch:
                SoundManager.getInstance().playSound(SoundID.FLESHEXPLOSION)
                self.mFxObs.addFx(BloodSplatter(self.physWorld, self.gravity.get(), self.player.position))
                self.mSwitch = False

            self.player.stopMovement()
            self.mDeathTimer -= delta

            if self.mDeathTimer < 0:
                self.level.retryLevel()
                self.__resetWorld()
Exemple #5
0
    def __init__(self, game, lvl):
        Pgl.app.setUpdaterate(Pgl.options.updaterate)
        pygame.mouse.set_visible(False)
        SoundManager.getInstance().playMusic(random.randrange(1, SoundManager.getInstance().NUMBER_OF_SONGS + 1))

        self.mGame = game
        self.mCamera = Camera(Pgl.width, Pgl.height)

        #observer
        self.mLuObs = LevelupdateObserver()
        self.mFxObs = FXObserver()

        #gameworld and its renderer
        self.mWorld = WorldModel(self.mCamera, self.mLuObs, self.mFxObs, lvl)
        self.mWorldRender = WorldRender(self.mWorld, self.mCamera)

        #add listeners
        self.mLuObs.addListener(self.mWorldRender)
        self.mFxObs.addListener(self.mWorldRender)

        #input
        self.mGame.input = Input(self, self.mWorld, self.mCamera)
Exemple #6
0
 def jump(self):
     if self.mOnGround:
         SoundManager.getInstance().playSound(SoundID.JUMP)
         self.mJumping = True
Exemple #7
0
    def __init__(self, game):
        super(OptionScreen, self).__init__(game)

        self.mMenuItems = []
        self.mMenuItems.append(Button("back", 0.5, 8.5, b2Vec2(2,1), lambda:self.goBack()))
        self.mMenuItems.append(Button("apply", 13.5, 8.5, b2Vec2(2,1), lambda:self.__applyOptions()))
        self.mMenuItems.append(Button("defaults", 11, 8.5, b2Vec2(2,1), lambda:self.__defaultOptions()))

        self.mMenuItems.append(CheckButton("fullscreen on/off", 7, 3.5, b2Vec2(0.5,0.5), Pgl.options.fullscreen, lambda x: Pgl.options.setFullscreen(x)))
        self.mMenuItems.append(CheckButton("music on/off", 7, 4, b2Vec2(0.5,0.5), Pgl.options.music, lambda x: Pgl.options.setMusic(x), [lambda x: SoundManager.getInstance().pauseMusic(x)]))
        self.mMenuItems.append(CheckButton("sound on/off", 7, 4.5, b2Vec2(0.5,0.5), Pgl.options.sound, lambda x: Pgl.options.setSound(x)))

        self.mResolutionList = ListCreator(2, 8, 3.5, b2Vec2(3,0.5), self.__getResolutionList(), Pgl.options.resolution)

        self.mUpdaterate = ChoiceWidget("updaterate:", 4, 6.5, [Updaterate.SLOW, Updaterate.MEDIUM, Updaterate.FAST],
                                         Updaterate.convertSpeedToInt(Pgl.options.updaterate),
                                         lambda x: Pgl.options.setUpdaterate(Updaterate.convertIntToSpeed(x)))

        self.mMusicVolume = Volume("Music volume:", 7, 6.5, Pgl.options.musicvolume, lambda x: Pgl.options.setMusicVolume(x), [lambda:SoundManager.getInstance().changeMusicVolume()])
        self.mSoundVolume = Volume("Sound volume:", 10, 6.5, Pgl.options.soundvolume, lambda x: Pgl.options.setSoundVolume(x), [lambda:SoundManager.getInstance().playSound(SoundID.JUMP)])

        self.mMenuItems.extend(self.mMusicVolume.mVolumeItems)
        self.mMenuItems.extend(self.mSoundVolume.mVolumeItems)
        self.mMenuItems.extend(self.mResolutionList.mListItem)
        self.mMenuItems.extend(self.mUpdaterate.mWidgedItems)

        #title
        self.title = self.titleFont.render("options", 0, (255,255,255))
        self.size = self.titleFont.size("options")
        self.titlepos = self.mCamera.getViewCoords(b2Vec2(self.modelsize.x / 2.0, self.modelsize.y / 6))
Exemple #8
0
 def update(self, delta):
     if not self.alive:
         SoundManager.getInstance().playSound(SoundID.PICKUP)
         self.mWorld.DestroyBody(self.mBody)
 def checkEvent(self, event):
     if event.type == pygame.QUIT:
         Pgl.app.stop()
     elif event.type == pygame.USEREVENT:
         SoundManager.getInstance().stopMusic()
         SoundManager.getInstance().playMusic(SoundManager.getInstance().CURRENTSONG+1)