kostenloser Webspace werbefrei: lima-city


C# SpriteBatch.Begin(..) 2D-Translation -> leeres Fenster

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    s1m13

    Kostenloser Webspace von s1m13

    s1m13 hat kostenlosen Webspace.

    Hey Leute!

    Ich hab hier einen Codeschnipsel aus meinem C#/XNA Programm und finde den Fehler nicht.

    Draw-Methode in der Game-Klasse
    device.Clear(Color.Blue);
    
                Matrix m = new Matrix(1, 0, 0, 0,
                                      0, 1, 0, 0,
                                      0, 0, 1, 0,
                                      0, 0, 0, 1);
    
      //Funktioniert nicht:
                batch.Begin(SpriteSortMode.Immediate,
     BlendState.Additive,
     new SamplerState(),
     new DepthStencilState(),
     new RasterizerState(),
     null,
     m);
    
    //Funktioniert:
                //batch.Begin();
    
    
                Console.WriteLine(world.Cam.GetMatrix());
    
                Texture2D stone = new Texture2D(
                    device,
                    2,
                    2,
                    false,
                    SurfaceFormat.Color);
    
                Color[] colors = new Color[2 * 2];
                for (int i = 0; i < colors.Length; i++)
                {
                    colors[i] = (Color.Black);
                }
    
                // Set the color data for the texture
                stone.SetData(colors);
    
                Primitives p = new Primitives();
    
                for (int i = -100; i < 100; i++)
                    for (int j = -100; j < 100; j++)
                        batch.Draw(stone,
     new Vector2(200 + i * 100, 300 + j * 100),
     null, Color.Black,
     0f,
     Vector2.Zero,
     new Vector2(10, 10),
     SpriteEffects.None,
     0f);
    
                batch.End();


    Ich erstell eine Translationsmatrix. Die sollte eigentlich erstmal nichts machen. ist ja die Einheitsmatrix. Gut, wenn ich sie mit den Standardeinstellungen für Effekte etc. ins begin setze seh ich garnichts mehr. Der Standard-Begin funktioniert.

    Wenn ich begin() nutze, kann ich meine kleinen Rechtecke sehen, die ich unten zeichne.

    Einen sehr ähnlichen Code hab ich schonmal verwendet und eigentlich auch weitesgehend übernommen. Ich finde aber den Fehler nicht.

    Könnt ihr mir helfen? Irgendetwas hab ich übersehen..

    KOMMENTAR:
    Es scheint etwas mit Transparenz zutun zu haben. Wenn andere Farben gemalt werden, werden die Dinge doch richtig angezeigt. Wo wird denn hier die Transparenz erzeugt?

    Beitrag zuletzt geändert: 14.5.2012 12:10:19 von s1m13
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!