标签: xna

XNA 2D游戏引擎

我刚刚回到游戏开发阶段,我对XNA印象非常深刻.我唯一的问题是我想要一个基于免费社区的2D游戏引擎,以便我可以利用社区的力量.有没有人知道目前正在支持的XNA 2d游戏引擎还是我必须自己编写一个?

xna 2d

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

iPhone上的XNA

我不知道这是一个奇怪的问题,但我怎么能在iPhone/iTouch上运行用XNA制作的游戏?应该使用哪些步骤/工具(现有的或想象的......)?

注意:目标是避免修改现有的C#代码

更新:
如果我理解正确,我必须能够:
1)在Mono上运行我的XNA代码(monoxnaSilverSprite,承诺?)
2)在iPhone上运行Mono(MonoTouch)

.net c# iphone clr xna

14
推荐指数
4
解决办法
7203
查看次数

Windows游戏库和类库之间有什么区别?

Windows游戏库类库之间有什么区别?是否只是通过包含XNA框架开始?

此外,Windows/Xbox360/Zune游戏库之间的差异在哪里?他们似乎都从相同的参考文献(Microsoft.Xna.Framework,Microsoft.Xna.Framework.Game)开始.

c# xna

14
推荐指数
1
解决办法
1825
查看次数

多目标.NET库的最佳实践

我计划发布一个开源(MIT).NET库,但也包括DLL,以方便人们使他们不必自己编译所有内容.

我的库在它引用的类型中非常简单,唯一真正的依赖似乎是.NET 3.0或更高版本(因为它指的是Func<T>等等).

我希望我的库可以被多个目标使用,包括.NET 4.0服务器,.NET 3.5服务器,Windows Phone 7 Silverlight,普通Silverlight,XNA(电话),XNA(Windows)和XNA(XBox 360).

我确保不使用我所针对的平台上没有的任何类型,例如HashSet<T>在Windows Phone 7上不可用,所以我没有使用它.

我是否需要为这些目标制作不同的项目,因此需要多个DLL,或者是否有某种方法可以为它们生成一个共同的DLL?

.net silverlight xna windows-phone-7

14
推荐指数
1
解决办法
1133
查看次数

创建和写入XML文件会引发异常 - >系统内存不足异常?


我已经开发了一段时间在XNA中称为"体素"的小游戏.一个.NET C#像Minecraft游戏.我使用一个简单的概念来保​​存和读取我的游戏中的数据来构建世界地图.一切都存储在xml文件中.

现在我正在尝试加载更大的地图,并且在生成地图期间会出现'paf'异常:

[ 系统内存不足异常 ]

我不明白为什么,因为在异常被提出后我的文件不是很重,它大约是70 MB.在生成高达70 mbXML文件期间看到异常引发是否正常?

使用的开发环境

  • Microsoft Windows 7(x64)位
  • Visual Studio 2012专业版更新3
  • 8192拉姆
  • 英特尔i5 CPU 2.5 Ghz(4 cpus)

我确实用CLR分析器进行了测试,以检查垃圾收集器的工作原理:

在此输入图像描述 在此输入图像描述

我初始化我的XmlWritter的代码:

    private XmlTextWriter myXmlTextWriter ;


    #region prepareNewWorldXmlFIle
    private void PreparedNewWorldXmlFile()
    {
        Stream fs = new FileStream(currentPath + "World\\world.xml", FileMode.Create);

        myXmlTextWriter = new XmlTextWriter(fs,Encoding.ASCII);
        myXmlTextWriter.Formatting = Formatting.Indented;
        myXmlTextWriter.WriteStartDocument(false);
        myXmlTextWriter.WriteComment("World Map ID:");
        //World and his attribute
        myXmlTextWriter.WriteStartElement("World");
        myXmlTextWriter.WriteStartElement("Matrix", null);
        myXmlTextWriter.WriteStartElement("Regions");
    }
    #endregion
Run Code Online (Sandbox Code Playgroud)

我用来生成我的世界地图并编写一个xml文件的代码:

    //Octree calcul and generate map to xml file
    foreach (Region …
Run Code Online (Sandbox Code Playgroud)

.net c# xna garbage-collection

14
推荐指数
1
解决办法
2186
查看次数

游戏如何处理已保存的内容?

我在这里没有看到这个问题的答案,这让我害怕它非常简单而且我只是遗漏了一些东西,但是这里有.

背景,随意跳过:几年前我跳过了我的学士学位需要一门课程.理论上它是计算机图形学,但自从我离开它以后,它变得更加游戏开发.这很好,因为对我而言,它比填充算法和翻译更有趣,以及它曾经是什么.这是一个每隔一年才提供的第四年课程,但我已经成功地与该部门进行了交谈,让我对同一主题进行了第四年的独立研究并称之为足够好.

"运行"独立研究的教授没有教授实际的计算机图形学课程,所以虽然他是一个聪明的家伙,但这不是他的领域.所以我的大部分问题留给我,一本教科书和互联网.你知道......就像一个独立的研究应该.:)

/背景

