C# 无法识别基本绘图方法BlendState?
我非常擅长编程,但是,我对c#(xna)是新手,我正在按照教程在屏幕上绘制精灵,在绘制方法中使用blendstate方法时无法识别:C# 无法识别基本绘图方法BlendState?,c#,xna,sprite,draw,alphablending,C#,Xna,Sprite,Draw,Alphablending,我非常擅长编程,但是,我对c#(xna)是新手,我正在按照教程在屏幕上绘制精灵,在绘制方法中使用blendstate方法时无法识别: protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here // Draw
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
// Draw the sprite.
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
//无法识别混合状态(将波形放在下面)
提前谢谢,因为这确实让我很困扰。我的第一个想法是:如果你把鼠标移到错误上会发生什么?它应该给你一个工具提示,告诉你实际的错误是什么 此外,如果源文件顶部没有使用Microsoft.Xna.Framework.Graphics的
(但是项目引用了Microsoft.Xna.Framework.Graphics.dll,您也需要它),它还将为您提供一个小框,供您单击以添加该using语句(我相信弹出的快捷键是Ctrl-Shift-F10)
您也可以只传入null
而不是BlendState.AlphaBlend
,因为这是默认的混合状态(请参阅)
我的第二个想法是,您正在使用旧版本XNA的XNA 4.0教程。是吗?解释了SpriteBatch中的差异。我的第一个想法是:如果您将鼠标悬停在错误上会发生什么?它应该会给您一个工具提示,其中包含告诉您实际错误的文本
此外,如果源文件顶部没有使用Microsoft.Xna.Framework.Graphics的(但是项目引用了Microsoft.Xna.Framework.Graphics.dll,您也需要它),它还将为您提供一个小框,供您单击以添加该using语句(我相信弹出的快捷键是Ctrl-Shift-F10)
您也可以只传入null
而不是BlendState.AlphaBlend
,因为这是默认的混合状态(请参阅)
我的第二个想法是,您正在使用旧版本XNA的XNA 4.0教程。是吗?解释了SpriteBatch中的差异。我的代码顶部确实有使用Microsoft.XNA.Framework.Graphics的代码,但是,我找不到任何说明我实现了该引用的内容。我该怎么做?我右键单击ref引用并单击“新建引用”,然后我双击了Microsoft.Xna.Framework,但它没有帮助。错误(当我将鼠标悬停在错误上时)这是:错误1名称“Blendstate”在当前上下文中不存在谢谢,ps,当我将“Blendstate.AlphaBlend”设置为“null”时,它给了我此错误:错误1方法“Begin”没有重载接受“2”arguments@Custard:我已更新了我的答案。我认为您的XNA版本不匹配。@AndrewRussell混合状态是什么仅适用于xna 3.1?@RickardB xna 3.1及更早版本:对于SpriteBatch
,您只需提供一个SpriteBlendMode
来Begin
并为您进行设置。否则,GraphicsDevice.RenderState
通过以下属性提供对混合状态各个部分的访问:AlphaBlendEnable
,AlphaBlendOperation
,SourceBlend
,DestinationBlend
,SeparateAlphaBlend
(可能还有其他)。(如果可能,建议更新到XNA 4.0。状态对象非常好。)我的代码顶部有使用Microsoft.Xna.Framework.Graphics的代码,但是,我找不到任何东西表明我实现了该引用。我该怎么做?我右键单击引用,然后单击新建引用,然后双击Microsoft.Xna.Framework,但没有帮助。错误(当我将鼠标移到错误上时)这是:错误1名称“Blendstate”在当前上下文中不存在谢谢,ps,当我将“Blendstate.AlphaBlend”设置为“null”时,它给了我此错误:错误1方法“Begin”没有重载接受“2”arguments@Custard:我已更新了我的答案。我认为您的XNA版本不匹配。@AndrewRussell混合状态是什么仅适用于xna 3.1?@RickardB xna 3.1及更早版本:对于SpriteBatch
,您只需提供一个SpriteBlendMode
来Begin
并为您进行设置。否则,GraphicsDevice.RenderState
通过以下属性提供对混合状态各个部分的访问:AlphaBlendEnable
,AlphaBlendOperation
,SourceBlend
,DestinationBlend
,SeparateAlphaBlend
(可能还有其他)。(如果可能,建议更新到XNA 4.0。状态对象非常好。)
spriteBatch.Draw(myTexture, spritePosition, Color.White);
spriteBatch.End();
base.Draw(gameTime);
}