コード例 #1
0
    def onstage(self):
        self.notify.debug('onstage')
        DistributedMinigame.onstage(self)
        self.arrowKeys = ArrowKeys.ArrowKeys()
        toon = base.localAvatar
        toon.reparentTo(render)
        toon.setAnimState('swim', 1.0)
        toon.stopBobSwimTask()
        toon.useLOD(self.TOON_LOD)
        self.__placeToon(self.localAvId)
        toon.dropShadow.hide()
        camera.reparentTo(render)
        camera.reparentTo(base.localAvatar)
        camera.setPosHpr(0, self.CAMERA_Y + self.TOON_Y, 0, 0, 0, 0)
        base.camLens.setMinFov(80/(4./3.))
        base.camLens.setFar(self.FAR_PLANE_DIST)
        base.setBackgroundColor(self.WATER_COLOR)
        self.__fog = Fog('ringGameFog')
        if base.wantFog:
            self.__fog.setColor(self.WATER_COLOR)
            self.__fog.setLinearRange(0.1, self.FAR_PLANE_DIST - 1.0)
            render.setFog(self.__fog)
        self.environNode = render.attachNewNode('environNode')
        self.environBlocks = []
        for i in xrange(0, 2):
            instance = self.environModel.instanceUnderNode(self.environNode, 'model')
            y = self.ENVIRON_LENGTH * i
            instance.setY(y)
            self.environBlocks.append(instance)
            for j in xrange(0, 2):
                instance = self.environModel.instanceUnderNode(self.environNode, 'blocks')
                x = self.ENVIRON_LENGTH * (j + 1)
                instance.setY(y)
                instance.setX(-x)
                self.environBlocks.append(instance)

            for j in xrange(0, 2):
                instance = self.environModel.instanceUnderNode(self.environNode, 'blocks')
                x = self.ENVIRON_LENGTH * (j + 1)
                instance.setY(y)
                instance.setX(x)
                self.environBlocks.append(instance)

        self.ringNode = render.attachNewNode('ringNode')
        self.sndTable = {'gotRing': [None] * self.numPlayers,
         'missedRing': [None] * self.numPlayers}
        for i in xrange(0, self.numPlayers):
            self.sndTable['gotRing'][i] = base.loader.loadSfx('phase_4/audio/sfx/ring_get.ogg')
            self.sndTable['missedRing'][i] = base.loader.loadSfx('phase_4/audio/sfx/ring_miss.ogg')

        self.__addToonDropShadow(self.getAvatar(self.localAvId))
        self.__spawnUpdateEnvironTask()
        self.__spawnUpdateShadowsTask()
        self.__spawnUpdateLocalToonTask()
        if None != self.sndAmbience:
            base.playSfx(self.sndAmbience, looping=1, volume=0.8)
        return
コード例 #2
0
 def __init__(self, game, speed, maxFrameMove = None, customCollisionCallback = None, priority = 0, setHeading = 1, upHeading = 0):
     self.game = game
     self.speed = speed
     self.maxFrameMove = maxFrameMove
     self.customCollisionCallback = customCollisionCallback
     self.priority = priority
     self.setHeading = setHeading
     self.upHeading = upHeading
     self.arrowKeys = ArrowKeys.ArrowKeys()
     self.wasUpReleased = True
     self.lt = base.localAvatar
     base.localAvatar.useTwoDControls()
     base.localAvatar.controlManager.currentControls.avatarControlJumpForce = 30.0
     self.ONE_JUMP_PER_UP_PRESSED = True
     self.lastAction = None
     self.isMovingX = False
     return
コード例 #3
0
 def __init__(self,
              speed,
              maxFrameMove=None,
              customCollisionCallback=None,
              priority=0,
              setHeading=1,
              upHeading=0,
              instantTurn=False,
              wantSound=False):
     self.wantSound = wantSound
     self.speed = speed
     self.maxFrameMove = maxFrameMove
     self.customCollisionCallback = customCollisionCallback
     self.priority = priority
     self.setHeading = setHeading
     self.upHeading = upHeading
     self.arrowKeys = ArrowKeys.ArrowKeys()
     self.lt = base.localAvatar
     self.instantTurn = instantTurn
