2011-10-06 25 views
1

おはようございます。 私の質問で私を助けてくれることを願っています。XNA 4.0描画された/歪んだテクスチャを描く

スプライトをそのまま変換したりレンダリングする方法はありますか?

example 3dを使用しない。私はそれが3dで簡単に行うことができますが、私が取り組んでいるプロジェクトは3dを全く使用しないので、ちょうどその小さな事のために3dを含めることを本当に望んでいません...

(例の画像はランダムゲームからのものです)

基本的に私が必要としているもの: スプライトを四角形にして自由に変形すると、そのスプライトの点を任意の座標に設定できます。矩形と同じように。

ありがとうございます。

+0

[this](http://forums.create.msdn.com/forums/t/37143.aspx) – dowhilefor

+0

dowhileforを見て、私はそれを調べましたが、それは私が必要とするものではありません... 、それは一般的な解決策を与えていません。とにかくありがとう。 – NewProger

答えて

1

この画像で使用されている技術は、レイキャスティング2dです。これは初めてwolfenstein 3dで使用され、偽の3D over 2Dを実装します。

これはあなたが望むものではないですが、ここであなたがtutotial http://lodev.org/cgtutor/

を見つけることができます。

あなたが望むものを達成する最良の方法は、2つの三角形を定義し、それを描画するための基本効果を持つGraphicsDevice.DrawUserPrimitivesを使用することです。

// Init Triangles with four points A,B,C and D 

    VertexPOsitionTexture[] Vertex = new VertexPositionTexture[6]; 
    Vertex[0].Position = (A.X,A.Y,0); 
    Vertex[1].Position = (B.X,B.Y,0); 
    Vertex[2].Position = (C.X,C.Y,0); 
    Vertex[3].Position = (C.X,C.Y,0); 
    Vertex[4].Position = (B.X,B.Y,0); 
    Vertex[5].Position = (D.X,D.Y,0); 

    Vertex[0].Texture= (0,0); 
    Vertex[1].Texture= (1,0); 
    Vertex[2].Texture= (0,1); 
    Vertex[3].Texture= (0,1); 
    Vertex[4].Texture= (1,0); 
    Vertex[5].Texture= (1,1); 

    // Init Effect from http://blogs.msdn.com/b/shawnhar/archive/2010/04/05/spritebatch-and-custom-shaders-in-xna-game-studio-4-0.aspx 

    Matrix projection = Matrix.CreateOrthographicOffCenter(0, viewport.Width, viewport.Height, 0, 0, 1); 
    Matrix halfPixelOffset = Matrix.CreateTranslation(-0.5f, -0.5f, 0); 


    BasicEffect effect = new BasicEffect(); 

    effect.Texture = your texture; 
    effect.TextureEnabled = true; 
    effect.World = Matrix.Identity; 
    effect.View = Matrix.Identity; 
    effect.Projection = halfPixelOffset * projection; 

    // Draw Triangles 
    effect.Apply(): 
    GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>(vertex, TriangleList, ...,...); 

このコードは擬似コードとして理解する必要がありますが、テストされていませんが、実行する関連するアクションが示されています。

関連する問題