Ejemplo n.º 1
0
    def changeYaw(self, yawSpeed = None):
        if not yawSpeed:
            yawSpeed = self.yawSpeed

        current = CIGlobals.angleMod(self.getYaw())
        ideal = self.idealYaw
        #print(current, ideal)
        if current != ideal:
            speed = yawSpeed * globalClock.getDt() * 10
            move = ideal - current
            if ideal > current:
                if move >= 180:
                    move -= 360
            else:
                if move <= -180:
                    move += 360

            if move > 0:
                if move > speed:
                    # turning left
                    move = speed
            else:
                if move < -speed:
                    # turning right
                    move = -speed

            self.setYaw(CIGlobals.angleMod(current + move))
        else:
            move = 0

        return move
Ejemplo n.º 2
0
    def isPlayerInVisionCone_FromPlayer(self, plyr):
        # Am I in the player's vision cone?

        toSelf = self.getPos() - plyr.getPos()
        yaw = CIGlobals.angleMod(CIGlobals.vecToYaw(toSelf))
        diff = CIGlobals.angleDiff(yaw, CIGlobals.angleMod(plyr.getH()))

        #print("Vision cone from player->self:", diff)

        return abs(diff) <= self.MAX_VISION_ANGLE
Ejemplo n.º 3
0
    def isPlayerInVisionCone(self, plyr):
        # Is the player in my angle of vision?

        toPlyr = plyr.getPos() - self.getPos()
        yaw = CIGlobals.angleMod(CIGlobals.vecToYaw(toPlyr))
        diff = CIGlobals.angleDiff(yaw, CIGlobals.angleMod(self.getYaw()))

        #print("Vision cone from self->player:", diff)

        return abs(diff) <= self.MAX_VISION_ANGLE
Ejemplo n.º 4
0
    def getYawDiff(self):
        currentYaw = CIGlobals.angleMod(self.getYaw())
        if currentYaw == self.idealYaw:
            return 0

        return CIGlobals.angleDiff(self.idealYaw, currentYaw)
Ejemplo n.º 5
0
 def setIdealYaw(self, yaw):
     self.idealYaw = CIGlobals.angleMod(yaw)