public bool IntersectsY(VectorSprite a, VectorSprite b) { var deltaY1 = a.Position.Y + a.Sprite.Height - b.Position.Y; var deltaY2 = b.Position.Y + b.Sprite.Height - a.Position.Y; if (deltaY1 > 0 && deltaY1 <= 1) return true; if (deltaY2 > 0 && deltaY2 <= 1) return true; return false; }
public bool IntersectsX(VectorSprite a, VectorSprite b) { var deltaX1 = a.Position.X + a.Sprite.Width - b.Position.X; var deltaX2 = b.Position.X + b.Sprite.Width - a.Position.X; if (deltaX1 > 0 && deltaX1 <= 1) return true; if (deltaX2 > 0 && deltaX2 <= 1) return true; return false; }
//Creates a copy of a sprite, adds it to the list of sprites and returns the index of the new sprite. public int copySprite(int index) { VectorSprite vectorSprite = new VectorSprite(vectorSprites[index].name + " - Copy"); vectorSprite.width = vectorSprites[index].width; vectorSprite.height = vectorSprites[index].height; vectorSprite.antialias = vectorSprites[index].antialias; vectorSprite.shapeGroupsScrollPosition = vectorSprites[index].shapeGroupsScrollPosition; vectorSprite.spriteRectangleTransform = vectorSprites[index].spriteRectangleTransform; vectorSprite.spriteSheet = vectorSprites[index].spriteSheet; vectorSprite.shapeGroupIDs = new List <int>(); for (int i = 0; i < vectorSprites[index].shapeGroupIDs.Count; i++) { vectorSprite.shapeGroupIDs.Add(vectorSprites[index].shapeGroupIDs[i]); } vectorSprite.shapeIDs = new List <int>(); for (int i = 0; i < vectorSprites[index].shapeIDs.Count; i++) { vectorSprite.shapeIDs.Add(vectorSprites[index].shapeIDs[i]); } vectorSprites.Add(vectorSprite); return(vectorSprites.Count - 1); }
void UpdateSprite(GameTime gameTime, VectorSprite sprite) { sprite.UpdatePosition(gameTime); var maxX = Graphics.GraphicsDevice.Viewport.Width - sprite.Width; const int minX = 0; var maxY = Graphics.GraphicsDevice.Viewport.Height - sprite.Height; const int minY = 0; // Check for bounce. //if (sprite.Position.X + sprite.Position.X > maxX) //{ // sprite.Speed.X *= -1; // sprite.Position.X = maxX - sprite.Position.X; //} //else if (sprite.Position.X < minX) //{ // sprite.Speed.X *= -1; // sprite.Position.X = minX; //} //if (sprite.Position.Y + sprite.Position.Y > maxY) //{ // sprite.Speed.Y *= -1; // sprite.Position.Y = maxY - sprite.Position.Y; //} //else if (sprite.Position.Y < minY) //{ // sprite.Speed.Y *= -1; // sprite.Position.Y = minY; //} // Check for bounce. if (sprite.Position.X > maxX) { sprite.Speed.X *= -1; sprite.Position.X = maxX; } else if (sprite.Position.X < minX) { sprite.Speed.X *= -1; sprite.Position.X = minX; } if (sprite.Position.Y > maxY) { sprite.Speed.Y *= -1; sprite.Position.Y = maxY; } else if (sprite.Position.Y < minY) { sprite.Speed.Y *= -1; sprite.Position.Y = minY; } }
/// <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); var mageTexture = Content.Load<Texture2D>("BlackMage"); var terraTexture = Content.Load<Texture2D>("Terra"); mage = new VectorSprite(mageTexture, new Vector2(200, 200), new Vector2(80,-90)); terra = new VectorSprite(terraTexture, Vector2.Zero, new Vector2(-110, 80)); }