Example #1
0
 /// <summary>
 /// LoadContent will be called once per game and is the place to load
 /// all of your content.
 /// </summary>
 protected override void LoadContent()
 {
     // Create a new SpriteBatch, which can be used to draw textures.
     spriteBatch = new SpriteBatch(GraphicsDevice);
     MovingSprite ship = new MovingSprite(GraphicsDevice, "spaceShip", 1f);
     // TODO: use this.Content to load your game content here
 }
        public override void Update(float elapsedTime)
        {
            //Pull all moving sprites towards the star
            foreach (KeyValuePair <string, MovingSprite> kvp in movingSprites)
            {
                MovingSprite sprite = kvp.Value;

                //Get sprite and gravObject positions
                Vector2 gravObjectPos = new Vector2(this.x, this.y);
                Vector2 spritePos     = new Vector2(sprite.x, sprite.y);

                //Calculate direction vector between GravObject and sprite
                Vector2 dirVec = gravObjectPos - spritePos;

                //Find the distance between ship and Gravobject
                float distance = dirVec.Length();

                //Normalize the direction vector
                dirVec.Normalize();

                //Accelerate the ship toward the star
                float spritexAcc = dirVec.X * gravityStrength / distance;
                float spriteyAcc = dirVec.Y * gravityStrength / distance;

                //Update ship speed
                sprite.xSpeed += spritexAcc * elapsedTime;
                sprite.ySpeed += spriteyAcc * elapsedTime;

                //Update ship position
                sprite.x += sprite.xSpeed * elapsedTime;
                sprite.y += sprite.ySpeed * elapsedTime;
            }
        }
 public void AddtoAliens(string Key, MovingSprite sprite)
 {
     aliens.Add(Key, sprite);
 }
 public void AddtoMovingSprites(string Key, MovingSprite sprite)
 {
     movingSprites.Add(Key, sprite);
 }