标签: xna

XNA 加载 2D 纹理的最佳方式;单一游戏

我正在制作一个测试 xna 游戏作为学习练习,我有一个关于使用 2d 纹理的小问题。基本上,游戏是从文本地图文件中获取的不同“图块”的网格。我基本上只是在初始化关卡时解析文件并创建不同图块类型的矩阵。该关卡本质上是一桶墙砖和钉子。所以本质上,有很多墙砖和多个尖钉砖,然后还有很多空砖。然而,有四种类型的墙砖和钉状纹理来覆盖不同的方向。

我的问题是加载每个图块纹理的最佳方法是什么?我是否为每个图块加载单独的纹理?即当我创建一个图块时,向它传递一个texture2d,我可以同时绘制和加载纹理。这似乎是一个好方法,但是我必须单独加载每个图块纹理,这似乎很浪费。

我能想到的另一个选择是在图块结构中使用静态纹理,然后简单地将此纹理加载为具有不同墙壁和尖峰的图块图集。这样我只加载单个纹理,然后在绘制时我只需将一个矩形移动到精灵内适当图块的区域。

我不确定从性能角度来看,这些方法中哪一种是最佳的,或者是否有其他方法?

提前致谢

xna 2d texture2d xna-4.0 monogame

0
推荐指数
1
解决办法
1394
查看次数

XNA 4.0 C# 限制 FPS

我试图限制 Monogame XNA 项目的“每秒帧数”,但我的 limitFrames函数不准确。

例如,我的项目在没有限制器的情况下以 60 fps 运行。但是,当我使用限制器并将frameRateLimiter变量设置为每秒 30 帧时,该项目的最大 fps 约为 27。

有人能找到解决方案吗?

帧限制器代码

private float frameRateLimiter = 30f;
// ...

protected override void Draw(GameTime gameTime)
{
    float startDrawTime = gameTime.TotalGameTime.Milliseconds;
    limitFrames(startDrawTime, gameTime);
    base.Draw(gameTime);
}

