c语言正方形边框怎么输出,c# – 如何绘制正方形边框?

我刚刚以这种方式创建了一个Texture2D的扩展方法:

static class Utilities {

public static void CreateBorder( this Texture2D texture,int borderWidth,Color borderColor ) {

Color[] colors = new Color[ texture.Width * texture.Height ];

for ( int x = 0; x < texture.Width; x++ ) {

for ( int y = 0; y < texture.Height; y++ ) {

bool colored = false;

for ( int i = 0; i <= borderWidth; i++ ) {

if ( x == i || y == i || x == texture.Width - 1 - i || y == texture.Height - 1 - i ) {

colors[x + y * texture.Width] = borderColor;

colored = true;

break;

}

}

if(colored == false)

colors[ x + y * texture.Width ] = Color.Transparent;

}

}

texture.SetData( colors );

}

}

然后我测试了:

//...

protected override void Initialize( ) {

// TODO: Add your initialization logic here

square = new Texture2D( GraphicsDevice,100,100 );

square.CreateBorder( 5,Color.Red );

base.Initialize( );

}

//...

protected override void Draw( GameTime gameTime ) {

GraphicsDevice.Clear( Color.CornflowerBlue );

// TODO: Add your drawing code here

spriteBatch.Begin( );

spriteBatch.Draw( square,new Vector2( 0.0f,0.0f ),Color.White );

spriteBatch.End( );

base.Draw( gameTime );

}

结果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值