Erstellen Sie ein 2D-polygon in XNA
Habe ich irgendeine Art von problem. Ich bin neu in XNA und möchten, zeichnen Sie ein polygon-shape, das sieht ungefähr so aus (am Ende, ich will diesen Punkt zufällig zu sein):
Also Las ich einige Artikel und dies ist, was ich am Ende mit:
private VertexPositionColor[] vertices;
public TextureClass()
{
setupVertices();
}
public override void Render(SpriteBatch spriteBatch)
{
Texture2D texture = createTexture(spriteBatch);
spriteBatch.Draw(texture, new Rectangle((int)vertices[0].Position.X, (int)vertices[0].Position.Y, 30, 30), Color.Brown);
}
private Texture2D createTexture(SpriteBatch spriteBatch)
{
Texture2D texture = new Texture2D(spriteBatch.GraphicsDevice, 1, 1, false, SurfaceFormat.Color);
texture.SetData<Color>(new Color[] { Color.Brown });
return texture;
}
Wenn ich rufe Render
es fängt zeichnen von Quadraten, als ob es, wo in einer Schleife. Ich bin nur erraten, ich mache alles falsch. Ich würde es lieben, wenn someones Punkte, die mich in die richtige Richtung. Einfach erstellen Sie ein polygon und zeichnen. Es schien so einfach...
Ändern Sie die Scheitelpunkte nachdem er Sie das erste mal?
NÖ, ich Ruf einfach einmal Rendern
Von wo rufst du Rendern?
Ich rief es aus dem Spiele-Update. Ich habe eine andere Lösung gefunden, ich werde einfach hier posten für die Leute die es sehen möchten aswell.
Wenn Sie den Aufruf von Update, dann sind Sie eigentlich die Schaffung einer neuen textur in jedem frame, das ist nicht etwas, was Sie wollen. Stellen Sie sicher, deal mit, die in Ihrer neuen Lösung.
NÖ, ich Ruf einfach einmal Rendern
Von wo rufst du Rendern?
Ich rief es aus dem Spiele-Update. Ich habe eine andere Lösung gefunden, ich werde einfach hier posten für die Leute die es sehen möchten aswell.
Wenn Sie den Aufruf von Update, dann sind Sie eigentlich die Schaffung einer neuen textur in jedem frame, das ist nicht etwas, was Sie wollen. Stellen Sie sicher, deal mit, die in Ihrer neuen Lösung.
InformationsquelleAutor Jordy Langen | 2011-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist es, was ich jetzt haben.
Einer Klasse, erzeugt eine BasicEffect mit einigen gewünschten asignments.
Hier ist mein PolygonShape Klasse
Sorry, es ist ein bisschen viel. Nun zu meiner nächsten quest. Animation meine polygon.
Hoffe, es half Mitmenschen mit dem gleichen problem.
InformationsquelleAutor Jordy Langen
dieser code ist nützlich, um zu zeichnen, 2D-Linien, einige calcs kann getan werden, in ein initilization nennen, aber ich bevorzuge für dieses Beispiel halten Sie alle zusammen.
LINIEN.FX
ich habe die pixel-shader-Linien.fx
InformationsquelleAutor Blau
Arbeitete ich mit XNA in der Vergangenheit auf eine Physik-simulation, wo ich zu ziehen hatte, um bounding Boxen mit GraphicsDevice.DrawIndexedPrimitives (sollten Sie google oder MSDN für diese Funktion für mehr gelungene Beispiele.)
Den code unten ist das, was ich in meinem Projekt für das zeichnen einer 3D-geometrie.
Diese Funktion ist eine member-Methode eines geometrie-Objekt (class) und wird aufgerufen, aus dem Spiel-Klasse'
Draw(GameTime)
MethodeSie suchen genau wie, was Sie sind. Überprüfen Sie die API für GraphicsDevice.VertexDeclaration, GraphicsDevice.Indizes und Microsoft.Xna.Rahmen.Grafik.VertexBuffer beziehungsweise.
InformationsquelleAutor Jake