Ejemplo n.º 1
0
 public void Draw(int x, int y, SpriteBatch g, EntitySpriteSheet sheet, float SpriteDepth)
 {
     if (CurXSpeed > 0)
     {
         FaceingLeft = false;
     }
     if (CurXSpeed < 0)
     {
         FaceingLeft = true;
     }
     g.Draw(sheet.Sheet, new Rectangle(x, y, SpriteSheet.SpriteSize, SpriteSheet.SpriteSize * 2), sheet.GetSprite(ID), Color.White, 0, new Vector2(0, 0), FaceingLeft ? SpriteEffects.None : SpriteEffects.FlipHorizontally, SpriteDepth);
 }
Ejemplo n.º 2
0
        public override void Update()
        {
            if (!Visible)
            {
                return;
            }

            if (!IsStatic)
            {
                if (IsAffectedByGravity)
                {
                    if (IsJumping)
                    {
                        Velocity += 5;
                    }
                    else
                    {
                        Velocity = 0;
                    }

                    Y = Y + Velocity;

                    IsJumping = true;
                }


                if (IsMoving)
                {
                    if (Facing == Direction.RIGHT)
                    {
                        X = X + Acceleration;

                        this.sprite.TextureRect = EntitySpriteSheet.GetNextSprite(Direction.RIGHT);
                    }

                    if (Facing == Direction.LEFT)
                    {
                        if (!AllowOffscreen)
                        {
                            if (X > 0)
                            {
                                X = X + Acceleration;
                            }
                        }
                        else
                        {
                            X = X + Acceleration;
                        }

                        this.sprite.TextureRect = EntitySpriteSheet.GetNextSprite(Direction.LEFT);
                    }
                }

                if (!IsMoving)
                {
                    if (Facing == Direction.NONE)
                    {
                        this.sprite.TextureRect = EntitySpriteSheet.GetFirstSprite(Direction.NONE);
                    }

                    if (Facing == Direction.RIGHT)
                    {
                        this.sprite.TextureRect = EntitySpriteSheet.GetFirstSprite(Direction.RIGHT);
                    }

                    if (Facing == Direction.LEFT)
                    {
                        this.sprite.TextureRect = EntitySpriteSheet.GetFirstSprite(Direction.LEFT);
                    }
                }

                if (Velocity != 0 && Facing == Direction.RIGHT)
                {
                    this.sprite.TextureRect = EntitySpriteSheet.GetFirstSprite(Direction.JUMPRIGHT);
                }

                if (Velocity != 0 && Facing == Direction.LEFT)
                {
                    this.sprite.TextureRect = EntitySpriteSheet.GetFirstSprite(Direction.JUMPLEFT);
                }
            }
            else
            {
                if (this.AutoCycleStaticSpriteSheet && this.entitySpriteSheet.TotalFrames > 1)
                {
                    this.sprite.TextureRect = EntitySpriteSheet.GetNextSprite(Direction.NONE);
                }


                Viewport       v  = _gameObject.SceneManager.CurrentScene.viewPort;
                ScreenLocation sl = v.TileToScreen(this.OriginTileRow, this.OriginTileCol);
                this.X = sl.X + v.yOffset;
                this.Y = sl.Y + Velocity;
            }

            base.Move();
        }