Texturen an Objekt weitergeben Texturen an Objekt weitergeben
Ergebnis 1 bis 4 von 4
  1. Ich versuche gerade eine Klasse Button zu erstellen, an deren Erstellungsroutine ich ein Bild (Texture2D) als Parameter übergeben möchte. Das sieht dann so aus:

    Code:
     public Button(Texture2D textur1, Vector2 position1)
                {
           
                    textur = textur1;
                    position = position1;
        
                }
    Das ergibt dann aber folgende Fehlermeldung:

    Die beste Übereinstimmung für die überladene WindowsPhoneGame2.Game1.Button.Button(Microsoft.Xna.Framework.Graphics.Texture2D, Microsoft.Xna.Framework.Vector2, Microsoft.Xna.Framework.GraphicsDeviceManager)-Methode hat einige ungültige Argumente.

    1-Argument: Kann nicht von "WindowsPhoneGame2.Game1.Button" in "Microsoft.Xna.Framework.Graphics.Texture2D" konvertiert werden.


    Ich habe das Bild in der Hauptklasse geladen:

    Code:
    quit = Content.Load<Texture2D>("Quit");
    Muss ich vieleicht das Bild in der Klasse Button laden oder den Speicherort angeben oder sonst etwas?

    Ich habe weder mit C# noch mit XNA erfahrung und freue mich über jede Antwort
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Texturen an Objekt weitergeben-error.jpg  
    Geändert von jo-b (18.05.2011 um 21:42 Uhr)
    0
     

  2. Das Problem scheint der Aufruf des Konstruktors zu sein. Poste doch mal den Code deiner Game-Klasse, in der der Button erzeugt werden soll.
    0
     

  3. Hier ist die Klasse. Der Button wird bei Intialize erstellt.
    Code:
    public Game1()
            {
                graphics = new GraphicsDeviceManager(this);
                Content.RootDirectory = "Content";
    
                // Frame-Rate ist standardmäßig 30 fps für das Windows Phone.
                TargetElapsedTime = TimeSpan.FromTicks(333333);
            }
    
            /// <summary>
            /// Ermöglicht dem Spiel die Durchführung einer Initialisierung, die es benötigt, bevor es ausgeführt werden kann.
            /// Dort kann es erforderliche Dienste abfragen und nicht mit der Grafik
            /// verbundenen Content laden.  Bei Aufruf von base.Initialize werden alle Komponenten aufgezählt
            /// sowie initialisiert.
            /// </summary>
            protected override void Initialize()
            {
                // TODO: Fügen Sie Ihre Initialisierungslogik hier hinzu
    
                base.Initialize();
    
                spritePosition1.X = 0;  //X-Position eines Bildes
                spritePosition1.Y = 0;  //Y-Position eines Bildes
                spritePositionquit.X = 0;  //X-Position eines Bildes
                spritePositionquit.Y = 0;  //Y-Position eines Bildesit  
                
                Button quit = new Button(quit, spritePositionquit);
            }
    
            /// <summary>
            /// LoadContent wird einmal pro Spiel aufgerufen und ist der Platz, wo
            /// Ihr gesamter Content geladen wird.
            /// </summary>
            protected override void LoadContent()
            {
                // Erstellen Sie einen neuen SpriteBatch, der zum Zeichnen von Texturen verwendet werden kann.
                spriteBatch = new SpriteBatch(GraphicsDevice);
                quit = Content.Load<Texture2D>("Quit");
                texture1 = Content.Load<Texture2D>("Background");
                
                // TODO: Verwenden Sie this.Content, um Ihren Spiel-Content hier zu laden
            }
    
            /// <summary>
            /// UnloadContent wird einmal pro Spiel aufgerufen und ist der Ort, wo
            /// Ihr gesamter Content entladen wird.
            /// </summary>
            protected override void UnloadContent()
            {
                // TODO: Entladen Sie jeglichen Nicht-ContentManager-Content hier
            }
    
            /// <summary>
            /// Ermöglicht dem Spiel die Ausführung der Logik, wie zum Beispiel Aktualisierung der Welt,
            /// Überprüfung auf Kollisionen, Erfassung von Eingaben und Abspielen von Ton.
            /// </summary>
            /// <param name="gameTime">Bietet einen Schnappschuss der Timing-Werte.</param>
            protected override void Update(GameTime gameTime)
            {
                // Ermöglicht ein Beenden des Spiels
                if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                    this.Exit();
    
    
    
                TouchCollection touchCollection = TouchPanel.GetState();
                foreach (TouchLocation tl in touchCollection)
                {
                    if ((tl.State == TouchLocationState.Pressed)
                        /*  || (tl.State == TouchLocationState.Moved)*/)
                    {
                        spritePosition1.X = tl.Position.X;
                        spritePosition1.Y = tl.Position.Y;
    
                    }
                }
    
                // TODO: Fügen Sie Ihre Aktualisierungslogik hier hinzu
    
                base.Update(gameTime);
            }
    
            /// <summary>
            /// Dies wird aufgerufen, wenn das Spiel selbst zeichnen soll.
            /// </summary>
            /// <param name="gameTime">Bietet einen Schnappschuss der Timing-Werte.</param>
            protected override void Draw(GameTime gameTime)
            {
                GraphicsDevice.Clear(Color.CornflowerBlue);
    
    
    
    
    
    
                spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
                spriteBatch.Draw(texture1, spritePosition1, Color.White);
                spriteBatch.End();
    
                // TODO: Fügen Sie Ihren Zeichnungscode hier hinzu
    
                base.Draw(gameTime);
            }
    0
     

  4. Ich hab den Fehler jetzt gefunden. Natürlich kann ich die Texture quit nicht bei Intialize benutzen wenn sie erst bei loadcontent geladen wird. Trotzdem Danke.
    0
     

Ähnliche Themen

  1. Problem mit "selektiertem Objekt"
    Von BusDeath im Forum SE Xperia X1
    Antworten: 1
    Letzter Beitrag: 19.02.2009, 19:58
  2. Antworten: 0
    Letzter Beitrag: 10.03.2006, 02:33

Stichworte