IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Juraj Mlich
Tvůrce
Avatar
Juraj Mlich:2.4.2013 15:02

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
Avatar
Juraj Mlich
Tvůrce
Avatar
Juraj Mlich:2.4.2013 15:04

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
Avatar
Neaktivní uživatel:2.4.2013 15:07

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
Neaktivní uživatelský účet
Avatar
Juraj Mlich
Tvůrce
Avatar
Juraj Mlich:2.4.2013 15:12

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

 
Nahoru Odpovědět
2.4.2013 15:12
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Juraj Mlich
Petr Nymsa:2.4.2013 15:25

Máš content null, není vůbec založený. Neaktivní uživatel 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
Tvůrce
Avatar
Juraj Mlich:2.4.2013 16:51
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
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Juraj Mlich
Petr Nymsa:2.4.2013 17:01

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
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Juraj Mlich:2.4.2013 17:09

Ďakujem :)

content.RootDirectory="Content";

- toto som tam dal :)

 
Nahoru Odpovědět
2.4.2013 17:09
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.