标签: xna

196
推荐指数
4
解决办法
18万
查看次数


如何卸载.vsix Visual Studio Extensions?

我目前正在尝试为Visual Studio Express 2013安装XNA Game Studio.我在实际安装XNA框架之前意外地运行了.vsix程序.

安装它并重新运行.vsix之后,我收到一条消息错误,指出已经安装了扩展.这不是假的.

我已经尝试了很多东西来"删除"空的扩展:进入%LocalAppData%\ Microsoft\VisualStudio并试图找到扩展名,但发现自己没有任何东西,例如.

我想知道如何正确卸载并重新安装框架.

xna uninstall vsix visual-studio-2013

66
推荐指数
5
解决办法
5万
查看次数

如何计算弹跳角度?

我玩了一会儿,但我简直无法理解.

我制造了一个发射导弹的坦克,当导弹击中墙壁时,我希望它们反弹,但我希望它们能够以正确的角度反弹.

现在我没有任何障碍,当导弹越过viewportRectangle我制造的时候导弹就会反弹.

我正在寻找的解决方案是否相当先进?

有相对简单的方法吗?

c# xna physics

62
推荐指数
5
解决办法
7万
查看次数

在C#中将字符串转换为Color

我遇到的问题是如何将输入字符串如"RED"转换为Color.RedC#中的实际Color类型.有没有办法做到这一点?

我可以考虑为每种颜色类型使用switch语句和case语句,但我认为这不够聪明.

.net c# xna

60
推荐指数
6
解决办法
13万
查看次数

如何在xna中设置窗口/屏幕大小?

如何在XNA中调整窗口的大小.

默认以800x600分辨率开始.

xna fullscreen

53
推荐指数
2
解决办法
9万
查看次数

将纹理(绘制为平面3D对象)转换为模仿深度时,黑色线条会随机出现

我们正在使用XNA开发一个自上而下的RPG.最近我们在编写显示地图的代码时陷入了挫折.在绘制地图时,使用正常变换矩阵的自上而下视图,一切似乎都很好.当使用非平面变换矩阵时,例如挤压顶部或底部以模拟深度,当相机改变位置时,出现黑线(顶部或底部的行,当向左或向右挤压时的列).移动和放置似乎是随机的.(图片进一步提供.)

背景资料

地图由瓷砖组成.原始纹理具有由32x32像素组成的图块.我们通过创建2个三角形并在这些三角形上显示原始纹理的一部分来绘制切片.着色器为我们做了这个.有三层三角形.首先,我们绘制所有不透明的瓷砖和所有半透明和部分透明瓷砖的所有不透明像素,然后是所有半透明和部分透明的瓷砖和像素.这样可以正常工作(但是当我们使用浮点因子进行缩放时,有时颜色混合的线条位于切片行和/或列之间).

绘制状态

我们对所有瓷砖使用相同的rasterizerState,并且在绘制实体或半透明瓷砖时我们在两者之间切换.

_rasterizerState = new RasterizerState();
_rasterizerState.CullMode = CullMode.CullCounterClockwiseFace;

_solidDepthState = new DepthStencilState();
_solidDepthState.DepthBufferEnable = true;
_solidDepthState.DepthBufferWriteEnable = true;

_alphaDepthState = new DepthStencilState();
_alphaDepthState.DepthBufferEnable = true;
_alphaDepthState.DepthBufferWriteEnable = false;
Run Code Online (Sandbox Code Playgroud)

在阴影中,我们将SpriteBlendMode设置如下:

第一个固体层1使用

AlphaBlendEnable = False; 
SrcBlend = One; 
DestBlend = Zero; 
Run Code Online (Sandbox Code Playgroud)

所有其他实心和透明层(稍后绘制)使用

AlphaBlendEnable = True; 
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha; 
Run Code Online (Sandbox Code Playgroud)

其他着色器也使用它.在SpriteBatchSpriteFonts使用的,使用默认设置.

生成的纹理

一些图块即时生成并保存到文件中.加载地图时会加载该文件.这是使用RenderTarget如下创建完成的:

RenderTarget2D rt = new RenderTarget2D(sb.GraphicsDevice, 768, 1792, false, 
    SurfaceFormat.Color, DepthFormat.None);
    sb.GraphicsDevice.SetRenderTarget(rt);
Run Code Online (Sandbox Code Playgroud)

生成后,文件将被保存并加载(因此,当设备重置时,我们不会丢失它,因为它不再存在于a RenderTarget).我尝试使用mipmapping,但它是一个spritesheet.没有关于瓷砖放置位置的信息,因此mipmapping是无用的,并没有解决问题.

顶点

我们遍历每个位置.这里没有浮点,但位置是Vector3(Float3).

for (UInt16 …
Run Code Online (Sandbox Code Playgroud)

c# graphics shader xna

51
推荐指数
2
解决办法
1461
查看次数

XNA和DirectX(C#)之间的比较

在PC开发方面(不包括Xbox和Zune),

XNA和C#DirectX有什么区别?C#DirectX是否比XNA具有明显的优势(在速度,版税等方面)?

这两者与速度非托管C++ DirectX相比如何?

游戏编程方面的行业在哪里发展?

c# directx xna

50
推荐指数
4
解决办法
3万
查看次数

如何使用XNA绘制线条?

我已经阅读了一些涉及XNA的教程(以及它的各种版本),我仍然对绘制基元有点困惑.一切似乎都很复杂.

有人可以使用代码向我展示最简单的XNA实现,即在屏幕上绘制一行或两行吗?也许有一个简短的解释(包括样板)?

我不是游戏程序员,我有很少的XNA经验.我的最终目标是在屏幕上绘制一些线条,我最终将通过旋转等方式(手动)进行转换.然而,对于这第一步......我需要简单画线!我记得在我古老的OpenGL时代,当用一些方法调用绘制一条线时,它是相当简单的.我应该简单地恢复使用非托管Directx呼叫吗?

primitive xna drawing lines shapes

45
推荐指数
4
解决办法
6万
查看次数

XNA:获取屏幕的宽度和高度

如何在XNA中获得整个屏幕的宽度和高度?

xna fullscreen

44
推荐指数
2
解决办法
4万
查看次数