Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

Ja by som sa chcel spýtať ako uložím do poľa Textury (2D).
Keď som skúsil :

public Texture2D[] Textury

a potom načítať textury do toho (Content.Load) tak mi to vyhlasuje chybu. Ako to mám spraviť? Ďakujem

Odpovědět 2.4.2013 15:02
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

mám tento kód:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace TimeMachine2
{
    class Menu
    {
        ContentManager Content;
        Texture2D[] Tlacitko;

        public Menu()
        {
            // TODO: Complete member initialization
            Tlacitko[0] = Content.Load<Texture2D>("Graphics/Menu/Tlacitko1");
        }
    }
}

A pri načítaní textury mi to vypíše: Odkaz na objekt není nastaven na instanci objektu.

Editováno 2.4.2013 15:04
Nahoru Odpovědět 2.4.2013 15:04
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:

Content.Load jde volat pouze z Game1 a nebo Game Komponent. Doporučuji použít herní komponentu (neptej se mě jak to funguje :D) a nebo načti Textury v Game1 a předej je nějakou metodou :)

//Zjednodušeně, načítat můžeš pouze z LoadContent metody :)

Editováno 2.4.2013 15:09
Nahoru Odpovědět 2.4.2013 15:07
Creating websites is awesome till you see the result in another browser ...
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

A keď načítam inštanciu triedy tak sa tam nedá poslať poslať pole?

Nahoru Odpovědět 2.4.2013 15:12
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Juraj Mlich
Petr Nymsa:

Máš content null, není vůbec založený. Jiří Gracík ti to řekl celkem nešťastně. Ve třídě si můžeš založit ContentManager

class Trida
{
   ContentManager content;

   public Trida(Game1 game)
   {
      this.Content = new ContentManager(game.Services);
   }
}

a nastavit mu services z game 1

Editováno 2.4.2013 15:27
Nahoru Odpovědět 2.4.2013 15:25
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:
private Menu menu = new Menu(Game1);

keď to zavolám takto tak mi toto vypíše : 'TimeMachine2­.Game1' is a 'type' but is used like a 'variable'

funguje to síce ale toto tam vypisuje :(

Editováno 2.4.2013 16:52
Nahoru Odpovědět 2.4.2013 16:51
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Juraj Mlich
Petr Nymsa:

Vůbec myslím že tu strukturu máš špatně. Co jsem zapomněl dodat ke ContentManageru. Je potřeba mu nastavit root directory

content.RootDirectory="Content";

Dále na tohle se používají GameComponents (viz http://www.itnetwork.cz/…do-komponent).

Inicializaci prováděj v konstruktoru třídy. Proč předáváš do konstruktoru Menu třídu Game1 ? V Game1 si založ menu

Menu mojeMenu=new Menu(this);
// this odkazuje na game1
Nahoru Odpovědět 2.4.2013 17:01
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Petr Nymsa
Juraj Mlich:

Ďakujem :)

content.RootDirectory="Content";

- toto som tam dal :)

Nahoru Odpovědět 2.4.2013 17:09
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.