스프레드 시트 데이터에 XML 파일을 사용하려고합니다. 사각형 또는 다른 프레임 목록을 보유하는 프레임 클래스가 있습니다 (프레임 자체 또는 더 많은 프레임을위한 홀더가 될 수 있음). xml은 프레임의 모든 직사각형을 포함합니다. 콘텐츠 프로젝트에 xml을 추가하고 Content.load ("xmlname")를 사용하여로드했습니다.XNA는 content.load XML을 사용하여 항상 동일한 객체를 반환합니까?
한 번 사용하면 완벽하게 작동합니다. 그러나 같은 스프라이트 시트를 공유하는 두 개의 객체를 만들면 두 객체가 같은 프레임에있을 때 사라집니다. 많은 좌절감을 느낀 후에 xml 파일은 항상 동일한 객체를 반환하므로 프레임을 공유하므로 한 번에 한 프레임 씩 프레임을 그릴 수 있습니다.
public class Frame
{
public Rectangle rect; //means this is an image
private Renderable renderable = null;
private List<Frame> frames;
private Texture2D texture;
private int currentFrame = 0;
사용 예 :
<?xml version="1.0" encoding="utf-8"?>
<rect>0 0 0 0</rect>
<frames>
<Item>
<rect>0 0 0 0</rect>
<frames>
<Item>
<rect>19 27 15 22</rect>
<frames></frames>
<label>DOWN</label>
</Item>
<Item>
<rect>2 27 15 23</rect>
<frames></frames>
<label>DOWN</label>
</Item>
<Item>
<rect>19 27 15 22</rect>
<frames></frames>
<label>DOWN</label>
</Item>
<Item>
<rect>36 27 15 23</rect>
<frames></frames>
<label>DOWN</label>
</Item>
</frames>
<label>DOWN</label>
</Item>
클래스의 버전을 박탈 : 여기
는 XML 파일의 짧은 부분XML을 수동으로 deserialize하려고했지만 목록을 비 직렬화하는 것은 악몽입니다. 내가 여기서 뭔가 잘못하고 있니? 이상한 것처럼 보입니다. 동일한 객체를 반환합니다.
아하겠습니다. 개체를 직렬화 및 비 직렬화하여 복제 방법을 시도했습니다. 그러나 그것은 목록에 많은 문제를 야기했습니다. 링크를 제공해 주셔서 감사합니다. 그러나 적어도 지금은 내가 나아갈 수있는 어떤 것. – omgnoseat
방금 custommanagermanager를 구현했으며 훌륭하게 작동합니다! 대안 솔루션을 얻는 지보고 싶지만 아무 것도 얻지 못하면 이것을 awnser로 받아 들일 것입니다. 감사합니다. – omgnoseat