Tengo un problema con la siguiente linea:
this.Components.Add(new GamerServicesComponent(this));
Esto lo meto en el juego aqui:
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
namespace WindowsGame6
{
/// <summary>
/// This is the main type for your game
/// </summary>
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
this.Components.Add(new GamerServicesComponent(this)); // inicializamos los servicios del XBoxLive
}
...
El caso es que cuando pongo esa linea y ejecuto el juego todo va bien, pero cuando llevo el ejecutable a otro ordenador (lo he probado en 2 diferentes) me da un error. En un Vista me dice que ha dado un error y debe cerrarse (no me da muchas mas indicaciones :( ). He limpiado todo el codigo hasta dejar al final solo esto y si quito esa linea, ya no da error. ???
¿Alguna idea?
Gracias.
La maquina donde ejecutas necesita tener instalado el Games for Windows LIVE si no recuerdo mal cuando usas eso.
Voy a probarlo.
Muchas gracias !!
No ha funcionado. Lo he instalado pero sigue igual. En el XP me detalla el error, aunque a mi no me dice nada. :-[
EventType : clr20r3 P1 : windowsgame6.exe P2 : 1.0.0.0 P3 : 4ea5c6eb
P4 : system P5 : 4.0.0.0 P6 : 4db90519 P7 : 3e3a P8 : 3b8
P9 : kksl2emmm0cljmabh5tyqy352myo42ze
A ver si a alguno le dice algo.
Gracias.
es eso que ha dicho vicente...
la unica solucion es hacer un try ... catch y deshabilitar las funciones que tiren de el...
este es mi codigo en el initialize:
try
{
GamerServices = new GamerServicesComponent(this);
#if WINDOWS
GamerServices.Initialize();
#endif
Components.Add(GamerServices);
}
catch (GamerServicesNotAvailableException e)
{
// // Logger.Log(20, "GamerServices can't be initialized");
// // Logger.Log(20, e.Message);
}
finally
{
//StatesManager.Push<StateBloom>(true);
//StatesManager.Push<StateFuego>(true);
StatesManager.Push<StateTrialMode>(true);
// StatesManager.Push<StateStoreHighScores>(true);
StatesManager.Push<StateGenesis>(true);
}
Muchas gracias blau por el ejemplo que me has pasado. Ya no me da error. Ahora he visto que la excepción salta con el error: ERROR RUNNING 'XNALIVEPROXY.EXE.
Por lo que he leido, parece ser que para hacer pruebas de red en PC debes tener instalado SI o SI el XNA Game Studio para que funcione. Como son para pruebas, lo hare así a ver que tal. Pero no me cuadra mucho, si quiero hacer un juego para jugar en red local, ¿todos los equipos deben tenerlo instalado? Tambien es verdad que he leido unos post de hace un tiempo, igual eso ha cambiado.
Gracias de nuevo.
Microsoft no permite usar el componente de red, ni las funcionalidades de LIVE, para publicar juegos en Pc. Es sólo para juegos de Xbox. Por eso no está metido en el runtime.
Que majos estos de Microsoft... >:(
Bueno, como solo es para hacer pruebas instalare el Game Studio en el resto de equipos, mi idea es hacerlo para que funcione en la Xbox.
Gracias a todos. ;)
Ya que ha salido el tema del GamerServicesComponent aprovecho: a mi la inicialización de ese componente en PC me tarda como 10 segundos si no estoy conectado a Internet, cada vez que arranco el juego. Si estoy conectado pasa sólo la primera vez. ¿Alguien más lo ha notado?
Lo pruebo esta noche y te comento si me pasa lo mismo.
Yo lo noto siempre, una castaña más. Yo tb voy a optar por quitar directamente las referencias y todo sitio donde se usen. Para lo que sirven en Windows como que me da igual.
Ayer lo probé (conectado a internet). No vi ningún retardo al ejecutarlo. También es verdad que hice tantas pruebas que tampoco estoy al 100% seguro. :)
Por lo demás, al final conseguir que los 2 equipos se comunicaran y muestro lo de un ordenador en el otro. Un pequeño paso para el juego, pero uno inmenso para mí. :D
Cita de: Hans en 25 de Octubre de 2011, 11:04:03 AM
Yo lo noto siempre, una castaña más. Yo tb voy a optar por quitar directamente las referencias y todo sitio donde se usen. Para lo que sirven en Windows como que me da igual.
El retraso se produce cuando tienes el automatico puesto para logearte en un profile al inicio... yendote al perfil y deshabilitando el log automatico va bien...
Pues a mi me sigue tardando aunque desactive el logueo automático. Tiene delito porque además es una cuenta local, sin conexión a Live. >:(
A mí me va por rachas, últimamente se me está portando bien, pero hay días que me tarda 10 segundos en inicializar el dichoso componente. Tengo el inicio de sesión automático desactivado.