コード例 #4
0
    def load(self):
        self.notify.debug('load')
        DistributedMinigame.DistributedMinigame.load(self)
        self.music = base.loadMusic('phase_4/audio/bgm/MG_IceGame.mid')
        self.gameBoard = loader.loadModel(
            'phase_4/models/minigames/ice_game_icerink')
        background = loader.loadModel('phase_4/models/minigames/ice_game_2d')
        background.reparentTo(self.gameBoard)
        self.gameBoard.setPosHpr(0, 0, 0, 0, 0, 0)
        self.gameBoard.setScale(1.0)
        self.setupSimulation()
        index = 0
        for avId in self.avIdList:
            self.setupTire(avId, index)
            self.setupForceArrow(avId)
            index += 1

        for index in xrange(len(self.avIdList), 4):
            self.setupTire(-index, index)
            self.setupForceArrow(-index)

        self.showForceArrows(realPlayersOnly=True)
        self.westWallModel = NodePath()
        if not self.westWallModel.isEmpty():
            self.westWallModel.reparentTo(self.gameBoard)
            self.westWallModel.setPos(IceGameGlobals.MinWall[0],
                                      IceGameGlobals.MinWall[1], 0)
            self.westWallModel.setScale(4)

        self.eastWallModel = NodePath()
        if not self.eastWallModel.isEmpty():
            self.eastWallModel.reparentTo(self.gameBoard)
            self.eastWallModel.setPos(IceGameGlobals.MaxWall[0],
                                      IceGameGlobals.MaxWall[1], 0)
            self.eastWallModel.setScale(4)
            self.eastWallModel.setH(180)

        self.arrowKeys = ArrowKeys.ArrowKeys()
        self.target = loader.loadModel('phase_3/models/misc/sphere')
        self.target.setScale(0.01)
        self.target.reparentTo(self.gameBoard)
        self.target.setPos(0, 0, 0)
        self.scoreCircle = loader.loadModel(
            'phase_4/models/minigames/ice_game_score_circle')
        self.scoreCircle.setScale(0.01)
        self.scoreCircle.reparentTo(self.gameBoard)
        self.scoreCircle.setZ(IceGameGlobals.TireRadius / 2.0)
        self.scoreCircle.setAlphaScale(0.5)
        self.scoreCircle.setTransparency(1)
        self.scoreCircle.hide()
        self.treasureModel = loader.loadModel(
            'phase_4/models/minigames/ice_game_barrel')
        self.penaltyModel = loader.loadModel(
            'phase_4/models/minigames/ice_game_tnt2')
        self.penaltyModel.setScale(0.75, 0.75, 0.69999999999999996)
        szId = self.getSafezoneId()
        obstacles = IceGameGlobals.Obstacles[szId]
        index = 0
        cubicObstacle = IceGameGlobals.ObstacleShapes[szId]
        for pos in obstacles:
            newPos = Point3(pos[0], pos[1], IceGameGlobals.TireRadius)
            newObstacle = self.createObstacle(newPos, index, cubicObstacle)
            self.obstacles.append(newObstacle)
            index += 1

        self.countSound = loader.loadSfx(
            'phase_3.5/audio/sfx/tick_counter.mp3')
        self.treasureGrabSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_sfx_vine_game_bananas.mp3')
        self.penaltyGrabSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_cannon_fire_alt.mp3')
        self.tireSounds = []
        for tireIndex in xrange(4):
            tireHit = loader.loadSfx(
                'phase_4/audio/sfx/Golf_Hit_Barrier_1.mp3')
            wallHit = loader.loadSfx('phase_4/audio/sfx/MG_maze_pickup.mp3')
            obstacleHit = loader.loadSfx(
                'phase_4/audio/sfx/Golf_Hit_Barrier_2.mp3')
            self.tireSounds.append({
                'tireHit': tireHit,
                'wallHit': wallHit,
                'obstacleHit': obstacleHit
            })

        self.arrowRotateSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_sfx_ice_force_rotate.wav')
        self.arrowUpSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_sfx_ice_force_increase_3sec.mp3')
        self.arrowDownSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_sfx_ice_force_decrease_3sec.mp3')
        self.scoreCircleSound = loader.loadSfx(
            'phase_4/audio/sfx/MG_sfx_ice_scoring_1.mp3')
    def onstage(self):
        self.notify.debug('onstage')
        DistributedMinigame.onstage(self)
        self.arrowDict = {}
        self.lt = base.localAvatar
        camera.reparentTo(render)
        camera.setPosHpr(0.0, -14.59, 10.56, 0.0, -16.39, 0.0)
        base.camLens.setMinFov(24.66/(4./3.))
        base.setBackgroundColor(Vec4(0.984, 0.984, 0.584, 1))
        self.arrowKeys = ArrowKeys.ArrowKeys()
        self.room.reparentTo(render)
        self.room.setPosHpr(0.0, 18.39, -ToontownGlobals.FloorOffset, 0.0, 0.0, 0.0)
        self.room.setScale(1)
        for anim in self.minnieAnimNames:
            self.minnie.pose(anim, 0)

        for anim in self.toonAnimNames:
            self.lt.pose(anim, 0)

        self.minnieAnimSpeedMult = {}
        self.toonAnimSpeedMult = {}
        for anim in self.minnieAnimNames:
            numFrames = self.minnie.getNumFrames(anim)
            self.minnieAnimSpeedMult[anim] = float(self.__numPingPongFrames(numFrames)) / float(self.stdNumDanceStepPingPongFrames)

        for anim in self.toonAnimNames:
            numFrames = self.lt.getNumFrames(anim)
            self.toonAnimSpeedMult[anim] = float(self.__numPingPongFrames(numFrames)) / float(self.stdNumDanceStepPingPongFrames)

        lt = self.lt
        lt.reparentTo(render)
        lt.useLOD(1000)
        lt.setPos(-3.5, 11, 0.0)
        lt.setScale(1)
        self.makeToonLookatCamera(lt)
        lt.loop('neutral')
        lt.startBlink()
        lt.startLookAround()
        self.arrowDict['lt'] = [self.arrows.pop(), self.xs.pop(), self.statusBalls.pop()]
        jj = self.lt.nametag3d
        for k in xrange(0, 2):
            self.arrowDict['lt'][k].setBillboardAxis()
            self.arrowDict['lt'][k].setBin('fixed', 100)
            self.arrowDict['lt'][k].reparentTo(jj)
            if k == 0:
                self.arrowDict['lt'][k].setScale(2.5)
                self.arrowDict['lt'][k].setColor(self.arrowColor)
            else:
                self.arrowDict['lt'][k].setScale(4, 4, 4)
                self.arrowDict['lt'][k].setColor(self.xColor)
            self.arrowDict['lt'][k].setPos(0, 0, 1)

        self.formatStatusBalls(self.arrowDict['lt'][2], jj)
        m = self.minnie
        m.reparentTo(render)
        m.setPos(-1.6, 20, 0)
        m.setScale(1)
        self.makeToonLookatCamera(m)
        m.loop('neutral')
        m.startBlink()
        self.minnie.nametag.manage(base.marginManager)
        self.minnie.startEarTask()
        self.minnie.setPickable(0)
        self.minnie.nametag.getNametag3d().setChatWordWrap(8)
        self.arrowDict['m'] = [self.arrows.pop(), self.xs.pop()]
        jj = self.minnie.nametag3d
        for k in xrange(0, 2):
            self.arrowDict['m'][k].setBillboardAxis()
            self.arrowDict['m'][k].setBin('fixed', 100)
            self.arrowDict['m'][k].setColor(self.arrowColor)
            self.arrowDict['m'][k].reparentTo(jj)
            self.arrowDict['m'][k].setScale(4)
            self.arrowDict['m'][k].setPos(0, 0, 1.7)

        base.playMusic(self.music, looping=1, volume=1)
