public ParallaxSprite(Camera camera, Rectangle frame, float layerDepth, int millisecondsPerFrame, Vector2 position, Texture2D texture)
            : base(frame, frame, millisecondsPerFrame, position, texture)
        {
            this.camera = camera;
            this.layerDepth = layerDepth;

            Vector2 cameraSize = new Vector2(camera.Frame.Width, camera.Frame.Height);
            Vector2 stageSize = camera.StageSize;

            // Quadratic relationship between layerDepth and apparent "distance"
            cameraRange = (stageSize - cameraSize);
            maxDrift = cameraRange * (float)Math.Pow(layerDepth, 2);
        }
示例#2
0
        public void Draw(SpriteBatch spriteBatch, Camera camera)
        {
            string coins = String.Format("X {0}", megaman.Coins.ToString().PadLeft(2, '0'));
            string lives = String.Format("X {0}", megaman.Lives);
            string score = String.Format("{0}", megaman.Points.ToString().PadLeft(8, '0'));
            string time = String.Format("{0}", stage.Timer);
            string health = String.Format("Health: {0}", megaman.MMHealth.ToString());

            spriteBatch.Draw(characterTexture, camera.Offset + characterPosition, new Rectangle(0, 0, 32, 32), Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
            spriteBatch.Draw(characterTexture, camera.Offset + lifePosition, new Rectangle(0, 0, 32, 32), Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
            spriteBatch.Draw(lifeTankTexture, camera.Offset + lifeTankPosition, new Rectangle(0, 0, 32, 32), Color.White, 0, Vector2.Zero, lifeTankScale, SpriteEffects.None, 0);

            spriteBatch.Draw(emptyHealthbarTexture, camera.Offset + emptyHealthbarPosition, emptyHealthbarRect, Color.White);
            spriteBatch.Draw(fullHealthbarTexture, camera.Offset + fullHealthbarPosition, fullHealthbarRect, Color.White);

            spriteBatch.DrawString(font, coins, camera.Offset + lifeTankTextPosition, Color.White);
            spriteBatch.DrawString(font, lives, camera.Offset + lifeTextPosition, Color.White);
            spriteBatch.DrawString(font, score, camera.Offset + scorePosition, Color.White);
            spriteBatch.DrawString(font, time, camera.Offset + timePosition, Color.White);

            spriteBatch.Draw(characterTexture, camera.Offset + characterPosition, new Rectangle(0, 0, 32, 32), Color.White, 0, Vector2.Zero, 0.75f, SpriteEffects.None, 0);
        }
示例#3
0
 public void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     currentSprite.Draw(spriteBatch, camera);
 }
示例#4
0
 public Building4(Camera camera, ContentManager content, float layerDepth, Vector2 position)
     : base(camera, new Rectangle(0, 0, 25, 124), layerDepth, 0, position, content.Load<Texture2D>("Parallax/furthestSkyscraper"))
 {
 }
示例#5
0
 public Building2(Camera camera, ContentManager content, float layerDepth, Vector2 position)
     : base(camera, new Rectangle(0, 0, 48, 288), layerDepth, 0, position, content.Load<Texture2D>("Parallax/secondClosestSkyscraper"))
 {
 }
 public ParallaxSpriteFactory(Camera camera, ContentManager content)
 {
     this.camera = camera;
     this.content = content;
 }
示例#7
0
 public void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     spriteBatch.DrawString(font, textSource.GetText(), position, Color.White);
 }
示例#8
0
 public void Draw(SpriteBatch spriteBatch, Camera camera)
 {
 }
 public override void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     position += drift;
     base.Draw(spriteBatch, camera);
     Position -= drift;
 }
示例#10
0
 public virtual void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     visible = AABB.Intersects(camera.Frame);
     if (active && visible)
     {
         Vector2 tempPosition = new Vector2(position.X, position.Y);
         spriteBatch.Draw(texture, tempPosition, frame, Color.White, rotation, Vector2.Zero, scale, effects, layerDepth);
     #if DEBUG
         drawHitbox(spriteBatch, 2, Color.Red, tempPosition);
     #endif
     }
 }
示例#11
0
 public void Draw(SpriteBatch spriteBatch, Camera camera)
 {
     spriteBatch.DrawString(font, text, position, selected ? Color.Red : Color.White);
 }
示例#12
0
 public City(Camera camera, ContentManager content, float layerDepth, Vector2 position)
     : base(camera, new Rectangle(0, 0, 384, 384), layerDepth, 0, position, content.Load<Texture2D>("Parallax/city"))
 {
 }