我有一个喜欢开发游戏系统以获得乐趣的伙伴.我计划参加他的一款桌面游戏并将其变成使用XNA的电脑游戏.

我没有预见到游戏机制会遇到任何难以克服的挑战,但我很好奇的是大多数游戏如何保存他们的内容?我的意思是在几个方面,希望我可以清楚地表达它们.

以您曾经玩过的任何RPG为例.您可以点击"保存"按钮并保存世界,您的角色信息以及其他必要信息.然后,您可以点击"加载"按钮并将其恢复.

或者是全国人大对话的情况.当我碰到Merchant#853时,他随机吐出3个不同的问候之一.

还有其他我能想到的,但它们实际上只是同一主题的变体.即使有这两个例子,在我看来也可以使用相同的机制,但那个机制是什么?

我已经做了多年的网络开发,所以我的脑海里会自动跳到"数据库!".数据库是解决任何问题的方法.我可以看到它在这里如何工作,但开销似乎很陡峭."这是我的6mb编译游戏......哦和68mb MySQL安装." 或者甚至更糟,因为我正在使用XNA,也许我需要找到一种捆绑SQL Server的方法.:)

我想也许是XML,但这对我来说也不合适.如果我想在XBox上运行它会如何工作?还是Zune?(这些对于我正在做的事情来说不是必需的,但必须有一个解决方案,将其考虑在内.)

谁知道秘密?或者还有一些想法?

谢谢Jeff

database xna

13
推荐指数
3
解决办法
7698
查看次数

如何在XNA中正确计算FPS?

我写了一个组件来显示当前的FPS.
其中最重要的部分是:

    public override void Update(GameTime gameTime)
    {
        elapseTime += (float)gameTime.ElapsedRealTime.TotalSeconds;
        frameCounter++;

        if (elapseTime > 1)
        {
            FPS = frameCounter;
            frameCounter = 0;
            elapseTime = 0;
        }
        base.Update(gameTime);
    }


    public override void Draw(GameTime gameTime)
    {
        spriteBatch.Begin();

        spriteBatch.DrawString(font, "FPS " + ((int)FPS).ToString(), position, color, 0, origin, scale, SpriteEffects.None, 0);

        spriteBatch.End();

        base.Draw(gameTime);
    }
Run Code Online (Sandbox Code Playgroud)

在大多数情况下它工作正常,但最近我遇到了问题.
当我把下面的代码放入游戏的更新方法时,奇怪的事情开始发生.

       if (threadPath == null || threadPath.ThreadState != ThreadState.Running)
        {
            ThreadStart ts = new ThreadStart(current.PathFinder.FindPaths);
            threadPath = new Thread(ts);
            threadPath.Priority = ThreadPriority.Highest;
            threadPath.Start();
        }
Run Code Online (Sandbox Code Playgroud)

这段代码的主要思想是始终在不同的线程中运行pathFinding算法.

奇怪的是,我的意思是有时FPS急剧下降,这是显而易见的,但显示FPS变化的频率超过每秒一次.如果我理解这段代码,FPS每秒钟的变化不会超过一次.

有人可以解释一下发生了什么吗?

编辑26.03.2010 …

xna frame-rate

13
推荐指数
1
解决办法
2万
查看次数

找不到引用Microsoft.DirectX.AudioVideoPlayback和Microsoft.DirectX

我已经安装了.net 4.0以及XNA 4.0.前段时间我使用Microsoft.DirectX播放一些音乐,现在当我尝试重做工作时,我找不到参考.平台上的新更改是否修改或移动了引用中的某些内容?

此致,Alexandru Badescu

c# directx xna

13
推荐指数
1
解决办法
2万
查看次数

你为什么不能在VB.Net中开发XNA游戏?

我知道XNA游戏没有VB.Net项目类型,但作为一个简单的测试,我将VB解决方案汇总在一起Microsoft.XNA.*.它有一个实现的类Microsoft.XNA.Framework.Game.然后在C#中Game1.cs,我只是删除了所有样板代码并将其修改为继承自我的VB类...

namespace MyGame {
    public class Game1 : GameEngine.Engine {
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个继承......

Public Class Engine
    Inherits Microsoft.Xna.Framework.Game

    Protected Overrides Sub Update(GameTime As Microsoft.Xna.Framework.GameTime)
        If GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed Then
            Me.Exit()
        End If

        For Each Element In Elements
            Element.Update(GameTime)
        Next

        MyBase.Update(GameTime)
    End Sub

   ...
Run Code Online (Sandbox Code Playgroud)

这似乎工作,我已经能够加载内容,渲染模型,采取游戏手柄输入等...

所以我要问的是......由于VB.Net不支持某些高级功能,是否真的存在限制,或仅仅是没有项目模板/支持可用?

在编译为MSIL时,VB编译器是否缺少某些性能优化?

.net xna

13
推荐指数
2
解决办法
2671
查看次数

如何对齐SpriteBatch.DrawString绘制的文本?

有没有一种简单的方法可以将文本对齐到右边和中心(而不是默认左边)?

c# xna text drawstring alignment

13
推荐指数
2
解决办法
1万
查看次数