2016-12-03 5 views
-1

アロハを、譲渡する、申し訳ありません私の英語の知識が^^「」しかし、私はあなたが理解してよ:)私は私のXMLファイルから情報を読み込むしようとしていますC#のLinqXMLの読み取りと、すべての最初の情報

を願っています(使用してLinqXML)を使用し、それを将来の変数として使用します。私はそれから情報を取得しようとしています今現在

<objectgroup name="Object Layer"> 
    <object id="17" name="A" x="513" y="95" width="510" height="62"/> 
    <object id="18" name="B" x="610" y="273" width="476" height="142"/> 
    <object id="19" name="C" x="609" y="432" width="320" height="175"/> 
    <object id="20" name="D" x="254" y="160" width="33" height="32"/> 
    <object id="21" name="E" x="244" y="160" width="33" height="32"/> 
</objectgroup> 

を使用しています私のXMLファイルからカットされ

...

public void ObjectCollision() 
{ 
    var collisionObjects = from q in xmlDoc.Descendants("object") 
     select new 
     { 
      id = (int) q.Attribute("id"), 
      xCoordinates = (int) q.Attribute("x"), 
      yCoordinates = (int) q.Attribute("y"), 
      width = (int) q.Attribute("width"), 
      height = (int) q.Attribute("height") 
     }; 

そして今の

、私がしたいですこの情報を私の変数として使用してください:) この時点で、変数を描画の座標として使用したいと思います。

foreach (var cobj in collisionObjects) 
{ 
    invisTexture = new Texture("Resources/Map/NotVisible.png"); 
    collisionSprite = new Sprite(invisTexture); 
    CollisionRect.TextureRect = new IntRect(cobj.xCoordinates, cobj.yCoordinates, cobj.width, cobj.height); 
    collisionSprite.TextureRect = CollisionRect.TextureRect; 
} 

しかし、私は起動しようとするたびに、私は^^ System.NullReferenceExceptionエラーを取得しています。..

デバッガが私のcobjが実際にそれで右の情報と完全にこれらの変数を持つ単純なConsole.WriteLine作品を持っていることを、私を示しました。 。

だから、私は間違って何をやっていますか? :)

+0

例外はどこでトリガーされていますか?新しいテクスチャオブジェクトを作成できますか? – CodingYoshi

+0

CollisionRect.TextureRect = new IntRect(cobj.xCoordinates、cobj.yCoordinates、cobj.width、cobj.height)でトリガーされました。 line – Suikoden

+0

そしてCollisionRectはnullですか?はいの場合、それはあなたの問題です。 – CodingYoshi

答えて

0

Ah ..私はCollisionRect = new RectangleShape();を忘れてしまいました。 ^^ ''それは眠る時間なんだよ...とにかく、助けてくれてありがとう。

+0

デバッガを使い、コードをステップバイステップで実行し、変数を調べる方法を学ぶのにいい時間です... –

関連する問題