我使用VisualStudio2010和XNA Game Studio 4进行游戏开发。现在我想测试一下“XNA赛车游戏”(请参见此处)。我已经下载了归档文件,提取了文件,并用Visual Studio打开了解决方案。在Visual Studio中出现错误-游戏是使用XNA game Studio 3构建的,我需要安装GS 3。好的,我已经下载了GS 3并尝试安装它。现在的问题是,GS 3需要Visual Studio 2008。我没有VisualStudio2008
无论如何,是否可以将Vis
就像前面提到的,我不明白使用这些类有什么区别。每门课的优点和局限性是什么。我读了很多教程,但仍然不能决定我应该做什么
为了让事情更清楚,我买了AudioModule、AudioEmitterComponent和AudioListenerComponent。(我们的游戏是基于组件的。当你创建一个对象作为一些声音的来源(怪物或其他东西)时,我添加了发射器组件。然后我遇到了问题。我不知道如何做到最好。首先,我希望音频模块得到列表,听众也得到列表(还有wave和Soundbank的列表)现在我遇到的问题
在程序上尝试该示例时,程序会崩溃
第69行:播放器。播放视频
错误消息:Microsoft.Xna.Framework.dll中发生“System.InvalidOperationException”类型的未处理异常
其他信息:发生意外错误
我没有更改代码中的一个字符,而是使用了从VideoPlayback_4_0.zip文件夹中取出的文件。可直接从
我在其他论坛上读到有人遇到同样的问题,但我找不到一个可用的解决方案。有人知道问题的原因和解决方法吗
Stack Trace
Micro
我想知道是在SpriteBatch.Begin()中使用变换矩阵渲染整个世界还是仅渲染视口定义的区域?如果不是,那么在没有严重性能问题的情况下呈现一个巨大世界的最佳方式是什么
提前谢谢 您可以计算出该视口的边界矩形,而不必在矩形外绘制任何内容。如果您的世界是基于网格的,这将变得更加容易
对于基于栅格的世界,需要两个(嵌套)For循环来绘制视口,即宽度和高度。
对于每个循环,都需要一个起点和一个终点
要获得每个循环的起点:将(宽度/高度)除以网格中单元格的(宽度/高度),然后将该数字“floor”
我正在使用XNA 4.0,我在XNA中开发了一个应用程序。这些应用程序的目的是从XML文件中读取内容。我成功地在我的Windows计算机上运行了该应用程序,但当我将它们部署到Xbox时,出现了代码4和代码7错误
我应该看什么来诊断和修复它们?代码4是“未处理的异常”。您需要添加一个顶级异常处理程序来标识异常源(可能会有所帮助)。或者可能在调试器中启用“断开所有异常”。一旦知道未处理异常的原因,请修复它
代码7:“这是由于使用App Hub成员身份注销帐户而导致的。此崩溃不会在非评论播放中发生。”
下图显示了玩家的消极生活。。。。因为在道路上有障碍物相交…我想要的解决方案是在相交后只减少一点生命
if (Texture.playerrect.Intersects(Texture.mirchirect) || Texture.playerrect.Intersects(Texture.crabrect) || Texture.playerrect.Intersects(Texture.stonerect) || Texture.playerrect.Intersects(Te
我读过关于在XNA中渲染3D模型的书籍和网页,我已经有了使用纹理渲染简单模型的代码,但是有人能一步一步地向我解释每行代码的作用吗?有很多名称模糊的方法,我认为如果我真正理解代码的功能并记住代码,对我来说是最好的。我不知道您编写的代码是什么样子的。我该怎么向你解释呢?
阅读另一篇文章,似乎DrawableGameComponents不是前进的方向。我自己做了一些研究,并使用中的,我决定去掉DrawableGameComponents的使用。一切都编译得很好,除了我没有可用的DrawOrder,并且示例将其用于粒子
如何更改DrawOrder,就好像我使用的是DrawableGameComponent?GameComponent是一个很好的工具,可以使代码更易于使用和重用。我会忽略安德鲁·拉塞尔对另一个问题的回答。这是非常有偏见的游戏组件s可以使用。他们和单身汉
我正在读这本书“学习XNA4.0”,在第6章中,它教我们如何使用XACT音频文件播放声音。它要求我创建一个AudioEngine对象,但我找不到该类
我有正确的使用语句(Microsoft.Xna.Framework.Audio)和正确的引用(Microsoft.Xna.Framework.dll)
有人知道出了什么问题吗?这是文档中的一个错误AudioEngine实际上位于Microsoft.Xna.Framework.Xact程序集中。添加一个引用,一切都应该按预期进行
请注意,XACT在W
标签: Xna
xna-4.0texture-mapping
纹理坐标有问题。首先我想描述一下我想做什么,然后我会问这个问题
我想有一个网格,有更多的纹理只使用一个大纹理。“大纹理”合并网格在其中使用的所有纹理。我做了一个合并纹理的例程,这没有问题,但我仍然需要修改纹理坐标,因此现在只使用一个纹理而不是多个纹理的网格将所有内容都放置好
如图所示:
在左上角我得到了一个纹理(我们称之为A),我合并成了一个大纹理,右边的一个(B)。A的左上角为0,0,右下角为1,1。为了便于使用,假设B.width=A.width*2,高度也是如此。因此,在B上,迷你纹理(
例如,我在(10,10)处画一个圆,然后在下一帧上在(20,20)处画另一个圆。(10,10)处的圆不再可见
我没有打电话给graphicsdevice.clear
是否有办法使以前绘制的图形不被清除
我正在将它们绘制到一个secortional rendertarget中,以便将其用作背景
有什么想法吗?初始化RenderTarget2D时,需要使用RenderTargetUsage.PreserveContents
// Disregard the arguments up to Rende
当入侵者到达屏幕最左边时,我很难向下移动,但是当他们到达屏幕最右边时,向下移动没有困难。移动代码如下所示:
if (Invaders[0].GetXPos() < 100) // if the first invader element riches the far left of the screen, change direction, and move down four pixels.
{
AlienDirection = +1;
for (
XNA程序是否可以通过代码将资源(图像、声音等)导入程序内容?例如,用户希望向程序中添加新图像,XNA程序的行为将类似于窗口的添加文件或复制文件。如果可能,WinForm应避免
OpenFileDialog f = new OpenFileDialog();
f.Filter = "PNG files (*.png)|*.png|All files (*.*)|*.*";
f.Title = "Import Image";
不久前,我制作了一个关于2012年选举的XNA游戏(见这里),为了让它在线玩,我使用了JSIL。然而,我注意到JSIL对于某些计算机来说仍然有点复杂,并且在它们中运行不好,所以我一直在研究不同的选项,然后学习了ClickOnce。我已经通过ClickOnce以CD/DVD文件的形式发布了我的游戏,虽然发布没有错误,但我无法让它运行(请参阅让我玩滚滚草的问题)。现在我相信我知道了错误是什么,因为我的游戏使用了4个txt文件,显然这些文件没有包含在出版物的内容中。因此,为了证明我的理论,我使用了一个
标签: Xna
runtimespritefont
我想知道,在XNA应用程序中,是否可以选择字体、字体大小并在运行时立即使用它
如果无法使用内置的运行时方法,那么使用一些自动化软件(如autoit)在后台创建spritefont文件,然后在XNA应用程序中使用它而无需重新启动应用程序,可能会更容易(或更好,或更快)
我将主要在我自己的计算机上使用它来测试和挑选字体,所以如果它需要完整的VS安装以及XNA框架和任何其他东西,我可以接受。简单地说,这是可以做到的,但是你必须使用它才能加载spritefont。您可以在做任何事情之前制作两个sprit
我肯定这对某些人来说很简单,但我对三角学不太在行
正如标题所说,我试图计算一个三角形的斜边,给定相机和模型的边界框之间的距离浮动,以及光线移动的方向
更好的解释图片:
将“开始位置”视为0,0。
那么你的射线尖端在(Rx,Ry)。
这形成了一个类似于大三角形的三角形(见下图)
所以你知道小三角形的高宽比和大三角形的高宽比是一样的。所以这是真的:
Dy/Dx=Ry/Rx
由于您知道Dx、Ry和Rx,因此可以求解Dy:
Dy=Dx*Ry/Rx
现在,您可以使用以下工具找到所需的长度:
L=sqrt(
我不知道更好的说法,但我不想改变窗户的大小。我正在创建一个迷宫,它的大小可以通过脚本更改。因此,这可能会使窗口显示的迷宫变大(即使在全屏上。是否有办法缩小/放大窗口内的实际游戏?好吧,你所问的通常只是一个糟糕的用户体验,因为如果迷宫改变大小,游戏的大小会改变
也就是说,您所要求的在技术上是可能的。方法是使用SpriteBatch.Begin的最后一个参数的矩阵
这个矩阵看起来像
Matrix.CreateScale(windowWidth / gameContentTotalWidth, win
我最近刚开始和XNA打交道,在网上找不到关于这个问题的任何信息。有没有办法判断是否对特定的SpriteBatch对象调用了SpriteBatch.Begin(反之亦然End)
目前,我只为系统使用一个基本上是全局的SpriteBatch对象,主要是因为这似乎是我阅读的文章中的首选方法。我假设为每个对象创建一个SpriteBatch实例会导致太多的开销。无论如何,我在保持SpriteBatch.Begin/End同步方面遇到问题。特别是当图形对象可以包含其他图形对象时。如果我可以测试是否调用了Be
我对WindowsPhone7非常陌生。我正在写一个示例游戏,其中我想随机移动图像
在与我的一位朋友讨论时,他告诉我使用贝塞尔路径。我在网上搜索了解贝塞尔路径的概念。看起来它适合我的解决方案。但是我没有找到任何可以这样做的示例代码
请帮助我查找示例。贝塞尔路径是解决您问题的有效方法,但我建议您使用Catmull Rom样条线。要实现它还远远不够,尤其是因为XNA已经包含了一个生成此类样条曲线的函数。它也更易于使用(每个控制点也是样条曲线上的一个点)
所讨论的函数是(也有用于Vector3和Mat
我正在制作一个自上而下的rpg类型的游戏-类似于口袋妖怪,但我被角色移动所困扰。基本上,我想要为我的玩家和地图上的其他人实现一个平滑的基于平铺的移动系统。有人能有效地做到这一点吗?如果是,怎么做?如果您使用的是网格系统,就像神奇宝贝使用的一样,您可以通过设置网格在瓷砖之间移动的速度来实现这一点
例如,如果您让他们每秒移动一个磁贴,那么您可以在更新函数中使用(float)gameTime.ElapsedGameTime.TotalSeconds来确定游戏更新的速度。由此,您应该能够使角色在每次更新
我正在开发一个游戏,其中我使用了一个角色模型。使用Kinect,我现在能够根据Kinect摄像机前的玩家将所有动作应用到模型上。
现在我只想对模型应用手的运动,剩下的身体必须按原样固定。
有人能帮我实现这一点吗…我觉得你想要一个固定的骨架,你将根据骨架输入更新关节信息,并使用它来更新你的用户界面,而不是将输入骨架绘制到用户界面
创建自己的骨架对象时存在问题,因为Microsoft Kinect SDK开发人员将关节类的JointType设置为内部-这意味着无法更新JointType,因此无法更新
如果我用phyre引擎构建一个游戏/程序,我能在xna上使用它而不需要重新编码吗?PrRE是用C++编码的,XNA是C,然后是蒸汽的。p>
需要在psn、xbox和steam上发布游戏。你不能,它们是两个完全不同的引擎。不,你不能。Dang,那我怎么在所有3个平台上发布呢?我需要在phyre引擎和xna上分别编写代码吗?似乎该引擎也可以在pc上运行(由opengl或directx支持),但xbox似乎是不可能的。毕竟,phyre是索尼的产品,xbox是微软的产品。不能指望它能在竞争对手的产品上运
标签: Xna
hlslmonogamebloom
我的游戏由MonoGame(Xna克隆到Mac)制作,需要使用Bloom效果。我在MSDN()上遵循了示例中的代码。当我在2D游戏中使用这种效果时,背景变成了蓝靛紫。我在谷歌上搜索了一下这是为什么,我不知道为什么。我找不到答案。我发现了一个问题,他们说了一些关于布鲁姆之前的事情,我猜这就是这个。我把我的绘图代码放在一个组件中。我的绘图代码是:
spriteBatch.Begin();
((Pump)Game).bloomComponent.BeginDraw();
grid.DrawPe
标签: Xna
2dcollision-detectionpath-finding
我正在写一个模拟,在这个模拟中,一个生物对象应该能够向环境中的其他任意对象移动,绕过障碍物滑动,而不是进行任何智能寻路。我并没有试图让它规划一条道路——只是朝一个大致的方向前进,绕过障碍物
这是一个2D环境(俯视图),每个对象都有一个用于碰撞检测的边框。没有网格,我也不是在寻找解决方案
我还没有找到任何关于这种“愚蠢的”基于碰撞的寻路的教程,所以我可能没有用最常用的术语来描述它
关于如何实现这一点有什么建议吗(或者链接到教程)?我不久前用C#a发布了一个寻路算法
您可以尝试将其用作起点,也就是
标签: Xna
shaderhlslvertex-shader
在HLSL中,有没有办法限制编译器使用的常量寄存器的数量
具体地说,如果我有以下情况:
float4 foobar[300];
在vs_2_0顶点着色器中,编译器将愉快地生成具有256个以上常量寄存器的效果。但是2.0顶点着色器只能保证访问256个常量寄存器,所以当我尝试使用该效果时,它在运行时以一种模糊且依赖于GPU的方式失败。我宁愿它在编译时失败
这个问题尤其令人恼火,因为编译器本身在后台分配常量寄存器,而不是我要求的寄存器。我得检查一下总成,看看是否超过了限度
理想情况下,我希望在HLS
我一直在考虑如何在我的引擎()中实现后处理管理器。
我正在努力弄清楚后处理技术是如何工作的。我已经阅读并查看了webiste上的后处理示例,但这似乎重新呈现了应用后处理效果的模型。
我可以为静态模型添加此功能,但当涉及到重新绘制蒙皮模型时,我会感到困惑,因为它们的效果已经有了自己的技术。
有人能帮我理顺思路,给我指出正确的方向吗?一般来说,后处理可以在整个屏幕上工作。这真的很简单
您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标):
从这一点开始,渲染的所有内容都将渲染
标签: Xna
shaderpixel-shadervertex-shader
有没有测试像素和顶点着色器的工具?你需要一台Mac电脑才能使用它,但苹果的非常好。您可以直接键入着色器并在应用程序外部实时运行它们 (也有AMD(以前的ATI),但看起来它已经被搁置了。)
最后,在应用程序中使用着色器时,您可能会发现测试着色器很有用。它包含在DirectX SDK中。对于可以在XNA(PS 2.0-3.0)中使用的HLSL效果,您可以尝试:
(死链接)
它对图像和视频进行操作。
它支持多通道技术,vertext着色器,并且有一个很好的编辑器,在编译时报告错误消息。
这是一个阿尔
我正在为XNA开发一个(非常)简单的引擎,我需要加载一些非常基本的资产,包括一个简短的声音光点、空白纹理和字体
我的问题是做这个引擎端,我更喜欢把它和游戏端代码分开。这是可能的,还是我必须“作弊”并明确地将内容添加到游戏端项目中?假设您在一个解决方案中有“引擎”和“游戏”项目:
只需在引擎项目中创建内容项目(右键单击、添加、新建内容项目)。生成的内容将与DLL一起复制。如果它与游戏的内容项目具有相同的“内容根目录”名称,则结果将是所有内容合并到该目录中
ContentManager类基本上在目录
我有一个250像素宽,2000像素高的纹理。250x250根据各种条件在屏幕上绘制的部分(某种雪碧片,是的)。我所要做的就是在一个固定的目标矩形内进行旋转。可能吗?是。以下是如何有效旋转目标矩形:
请看下面的图片
请注意,将矩形作为目标的重载都不使用旋转参数。因为这样的事情没有多大意义。你希望目的地如何旋转是不明确的
但是,通过仔细使用位置和比例参数,可以实现与设置目标矩形相同的效果。将这些参数与原点(缩放和旋转的质心,相对于源矩形以像素为单位指定)和旋转参数相结合,以实现所需的效果
(另一方面
有人知道如何使用Microsoft Visual Studio 2010正确安装XNA Game Studio 4.0吗?我一直无法让XNA游戏工作室识别Visual Studio。我读到,一旦安装,您应该能够从“开始”菜单中的XNA文件夹下运行Visual Studio,但我没有找到这样的选项。我有一个任务在几天后到期,我现在真的在恐慌中得到正确安装这个。任何帮助都将不胜感激
我正在运行安装了Windows 7的PC,我刚刚安装了Microsoft Visual Studio Express
我正在尝试制作一个2d瓷砖贴图,但遇到了一些问题,在将瓷砖层叠在一起时会出现接缝。以下是一个屏幕截图:
我尝试了几种不同的方法来解决这个问题,包括在单独的spritebatch.Begin()/End()块中绘制。两个图层都使用完全相同的代码来获取它们的位置,因此它们应该直接绘制在另一个图层上,对吗?我做错什么了吗?我试图寻找一个答案,但没有结果:(任何帮助都将不胜感激!你是在利用整个值吗?我的意思是向量2(0,0)而不是向量2(0.5f,0.5f)。如果不是,你应该进行取整
这是一个更好的网
我每次按键发射导弹时都会发出声音。但听起来不太好。我猜这是因为按键时声音重复了很多次,而代码在更新方法中。我正在寻找一个简单的解决方案,只需在按键时播放一次声音?(我已经测试过使用一个布尔变量第一次为真,然后在播放声音后为假,但效果不好,因为我应该在何时何地再次将其设置为真)帮助很精确
// Fire
if (keyboardState.IsKeyDown(Keys.Space))
{
missile.launchMissile(spaceship.spaceshipPosition, spac
我需要知道,如果玩家/用户点击特定身体,我如何在Farseer Physics中进行检查,这可能吗
我必须编写自己的方法吗?使用鼠标.GetState()并将此帧中的鼠标状态与前一帧中的状态进行比较(您必须存储它),以确定单击的时间和位置。这应该是琐碎的,所以我不会再详细讨论了(如果您需要它,请另外问一个关于XNA而不是Farseer的问题)
将鼠标位置设置为Vector2后,将其传递给World.TestFixture(Vector2点),后者将返回Fixture。(如果要处理光标下的多个装置
如何编辑已编译的spritefont?我想更改一些字符的字距,擦除一两个像素,更改别名,但我找不到任何仍然受支持或广为人知的官方工具
如果无法(或太难)编辑已编译的spritefont,如何手动创建spritefont?没有正式方法。您会注意到,如果查看SpriteFont类型,您可以修改的内容很少(DefaultCharacter,间距和行间距)
如果您查看它的内容管道对应项,SpriteFontContent,则根本没有公共成员
最好的办法是使用查看这些类有哪些私有成员(以及它们如何工作)
我不熟悉在XNA中使用官方Kinect SDK 1.5进行编程。如何将骨骼关节的位置映射到XNA 2D屏幕以匹配图像流?这非常简单,因为Kinect SDK提供了一些映射辅助方法
MapSkeletonPointToColor将提供SkeletonPoint在二维颜色框中的位置。只需传递两个参数:骨架点和目标颜色帧格式。
如果它解决了您的问题,请毫不犹豫地将此响应标记为答案;)但是,当渲染骨架的图像元素没有默认的640x480大小时,该如何处理?使用MapSkeletonPointToColo
我试图在平面上进行法线贴图,但没有得到任何明显的结果:(
我的着色器
对于我的眼睛来说,着色器看起来很好,但它没有渲染所需的结果()。
所有的值都被传递。法线、Tengent和Binormal在我创建网格时被正确计算,我已经检查过了!
以下是环境光、漫反射、镜面反射和凹凸贴图的屏幕
他们似乎是合法的。。。
凹凸贴图是(bump=normalize(mul(bump,input.WorldToTangentSpace))的结果,它看起来确实正确,但对最终结果没有任何影响。
也许我不理解不
这是我正在处理的一个项目的代码,其中一个敌人在屏幕底部来回移动
class enemy1
{
Texture2D texture;
public Vector2 position;
bool isAlive = false;
Random rand;
int whichSide;
public enemy1(Texture2D texture, Vector2 position)
{
this.texture = textu
早些时候,我遇到了一个问题,我的Windows光标与游戏不协调,并在这里问我如何解决这个问题。一位成员建议我隐藏Windows光标并创建一个自定义游戏光标,所以我这样做了。然而,出现了一个新问题
我的游戏光标通常偏移到Windows鼠标的右侧,因此当我想将游戏光标移动到窗口的左侧并单击鼠标左键时,会对游戏造成干扰,例如将背景中的应用程序置于顶部
以下是我的意思:
如您所见,游戏光标偏移到Windows光标的右侧,如果我使用游戏光标单击窗口左侧的某个对象,则背景中的应用程序(本例中为Google
当按下一个键时,屏幕上会显示一个纹理。在基于上的布尔帮助的更新方法中对此进行检查。按F1键表示如果“帮助打开”为false,则显示纹理并使“帮助打开”为true。如果help_on true,那么将其设为false,这里应该删除一个精灵。有人能给我一个小费吗?我已经知道这可能不是解决问题的方法,但我不知道如何用另一种方法解决问题。由于我不了解您的游戏架构,我将提供一种非常简单的方法:
在更新方法中:
kbdState = Keyboard.GetState();
help_on = kbdSta
我们有一个相当直接/简单的游戏,不幸的是它在客户端的PC上引发了一个问题
事件查看器中的异常表示缺少需求(见图)
我已经阅读了以下文章,其中描述了在其他计算机上部署XNA游戏所需的内容。我的游戏是建立在XNA4.0上的
我已确保满足最低要求(例如Windows操作系统、Direct X驱动程序、.NET Framework安装)
在使用Reflector深入挖掘Microsoft.Xna.Frameworkdll后,我可以看到游戏抛出了其中一个异常:NoSuitableGraphicsDev
我是XNA游戏工作室的一年级新生。我必须为今年的课程做一个游戏,没什么稀奇的,它应该是一个定制版本的太空带攻击游戏,我的问题是课程是一个为自己找答案的类型,我们必须添加多人游戏、360度射击能力和供玩家拾取的电源。我必须有两个玩家可以在同一个屏幕上玩,一个用键盘,另一个用鼠标,我希望小行星可以被摧毁,我真的不知道如何使我的飞船能够360度拍摄,甚至根本无法转动。我不是在找人帮我写这个游戏,我只是想知道是否有人能给我一些建议,也许是我需要思考的,或者我可以在网上找到相关的教程。老实说,我现在只是在
我已经开发、构建并部署了由zune hd的新项目模板创建的应用程序。问题是,只要应用程序退出,Zune就会重新启动。当从PC进行远程调试或直接从设备运行时,会发生这种情况。它在调试模式和发布模式下都会发生。我已经包含了基本的模板代码,但它非常通用。有人有什么想法吗
public class DrawGame : Microsoft.Xna.Framework.Game
{
private GraphicsDeviceManager m_graphics;
private Spri
标签: Xna
xna-4.0texturingcylindrical
基本上,我试图覆盖一个老虎机卷轴(白色圆柱模型),其外部有多个均匀分布的纹理。该程序将仅限于Windows,并且纹理将在运行时动态加载,而不是使用内容管道。(Microsoft示例中使用XNA的基于Windows的多屏幕设置)
我能在网上找到的大多数例子都是针对XNA3的,在这一点上,我似乎仍在胡言乱语
因此,我正在寻找有人能提供的关于游戏中物体纹理的任何帮助,比如具有多种纹理的圆柱体
也许有一本好书可以恰当地描述XNA中纹理的工作原理(特别是4.0)
谢谢您有一些选择。这取决于两件事:模型是在
我目前正在使用Silverlight&XNA为WindowPhone创建一个2D冒险游戏。当我调试代码时,没有任何错误。而在运行游戏时,动作不流畅细腻,似乎速度较慢。
是否使用WCF记录用户的信息并出现延迟?或者需要渲染的图片太多?分析您的游戏性能:
以下是一些提高性能的方法:但是我的游戏也在Lumia 800中运行。问题仍然存在。请尝试分析游戏的性能。即使在像lumia 800这样功能更强的手机上运行,如果编码不正确,对于最简单的游戏来说也是一个问题。嗨,我试着分析我的游戏的性能。研究发现,该
我正在做一个简单的platformer游戏,想知道如何“拿起”一个精灵并让它结束游戏。我在任何地方都找不到任何资源,我唯一能找到的就是使用XNA platformer初学者工具包。。。一些我正在积极避免的事情。因此,基本的想法是玩家拿起一个苹果——如果是有毒的,则提示输屏;如果是金色的,则提示赢屏。我假设你的角色有一个碰撞框。只需创建一个名为拾取的对象类,然后将这些对象添加到您的环境中。使这些对象也有一个碰撞框,以便玩家可以检测到他正在触摸它们,并在玩家拾取对象时(通过简单触摸或触摸+输入)要调
我有一个足够简单的着色器,支持多个点光源。
灯光存储为灯光结构数组(最大大小),当其更改时,我会传入活动灯光的数量。
问题出在PixelShader函数中:
这是基本的东西,从纹理中获得基本颜色,在灯光数组中循环0到NumacTivelills,并添加效果,效果很好,但性能很差
但是,如果我用一个相同值的常数替换对全局var numActiveLights的引用,性能就可以了。
我只是不明白为什么引用变量会产生30+fps的差异
谁能解释一下吗
完整着色器代码:
#define MAX_POIN
在Win8上使用Monogame3.0.1,我有一个SoundEffectInstance,如果我让它继续玩,它会无缝循环。但是,当我反复播放并停止(或暂停并继续)时,当它从播放转换为静音时,通常会导致响亮的弹出声或爆裂声(反之亦然)。这是声音文件、库或其他方面的问题吗?有没有更好的方法来暂停/恢复一个声音而不产生令人讨厌的副作用?我想说的是尝试一大堆随机的声音效果,看看它们是否产生与您当前声音效果相同的结果,并将您的发现作为您问题的更新发布。如果你发布你的音效代码也会很有帮助。请遵循这些步骤,
标签: Xna
drawingmonogamespritebatch
我目前正在做一个自上而下的游戏,使用MonoGame,它使用瓷砖来指示一个位置是否可以行走。瓷砖大小为32x32(图像中也有)
一个200 x 200的网格被墙砖填充(一个随机生成器应该创建一条路径和一个房间),但是当我在屏幕上绘制所有的瓷砖时,很多瓷砖都丢失了。下面是一个图像,在该图像中,在位置(x81 y183)之后,瓷砖根本没有绘制
用于填充阵列的代码将墙瓷砖放置在栅格上,瓷砖的位置是其阵列位置乘以瓷砖大小(32x32),父对象用于相机位置
public override voi
有没有一种简单的方法可以使默认XNA方法SpriteBatch.DrawString用符号替换spritefont中不存在的字符?我可以使用扩展方法,但我不确定如何实现它,因为事先无法知道字符是否不在spritefont中。此功能是内置的。打开您字体的.spritefont文件并向下滚动至此处:
<!--
If you uncomment this line, the default character will be substituted if you draw
or measure
标签: Xna
shaderhlslvertexoutline
我有个问题,希望你能帮我。我一直在忙着用xna制作游戏,最近开始使用着色器(hlsl)。有一个着色器,我喜欢,使用,并希望改进
着色器通过绘制模型的背面(黑色)并沿其法线平移顶点来创建轮廓。现在,对于平滑着色模型,这很好。一、 不过,我使用的是平面阴影模型(我是从手机上发布的,但如果有人不明白这意味着什么,我可以稍后上传图片)。这意味着顶点将沿其对应面的法线平移,从而在面之间形成可见的间隙
现在,问题是:有没有一种方法可以计算(在着色器或xna中),我应该如何平移每个顶点,或者唯一可行的方法是只
1 2 3 4 5 6 ...
下一页 最后一页 共 18 页