【问题标题】:Only getting last value when loading XML in XNA在 XNA 中加载 XML 时仅获取最后一个值
【发布时间】:2011-12-03 08:33:26
【问题描述】:

我正在制作一个小型 XNA 游戏,为了更改我有“门户”的地图,我已将有关这些门户的信息存储在一个 XML 文件中。

<?xml version="1.0" encoding="utf-8"?>
<XnaContent>
    <Asset Type ="Vars.Portals[]">
        <Item>
            <Position>319</Position>
            <Destination>Map002</Destination>
        </Item>
        <Item>
            <Position>139</Position>
            <Destination>Map001</Destination>
        </Item>
        <Item>
            <Position>319</Position>
            <Destination>Map001</Destination>
        </Item>
    </Asset>
</XnaContent>

在 Game1.cs 文件中,我将“门户”声明为变量

Portals[] portal;

然后在 loadContent 区域将 XML 文件加载到门户中。

portal = Content.Load<Portals[]>("Portals/Test");

不幸的是,这是我出现问题的地方,因为当我尝试使用时

portal[].position

[] 中的任何数字都会给我相同的值,这是我列表中的最后一个值。我在 Visual Basics 中运行它时查看了所有值,它们似乎都是一样的。有什么明显的我在这里想念的吗。我是使用 XML 的新手。数据保存在我的 Vars 命名空间中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Vars
{
public class Portals
{
    #region Position
    private static int StorePosition = 0;

    public int Position
    {
        get { return StorePosition; }
        set { StorePosition = value; }
    }
    #endregion
    #region Destination
    private static string StoreDestination = "";

    public string Destination
    {
        get { return StoreDestination; }
        set { StoreDestination = value; }
    }
    #endregion

    }
}

【问题讨论】:

    标签: c# xml xna


    【解决方案1】:

    当然你得到了相同的价值;您的属性使用静态字段作为其后备存储。静态成员在类的所有实例之间共享。

    【讨论】:

    • 知道这很简单。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2016-01-31
    • 1970-01-01
    相关资源
    最近更新 更多