Cómo crear una biblioteca de clases basada en MonoGame que se utilizará desde UWP, iOS y Android
He instalado VisualStudio 2015, Xamarin y MonoGame 3.5. Voy a construir mi aplicación XNA para Windows UWP, iOS y Android.
Tengo algunas bibliotecas basadas en XNA … y necesito construirlas para los tres sistemas de destino (Windows UWP, iOS y Android), pero no hay manera de crear una biblioteca para Windows UWP. He intentado crear un MonoGame Windows 10 Universal Project
, pero tal proyecto no puede ser convertido para generar un DLL.
- ¿Cómo muevo la carpeta Android SDK instalada con Visual Studio 2017?
- Ripple no puede encontrar config.xml después de actualizar el proyecto cordova al estudio visual 2015
- Compilar la aplicación de Android en iOS
- ¿Cómo obtienes las imágenes del emulador Android VS para lanzarlas?
- No hay conexión a Internet para Visual Studio Android Emulator
También he intentado crear un proyecto de Class Library (Universal Windows)
, pero luego no pude agregar MonoGame.Framework
a las referencias.
Tengo el mismo problema al crear un MonoGame Android Project
… no hay manera de cambiar a un proyecto de biblioteca. El único proyecto MonoGame que se puede modificar para ser un proyecto de biblioteca es MonoGame iOS Project
.
Dicho esto, ¿cómo puedo crear una biblioteca de clases basada en XNA (MonoGame) para ser utilizado desde UWP, iOS y Android?
- Cómo compilar el proyecto cordova desde visual studio (Hybrid App) a android / ios apk
- Android .axml intellisense no funciona con controles de biblioteca de soporte
- No se puede depurar la aplicación cordova debido a adb.exe
- Samsung Galaxy S3 no se muestra en la lista de dispositivos seleccionados mono para estudio visual android 2012
- Xamarin Android Support Library v4 (Incompleto)?
- Visual studio (2015) emulador para Android no funciona - XDE.exe - Código de salida 3
- Emulador de Visual Studio para Android - El proyecto no se implementa
- Edición de Visual Studio 2015 para Android Emulator
Por lo que sé, sólo tienes 2 opciones aquí.
- Bibliotecas de clases portátiles
- Proyectos compartidos
Realmente no he utilizado proyectos compartidos mucho. La forma en que los entiendo es que te permiten compartir código entre varios proyectos como si viviera en una biblioteca, pero en realidad se compila directamente en el proyecto de referencia. Pueden ser pensado de como el archivo avanzado que liga.
Las bibliotecas de clase portátiles son un poco de una bestia diferente. Los he utilizado en el proyecto MonoGame.Extended con gran éxito, pero no siempre fue fácil. La forma en que funcionan es proporcionar un subconjunto de funciones que funcionan en todas las plataformas de destino. Compilar a un DLL que puede ser referenciado por cualquiera de los proyectos y usted puede estar seguro de que el código será el mismo.
Hay un par de desventajas de usar un PCL:
- Sólo puede utilizar un subconjunto de funcionalidad. Sorprendentemente, esto no se pone en la forma demasiado a menudo.
- Si la PCL hace referencia a otra biblioteca, también tiene que ser una PCL.
El segundo punto es donde las cosas se ponen un poco complicado con MonoGame. Normalmente, MonoGame no se envía como un PCL, pero una versión PCL se ha publicado en NuGet que se puede utilizar.
Tal y como está ahora, el paquete NuGet es una versión detrás del lanzamiento oficial pero sorprendentemente que realmente no importa porque es un cebo y switch PCL que esencialmente significa que sólo proporciona la interfaz a la DLL real que se utiliza en tiempo de ejecución. En otras palabras, su juego seguirá felizmente referencia a la versión 3.5, incluso si el PCL es la versión 3.2, siempre y cuando la interfaz no ha cambiado.
Se habla de mejorar esta situación en la versión 3.6.
Me di cuenta de proyectos MonoGame se construyen utilizando. Net 4.5 por defecto. Las bibliotecas de clases regulares por defecto a la última versión instalada de .Net que en mi caso era 4.5.2. Fui capaz de hacer referencia a una biblioteca de clases regulares yendo a sus propiedades de proyecto y estableciendo el marco de destino a 4.5. Espero que esto ayude.
- Notificaciones push de Android a una lista personalizada de suscriptores de un tema utilizando Amazon SNS
- Video streaming usando NanoHttpd, Error: java.net.SocketException: sendto failed: EPIPE (Broken pipe)