Beispiel #1
0
        public AStar(BasicCube[] mapArray, int width, int height, int depth, int orientation, Vector3 enemyPos)
        {
            int max = Math.Max(Math.Max(width, height), depth);
            currentOrientation = (SpectrumEnums.Orientation)orientation;
            switch ((SpectrumEnums.Orientation)orientation)
            {
                case SpectrumEnums.Orientation.posX:
                case SpectrumEnums.Orientation.negX:
                    searchMapWidth = max;
                    searchMapHeight = max;
                    break;
                case SpectrumEnums.Orientation.posY:
                case SpectrumEnums.Orientation.negY:
                    searchMapWidth = max;
                    searchMapHeight = max;
                    break;
                case SpectrumEnums.Orientation.posZ:
                case SpectrumEnums.Orientation.negZ:
                    searchMapWidth = max;
                    searchMapHeight = max;
                    break;
            }

            this.enemyPos = enemyPos;
            map = new BasicCube[searchMapWidth, searchMapHeight];
            ResetSearchNodes();
            buildMapFromArray(mapArray);
            InititializeSearchNodes(map);
        }
 /*
  * Main Update method
  */
 public void Update(GameTime gameTime)
 {
     this.gameTime = gameTime;
     timeElapsed = ((float)gameTime.ElapsedGameTime.TotalMilliseconds / 1000);
     originOrientation = currentOrientation;
     currentKeyState = Keyboard.GetState();
     updateGravity();
     handleForwardBackwardMovement();
     handleLeftRightMovement();
     handleJumping();
     sendToPlayer();
     checkForReset();
     checkForDeath();
     maxforwardSpeed = standardFSpeed;
     maxbackwardSpeed = standardBSpeed;
     prevKeyState = Keyboard.GetState();
 }
 /*
  * Initializes Startvalues
  */
 public void setStartValues(Vector3 pos, Vector3 dir, Vector3 up, Quaternion rot, SpectrumEnums.Orientation ori)
 {
     this.startPosition = pos;
     currentPosition = startPosition;
     //   this.startDirection = dir;
     this.startUp = up;
     this.startOrientation = ori;
     this.startRotation = rot;
     velocity = Vector3.Zero;
     accelerationVector = currentDirection * acceleration;
     friction = -currentDirection * frictionValue;
 }