Я делаю игру XNA 4, и я хочу создать контрольно-пропускные пункты для определенных областей на моей сцене. Я решил, что могу создать объект «призрак» объекта игрока, который будет создан всякий раз, когда игрок достигнет контрольной точки. И когда вы захотите перезагрузить эту контрольную точку, вы начнете с того, где этот призрак-плеер. На данный момент я думал, что это будет простой способ достичь этого (хотя я считаю, что XML может быть лучшим решением, но я понятия не имею, как это использовать). Но у игрока слишком много переменных (здоровье, выносливость, боеприпасы, таймер кровотечения, серебряные ключи, золотые ключи, монеты, инфекция, положение, скорость, угол, состояния [вовлекают умирание, заражение, кровотечение, жжение, уклонение и т. Д.), Я просто подумал, что statemets вроде «continuep1 = p1;» (оба являются экземплярами одного и того же объекта) переписывают все переменные в значения, которые содержит другой класс, но когда я попытался перезагрузить «p1 = continuep1», не работает. Кажется, он ничего не делает.Создание контрольных точек в XNA
Так что мне интересно, нужно ли мне повторно назначать ВСЕ переменные один за другим? Должен ли я начинать использовать XML? Или есть способ присваивать все переменные без необходимости делать это один за другим? (Я не прошу код, если только последний вопрос невозможен)
'continuep1 = p1;' присваивает ссылку, он становится тем же самым объектом, поэтому он не будет работать. Помимо копирования всех полей вручную, вы можете использовать отражение или сериализацию для клонирования объекта. Хороший короткий пример использования отражения для мелкой копии можно найти по адресу http://stackoverflow.com/a/8181736/1020861 – neeKo