Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Content con librerías

Iniciado por XÑA, 09 de Febrero de 2011, 07:57:58 PM

« anterior - próximo »

XÑA

Parece que con 4.0 no puedes usar un propio Content si creas una GameLibrary...
¿Entonces cómo puedo tener en mi librería mi propia fuente, texturas e iconos que no quiero que estén a disposición del que utiliza la librería?

WaaghMan

No me queda muy claro lo que buscas. Por lo que yo entiendo, quieres que una librería use un Content privado al que no tengan acceso otros proyectos que usan esa librería.

Si es eso, no creo que se pueda hacer lo que dices porque al final todo compila a .xnb en la carpeta de destino que es lo que usa el ContentManager para cargar las cosas...
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

[EX3]

No llegue a tocar demasiado la 3.1 (salvo últimamente para algunas pruebas en un equipo con XP) pero parece ser que hasta entonces los proyectos podían tener su propio content, no? Es que entiendo lo que quiere hacer XÑA y de hecho me ha surgido el mismo problema/situación :-/

Salu2...

P.D.: Y esto vendría de lujo para la ultima versión de Farseer Physics Engine ya que ahora te obligan a meter texturas en tu Content si usas su DebugViewer, lo que me parece una tocapelotez monumental :P
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

WaaghMan

Los proyectos pueden tener su propio Content, pero los resultados de todos ellos se juntan en la carpeta de destino. Por ello, si tienes en el Content de una librería un archivo con cierto nombre, no puedes poner en el Content de otra, en la misma ruta, un archivo con el mismo nombre, te dará error de compilación (creo...).
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

[EX3]

Cita de: WaaghMan en 09 de Febrero de 2011, 09:50:56 PM
Los proyectos pueden tener su propio Content
Mmm... cierto, que ahora lo que se hace es agregar una referencia de Content en los proyectos (lo cual entiendo que permitiria agregar varios contents a un mismo juego, no?). Entonces lo del Farseer Physics no seria un problema como yo lo veia, podria tener separado su Content del de el juego, interesante :)

Cita de: WaaghMan en 09 de Febrero de 2011, 09:50:56 PM
pero los resultados de todos ellos se juntan en la carpeta de destino. Por ello, si tienes en el Content de una librería un archivo con cierto nombre, no puedes poner en el Content de otra, en la misma ruta, un archivo con el mismo nombre, te dará error de compilación (creo...).
No se podrian implementar dos content manager distintos, con diferente RootDirectory, en un mismo proyecto? Eso si separaria fisicamente ambos recursos fisicos al compilarse, o no afectaria a este punto?

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

WaaghMan

Es posible, no sé si se puede especificar una carpeta distinta a Content a la hora de compilar, seguro que se puede pero no sé si hay opción fácil. De todas maneras me parece un poco enrevesado...
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

Vicente

Poderse se podrá seguro si te pones a mano con el MSBuild... (no recomendable :p)

[EX3]

Cita de: WaaghMan en 09 de Febrero de 2011, 11:42:51 PM
Es posible, no sé si se puede especificar una carpeta distinta a Content a la hora de compilar, seguro que se puede pero no sé si hay opción fácil.
Pero no se supone que eso lo define la propiedad RootDirectory del Content? ???
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
        }

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

XÑA

Parece que sí se puede, pero no lo tengo claro. Probaré a ver y ya os diré cosas... :D

WaaghMan

Cita de: [EX3] en 10 de Febrero de 2011, 01:06:53 AM
Pero no se supone que eso lo define la propiedad RootDirectory del Content? ???

El tema es que antes siquiera de ejecutar, el compilador ya habría de generar los recursos en una carpeta separada (distinta de Content), lo cual desconozco si es posible, pero opción en el visual studio no hay.

Otra posibilidad, si la librería va a tener recursos fijos que no se modifiquen casi nunca, podría ser compilar de antemano los archivos a .xnb, y simplemente poner en una carpeta separada los archivos, y a partir de ahí acceder con el código que pones. Eso sí se puede hacer sin mucho problema.
Milkstone Studios - Autores de Avatar Ninja!, Little Racers, MotorHEAT y Wool en Xbox Live Indie Games

XÑA

A ver, se puede hacer lo siguiente:

Crear una Solucion de XNA 4.0
Crear la libreria.
Añadir un projecto de Content
Añadir una referencia a este proyecto de Content desde la librería
Añadir un proyecto de Windows Game

Entonces desde la libería puedo acceder al Content. Lo que ocurre es que si distribuyo la libería, deberé distribuir también el Content para que pueda compilarse todo junto.

¿alguien ha descubierto algo más?

Vicente

No te vale hacerte otro proyecto de content que tenga recursos de "mentira" solo para compilar y distribuir la librería con eso? Ten en cuenta que al final el content es una referencia más, tampoco puedes tener dos DLLs que usan la una a la otra y distribuir solo una de las dos...

XÑA

Corecto, lo que tengo que hacer es distribuir la librería + el proyecto Content...

Lo que ocurre es que el content tendré que distribuirlo sin compilar no?

Supongo...  ;)

Vicente

Me he perdio :p Si es el código fuente, pues como el visual, y si es solo la DLL, pues compilao, a fin de cuentas es como si distribuyeras un juego.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.