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; }