[スポンサードリンク]
2017-03-15 09:05:32
【MonoGame】画像(Texutre2D)の半透明描画
マルチプラットフォーム対応のゲーム制作フレームワーク「MonoGame(モノゲーム)」の画像(Texture2D)を半透明描画する方法です。
[スポンサードリンク]
spriteBatchにDrawするときに「Color」を指定しますが、以下のようにColorのコンストラクタの引数RGBAをalphaと指定します。
alphaは0~255の範囲で、128なら透明度は50%という感じになります!

alpha = 128;
Color color = new Color( alpha, alpha, alpha, alpha );


猫が半透明になりました。



具体的には以下全コードの赤字部分をご覧ください。
Game1.csに以下をコピペすれば動くはずです。

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace TestProject
{
	public class Game1 : Game
	{
		private GraphicsDeviceManager _graphics;
		private SpriteBatch _spriteBatch;

		Texture2D tex_test;

		public Game1()
		{
			_graphics = new GraphicsDeviceManager(this);
			Content.RootDirectory = "Content";
			IsMouseVisible = true;
		}

		protected override void Initialize()
		{
			// TODO: Add your initialization logic here

			base.Initialize();
		}

		protected override void LoadContent()
		{
			_spriteBatch = new SpriteBatch(GraphicsDevice);
			tex_test = Texture2D.FromFile( GraphicsDevice, "../../../resource/neko.jpg");
			
		}

		protected override void Update(GameTime gameTime)
		{
			if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
				Exit();

			// TODO: Add your update logic here

			base.Update(gameTime);
		}

		protected override void Draw(GameTime gameTime)
		{
			GraphicsDevice.Clear(Color.CornflowerBlue);

			// TODO: Add your drawing code here

			_spriteBatch.Begin();
			Color color = new Color( 128,128,128,128 );
			_spriteBatch.Draw( tex_test, Vector2.Zero, color );
			_spriteBatch.End();

			base.Draw(gameTime);
		}
	}
}


[スポンサードリンク]
コメント