Получение только последнего значения при загрузке XML в XNA - PullRequest
2 голосов
/ 03 декабря 2011

Я делаю небольшую игру 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

с любым числом в [] мне дают то же значение, которое является последним значением в моем списке. Я посмотрел на все значения во время работы с визуальными основами, и все они кажутся одинаковыми. Есть что-то очевидное, что я здесь упускаю. Я новичок в использовании 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

    }
}

1 Ответ

5 голосов
/ 03 декабря 2011

Конечно, вы получаете то же значение; Ваши свойства используют статические поля в качестве резервного хранилища. Статические члены являются общими для всех экземпляров класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...