예제 #1
0
		public override void Draw(Combat.PaletteFx palettefx)
		{
			Point tilestart;
			Point tileend;
			GetTileLength(Sprite.Size, out tilestart, out tileend);

			Video.DrawState drawstate = SpriteManager.DrawState;
			drawstate.Reset();
			drawstate.Blending = Transparency;
			drawstate.ScissorRectangle = DrawRect;
			drawstate.Set(Sprite);

			for (Int32 y = tilestart.Y; y != tileend.Y; ++y)
			{
				for (Int32 x = tilestart.X; x != tileend.X; ++x)
				{
					Vector2 adjustment = (Vector2)(Sprite.Size + TilingSpacing) * new Vector2(x, y);
					Vector2 location = CurrentLocation + adjustment;

					drawstate.AddData(location, null);
				}
			}

			if (palettefx != null) palettefx.SetShader(drawstate.ShaderParameters);

			drawstate.Use();
		}
예제 #2
0
		public override void Draw(Combat.PaletteFx palettefx)
		{
			Drawing.Sprite sprite = SpriteManager.GetSprite(AnimationManager.CurrentElement.SpriteId);
			if (sprite == null) return;

			Point tilestart;
			Point tileend;
			GetTileLength(sprite.Size, out tilestart, out tileend);

			Video.DrawState drawstate = SpriteManager.DrawState;
			drawstate.Reset();
			drawstate.Blending = Transparency;
			drawstate.Set(sprite);
			drawstate.AddData(CurrentLocation, null);

			if (palettefx != null) palettefx.SetShader(drawstate.ShaderParameters);

			drawstate.Use();
		}