Diskuze: Xna ve windows 8
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 31 zpráv z 31.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
XNA potřebuješ ještě bohužel k běhu MonoGame kvůli Content Pipeline
takže si musíš nainstalovat http://www.xbox.com/…wnloadClient a instalace XNA proběhne
poté v pořádku
Prosím tě Zkouším si udělat RObotris ,ale nefunguje nevíš čím to je
?
Děkuji za radu.
Zaprvé nemám věštecké karty abych zjistil pouhý zobrazovaný error. To je to samé jako když řeknu na dálku nefunguje mi auto oprav to. Problémů můžou být stovky. Přečti si pořádně seriál a případně piš dotaz o problému přímo k seriálu. Takhle opravdu nejsem schopen ti poradit
Ale já to mám stáhlé a nefunguje kódy jsem změnil
namespace atd. není v tom nějaký rozdíl (xna VS. Monogame) ? dík
Stále jsi mi nepopsal moc problém. Jak jsi změnil kódy ? A ne problém by být neměl mezi MonoGame a XNA. Používají stejné knihovny (tedy v základu).
Tady máš kód.
PROBLéM: Nejde mi nahrát content.
#region Using Statements
using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.GamerServices;
#endregion
namespace ColoTris
{
/// <summary>
/// This is the main type for your game
/// </summary>
public class Hra : Game
{
/// <summary>
/// Manažer grafiky
/// </summary>
GraphicsDeviceManager graphics;
/// <summary>
/// SpriteBatch
/// </summary>
public Lepsi lepsi;
// velikost okna
public int sirkaOkna = 1280, vyskaOkna = 720;
/// <summary>
/// Textury
/// </summary>
private Texture2D kostkyPozadi, pozadi;
/// <summary>
/// Fonty
/// </summary>
public SpriteFont fontCourierNew, fontBlox, fontBloxMaly;
/// <summary>
/// Pozice mraků
/// </summary>
private Vector2 pozice;
/// <summary>
/// Změna barvy
/// </summary>
private int zmena;
/// <summary>
/// Rychlost změny barvy
/// </summary>
private int smer;
/// <summary>
/// Vytvoří novou instanci hry
/// </summary>
public Hra()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
/// <summary>
/// Inicializace hry
/// </summary>
protected override void Initialize()
{
// velikost okna
graphics.PreferredBackBufferWidth = sirkaOkna;
graphics.PreferredBackBufferHeight = vyskaOkna;
graphics.IsFullScreen = false;
graphics.ApplyChanges();
pozice = new Vector2(0, 0);
zmena = 0;
smer = 1;
base.Initialize(); // pokračování inicializace
}
/// <summary>
/// Načtení datového obsahu hry
/// </summary>
protected override void LoadContent()
{
// vytvoření SpriteBatche pro textury
lepsi = new Lepsi(GraphicsDevice);
// načtení spritů
pozadi = Content.Load<Texture2D>("Content\\Sprity\\pozadi_level");
kostkyPozadi = Content.Load<Texture2D>("Sprity\\pozadi_kostky.png");
// načtení fontů
fontCourierNew = Content.Load<SpriteFont>("Fonty\\font_courier_new");
fontBlox = Content.Load<SpriteFont>("Fonty\\font_blox");
fontBloxMaly = Content.Load<SpriteFont>("Fonty\\font_blox_maly");
}
/// <summary>
/// Uvolnění zdrojů
/// </summary>
protected override void UnloadContent()
{
}
/// <summary>
/// Realtime logika a volání logiky komponent
/// </summary>
/// <param name="gameTime">Herní čas</param>
protected override void Update(GameTime gameTime)
{
// Ukončení hry na XBoxu
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// posun mraků doleva
pozice.X--;
// návrat na startovní pozici po vyjetí z obrazovky
// změna barvy mraků dle směru
zmena += smer;
if (zmena >= 96)
smer = -1;
if (zmena <= 0)
smer = 1;
// volání logiky komponent
base.Update(gameTime);
}
/// <summary>
/// Hlavní vykreslovací metoda. Vykresluje společnou grafiku a také volá vykreslení komponent
/// </summary>
/// <param name="gameTime">Provides a snapshot of timing values.</param>
protected override void Draw(GameTime gameTime)
{
// vymazání plátna
GraphicsDevice.Clear(Color.CornflowerBlue);
// započetí vykreslování
lepsi.Begin();
// vykreslení spritů
lepsi.Draw(kostkyPozadi, new Vector2(0, 0), Color.White);
Color barva = new Color(128 + zmena, 255 - zmena, 128 + zmena);
lepsi.Draw(pozadi, new Vector2(0, 0), Color.White);
// test písma
lepsi.TextSeStinem(fontBlox, "nadpis velky", new Vector2(100, 100), Color.Yellow);
lepsi.TextSeStinem(fontBloxMaly, "nadpis maly", new Vector2(100, 180), Color.Yellow);
lepsi.TextSeStinem(fontCourierNew, "Příliš žluťoučký kůň úpěl ďábelské ódy", new Vector2(100, 240), Color.Red);
// ukončení vykreslování
lepsi.End();
// volání vykreslování komponent
base.Draw(gameTime);
}
}
}
Dvě věci: Nepíše se přípona souboru. Za 2. MonoGame nemá ContentPipeline. Musíš si to nahrát v nějakém XNA projektu, zkompilovat a vytvořené .xnb soubory, které jsou umístěné ve složce s hrou nakopírovat do projektu s MonoGame do složky Content. Dále každému souboru musíš nastavit Build Action na Content.
XNA funguje dobře i na Windows 8. Pokud úplně začínáš, používej
"mrtvé" XNA
pozadi = Content.Load<Texture2D>("Content\\Sprity\\pozadi_level");
skús namiesto toho dať
pozadi = Content.Load<Texture2D>("Sprity\\pozadi_level");
Dávno jsem předtím dělal v XNa ,ale mně to ve windows 8 nefunguje a nijak to nejde zkoušel jsem všechno ,ale nefungujeto
Čo presne ti nefunguje?? Nejde ti to nainštalovať? Nefunguje ti zkompilovanie hry??
JO A měl aji Ubuntu, fedoru, windows 7, windows vista, a skousel jsem mmandriva [Prosím nedávej te mi i-- (je to jen pro vysvětlení]
Stiahni a nainštaluj si toto http://www.xbox.com/…wnloadClient a potom nainštaluj XNA
Game Studio 4 a pôjde ti to
To mám ,ale už sem to zprovoznil.
Důvod : při instalaci vs2010 se nenainstaloval servervice pack 1
Už to funguje ,ale asi budu pokračovat ve monogame.
Ja na kompilovanie používam program XNAFormatter (http://sourceforge.net/…/xnbbuilder/ ), nemusím zakaždým
otvárať XNA projekt
no ty toho máš za sebou dost... nechceš se někde usadit? (třeba v dualbootu?)
OOP - to je hrůza - na jeden příkaz nová třída, dopisovat kus kódu no
brr..., ale chci dělat okna, tak mi nic jinýho nezbívá
Udělej si aplikaci, která nebude mít 1 metodu, ale bude jich mít stovky.
Pak pochopíš naco jsou třídy
Jestli se budeš v diskuzích takto chovat, tak tu už dlouho diskutovat nebudeš.
Na jeden příkaz nová třída ? Ehm, to také není OOP, chvíli to trvá
než se pochopí výhody
OOP není o tom, jak rozdělit stovky metod do tříd, ale o dekompozici velkého obtížného problému na více malých a jednoduchých, které se řeší mnohem snáz a které spolu mohou komunikovat.
Zobrazeno 31 zpráv z 31.