コード例 #6
0
 def onstage(self):
     self.notify.debug('onstage')
     DistributedMinigame.onstage(self)
     base.localAvatar.collisionsOff()
     DistributedSmoothNode.activateSmoothing(1, 1)
     numToons = self.numPlayers
     self.NUMTREASURES = numToons
     camera.reparentTo(render)
     camera.setZ(36)
     camera.setHpr(0,0,0)
     camera.setX(0)
     base.camLens.setMinFov(31/(4./3.))
     camera.setY(-54)
     base.camLens.setFar(1500)
     self.introMovie = self.getIntroMovie()
     self.introMovie.start()
     self.accept('FishHit', self.fishCollision)
     toonSD = self.toonSDs[self.localAvId]
     toonSD.enter()
     toonSD.fsm.request('normal')
     toon = base.localAvatar
     toon.reparentTo(render)
     toon.setPos(-9, -1, 36)
     self.__placeToon(self.localAvId)
     self.arrowKeys = ArrowKeys.ArrowKeys()
     self.xVel = 0
     self.zVel = 0
     self.orientNode = toon.attachNewNode('orientNode')
     self.orientNode.setPos(0, 0, 1)
     self.orientNode2 = toon.attachNewNode('orientNode')
     self.orientNode2.setPos(0, 0, -1)
     self.environNode = render.attachNewNode('environNode')
     self.environModel.reparentTo(self.environNode)
     self.environModel.setScale(2.8, 2.8, 2.73)
     self.environModel.setPos(0, 0.5, -41)
     self.skyModel.setScale(1.3, 1.0, 1.0)
     boatoff = 6.75
     self.boatModel.reparentTo(self.environNode)
     self.boatModel.setPos(0, 3.0, 40 - boatoff)
     self.boatModel.setScale(2.8)
     cSphere = CollisionSphere(0.0, 0.0, 0.0 + 2.0, 3.0)
     cSphere.setTangible(0)
     name = 'boat'
     cSphereNode = CollisionNode(name)
     cSphereNode.setIntoCollideMask(DivingGameGlobals.CollideMask)
     cSphereNode.addSolid(cSphere)
     self.boatNode = cSphereNode
     self.boatCNP = self.boatModel.attachNewNode(cSphereNode)
     self.accept('reach-boat', self.__boatReached)
     self.boatTilt = Sequence(LerpFunc(self.boatModel.setR, duration=5, fromData=5, toData=-5, blendType='easeInOut', name='tilt'), LerpFunc(self.boatModel.setR, duration=5, fromData=-5, toData=5, blendType='easeInOut', name='tilt'))
     self.boatTilt.loop()
     self.mapScaleRatio = 40
     self.mapModel.reparentTo(base.a2dTopRight)
     self.mapModel.setScale(1.0 / self.mapScaleRatio)
     self.mapModel.setTransparency(1)
     self.mapModel.setPos(-0.22, 0.0, -1.30)
     self.mapModel.setColorScale(1, 1, 1, 0.7)
     self.mapModel.hide()
     if self.sndAmbience:
         self.sndAmbience.setLoop(True)
         self.sndAmbience.play()
         self.sndAmbience.setVolume(0.01)
     return
コード例 #7
0
 def __init__(self):
     self.arrowKeys = ArrowKeys.ArrowKeys()
     self.arrowKeys.disable()
コード例 #8
0
 def __init__(self, player):
     self.player = player
     self.arrowKeys = ArrowKeys.ArrowKeys()
     self.controlManager = ControlManager.ControlManager()
     self.win = False