private void limitFrames(float startDrawTime, GameTime gameTime)
{
    float durationTime = startDrawTime - gameTime.TotalGameTime.Milliseconds;
    // FRAME LIMITER
    if (frameRateLimiter != 0)
    {
        if (durationTime < (1000f / frameRateLimiter))
        {
            // *THE INACCERACY IS MIGHT COMING FROM THIS LINE*
            System.Threading.Thread.Sleep((int)((1000f / frameRateLimiter) …
Run Code Online (Sandbox Code Playgroud)

c# xna frame-rate monogame

0
推荐指数
1
解决办法
2257
查看次数

学习XNA进行游戏开发.这值得么?

似乎世界上大多数流行的游戏都是使用C++开发的.但微软的游戏平台XNA Studio基于C#编程,我找不到任何使用XNA开发的流行游戏.你在XNA上找到的电子书也很少,甚至谷歌搜索问题都不会给你太多帮助.

人们不会将XNA用作游戏平台吗?是否值得学习XNA进行游戏开发,还是应该考虑其他平台?

xna xna-4.0

-1
推荐指数
1
解决办法
3372
查看次数

如何加快我的A*寻路速度?

当没有障碍物移动或从障碍物的顶部移动到侧面时,我的寻路工作正常,但是当它需要从障碍物的顶部到底部找到它时,它太慢了.

我很确定这是我排序每个循环或循环通过封闭集的方式,但我不知道如何避免这种情况,因为在Windows Phone 7上没有SortedLists

//This Vivid Destination means it doesn't have to find the exact location 
//which is helpful as it is continuous environment  
Rectangle vividDestination = new Rectangle((int)character.destination.X - 10, (int)character.destination.Y - 10, 20, 20);

while (!vividDestination.Contains(Maths.vectorToPoint(OpenNodes[0].position)))
{
    Node Current = OpenNodes[0];
    OpenNodes.RemoveAt(0);
    ClosedNodes.Add(Current);
    Current.calculateNeightbours();

    foreach (Node neighbour in Current.neighbours)
    {
        neighbour.parents = Current.parents + 1;
        //The cost of the node is the amount of parent nodes + the distance to destination
        neighbour.cost = calculateCost(neighbour.position, character.destination, neighbour.parents);

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

c# xna path-finding windows-phone-7

-1
推荐指数
1
解决办法
872
查看次数

Moving a camera in XNA, C#

I am trying to make a scrolling level to a test game I am doing as a learning exercise. I have created a map containing lots of tiles which are drawn according to their position in an array. I basically want the camera to scroll down the level, but at the moment it just frantically shakes up and down a little bit.

I have a camera class which is just a blank static class containing a static vector2 for the …

c# xna camera xna-4.0 monogame

-1
推荐指数
1
解决办法
4530
查看次数

C#最好编写RPG,xna或monogame

我想制作一个RPG并想知道我是否应该使用Xna或Monogame来编码它.什么会有更好的结果或更简单的代码.我研究了一下但仍然无法决定.

c# xna monogame

-1
推荐指数
1
解决办法
395
查看次数

C#XNA和monogame.这值得么?

我已经知道我可以使用XNA使C#与Mac/Linux通过monogame兼容,但是monogame是从C#单独开发的,所以没有人知道它们是否能跟上C#的开发?

使用C#是否值得冒险,或者我应该安全地使用Java编程以实现跨平台兼容性吗?

c# java xna monogame

-2
推荐指数
1
解决办法
2274
查看次数

'System.Drawing.RectangleF'不包含'Center'的定义

我在以下行中收到此错误消息:

Point posDiff = new Point(RectF1.Center.X - RectF2.Center.X, RectF1.Center.Y - RectF2.Center.Y);
Run Code Online (Sandbox Code Playgroud)

'System.Drawing.RectangleF'不包含'Center'的定义,并且没有扩展方法'Center'接受类型为'System.Drawing.RectangleF'的第一个参数'(你是否缺少using指令或程序集引用) ?)

怎么了?缺少哪个参考?

c# xna

-2
推荐指数
1
解决办法
1722
查看次数

gameTime.ElapsedGameTime.TotalSeconds的值是什么?

我想知道gameTime.ElapsedGameTime.TotalSeconds一秒钟的确切价值是什么?

c# mono xna monodevelop monogame

-2
推荐指数
1
解决办法
3270
查看次数

我的程序没有代码运行

在我开始使用XNA游戏后,我的程序出现了一个非常奇怪的问题,我不知道我的程序从哪里得到它的代码,因为当我在visual studio 2008 c#中评论我的所有代码时,什么都不应该工作,但游戏仍然正常启动,没有任何问题.我不知道如何解决这个问题,我希望你们其中一个人知道为什么我的程序在我评论所有代码后仍然运行正常.如果我删除了我的所有代码程序仍然运行,我希望你们中的一个人可以告诉我Visual Studio 2008从哪里获取它的代码,或者解决这个问题.

当你无法理解我的问题时,请告诉我.

c# xna visual-studio-2008

-3
推荐指数
1
解决办法
110
查看次数

C#中的'StackOverflowException未处理'错误

我的代码有问题.我终于得到它所以没有错误,但现在我必须处理stackoverflow ...

谁能告诉我我的代码有什么问题?

    public Matrix Projection
    {
        get { return Projection; }
        protected set 
        {
            Projection = value;
            generateFrustum();
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果你可以帮忙的话会很好!

谢谢

c# stack-overflow xna unhandled

-5
推荐指数
1
解决办法
766
查看次数

XNA是学习3D游戏编程的好地方吗?

我想在XNA中探索3D游戏开发,但我很好奇这对我来说是否最好.我没有学过C#,但我想在潜水前探索我的选择.我有很多的经验,在C语言编程,从一些基础知识或其他语言的未成年人的经验一起.这意味着C#所具有的面向对象框架可能与我习惯的方式有很大的不同.无论如何,我需要为未来的工作和大学学习它,所以这可能是一个很好的激励.我使用SDL 2.0混音器和SDL 2.0框架编写了两个游戏,这为我提供了2D游戏结构知识的良好基础.我已经了解了精灵,帧速率,事件轮询/处理,帧渲染等.我仍然非常缺乏与游戏开发及其背后的物理相关的数学.如果我决定学习XNA,这会引起我的下一个关注点,是否有助于我更快地学习这些东西?用C编写我的游戏,我总是不得不在接口上编写接口,但至少我必须理解我在写什么.有了C#,我担心它会抽象出我真正希望收集的大部分数学.你可能会问,如果我这么担心,为什么我不学习线性代数和OpenGL/DirectX/C中的任何东西?好吧,我希望避免这种情况,因为即使我能够制作出体面的游戏,我仍然非常缺乏如何进行更高级的游戏开发和代码结构化.在我的一个游戏项目工作了大约半年之后,这对我来说非常明显.

c# xna

-9
推荐指数
1
解决办法
298
查看次数