xna   zodpovězená otázka

VB.NET

Dobrý den.

Chci se učit XNA a stutduji seriál na tomto webu.

Ale mám jednoduchý problém:

Do složky Content dám soubor ball.png a potom ve třídě game.

    Protected Overrides Sub LoadContent()
        ' Zkompilovat a načíst všechen herní obsah
        _vbContentManager.CompileContent(True)
        _vbContentManager.LoadAllContent()

        ' >> Zde následuje kód pro načtení herního obsahu
        ball = Content.Load(Of Texture2D)("Content/ball")



    End Sub

ale podtrhne se řádek který načítá ten ball že není soubor k dispozici.

Předem díky.

PS: Mám XNA 3.1 a vše jsem znovu referencoval.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste to relativně proti složce content, tedy jen:

ball = Content.Load(Of Texture2D)("ball")

XNA dokáže definovat adresář, proti kterému načítáme obsah. V nových projektech je to automaticky:

Content.RootDirectory = "Content"

Tedy Váš kód načítá z adresáře Content\Content\ball

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

V té chybě se správně ukáže cesta "Content\ball". Ale prý není ten soubor ve složce. Zkouším to i s 3D (.fbx) a v C#. Nic.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A zkouším i XNA 3.0

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkusil jste to tak jak jsem napsal?

A to chcete načítat fbx soubor jako texturu?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

FBX jako 3D. (Of texture3D)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

FBX je (Of Model)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A nemá to čistě náhodou být ball.png?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

.png to určite nebude.XNA správne súbory kompiluje pomocou Content Pipeline. Výsledkom sú .xnb súbory.A pri Content.Load sa má uvádzať iba názov obrázka alebo modelu a nie .png, ani .xnb . Je to tam aj napísané pri pôvodnom Content Manageri. Problém môže nastať ak kompilácia neprebehne.Tiež som s ňou mal problém ako výsledok mojej lenivosti.Nechcel som inštalovať C# a až potom XNA, tak som Xna inštalátor rozzipoval a pospúšťal .msi súbory.Ale potom MSBuild.exe, volaný z VBContentManagera, nevie, čo je .contentproj a preto u mňa iba vyhodil hlášku, ktorú som navyše ani nevidel, keďže ten VBContentManager okno skryl.A v tej hláške bola informácia o chýbajúcom súbore .targets, ktorý definuje, ktoré .exe je kompilátor. napr. vbc.exe, csc.exe a ostatné.Ak to je nezkompilovanými súbormi, tak bude treba asi nainštalovať XNA normálne ako nadstavbu do C# a nie obchádzaním kontroly, či je C# nainštalovaný. Potom to určite rozpozná .contentproj, nájde ten .targets súbor a zkompiluje všetky obrázky, modely, efekty aj ostatné.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Zajímavé. Pokud to co radíte zkusím ve VB.NET, nejde. Pokud v C#, jde. Tak mám pádný důvod učit se syntaxi Céčka.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to tím, že ve VB.NET se musí Content Pipeline, která se o načítání stará, se musí obcházet, protože není podporovaná ve vývojovém prostředí. V C# to jde lépe.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No díky... To že se ve VB.NET CONTENT PIPELINE musí obcházet vím taky. To že to jde v C# lépe vím taky. Ale já potřebuji hlavně vysvětlení, proč to obcházení ve VB nejde.

PS: Po stáhnutí příkladu to nejede taky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback