私は自分のゲーム用のモジュールを作成しようとしていますが、アイデアはそれをすべてのゲームで使用できるようにすることです。
したがって、私の lib プロジェクトには独自のコンテンツ フォルダーがあり、すべて問題ありませんが、ホスト プロジェクトのコンテンツ フォルダーでクラッシュします。
これが私のコンポーネントです(ホストプロジェクト(電話アプリ)へのリンクを参照するのは独自のプロジェクトです):
namespace FPSComponent
{
public class FPS : DrawableGameComponent
{
private SpriteBatch spriteBatch;
SpriteFont normal;
Texture2D headerBackground;
public FPS(Game game)
: base(game)
{
spriteBatch = new SpriteBatch(Game.GraphicsDevice);
string tempRootDirectory = Game.Content.RootDirectory;
Game.Content.RootDirectory = "FPSComponentContent";
headerBackground = Game.Content.Load<Texture2D>("header-background");
normal = Game.Content.Load<SpriteFont>("normal");
//Game.Content.RootDirectory = tempRootDirectory; <-- does not work
}
public override void Update(GameTime gameTime)
{
// TODO: Add your update logic here
base.Update(gameTime);
}
public override void Draw(GameTime gameTime)
{
//GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
spriteBatch.Draw(headerBackground, Vector2.Zero, Color.White);
spriteBatch.DrawString(normal, "FPS COMPONENT", new Vector2(20, 20), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
}
}
私がやろうとしているのは、私のプロジェクトにインポートするためのスタンドアロン コンポーネントを作成することです。これは主に学習目的であり、動作する FPS の例ではありません :-)