脱線、アドベンチャー編
■日本語フォントを出そうとした。
「ん・ぱか工房」を参考に日本語を表示できたのですがいろいろと大変そうです。日本語を表示するには使用する文字を登録しておく必要があり、今回は「コンテントプロセッサ」で文字を変換し登録します。(「コンテントプロセッサ」の説明を入れると長くなるので省きます。)後は「FONTに甘かった」と同じように文字指定をします。
登録していない文字を表示しようとするとエラーになりますので注意してください。ついつい、登録していない文字を使用して画面にバッテンが!
■そして、脱線
せっかく日本語も出たし、アドベンチャー画面をつくりたくなりました。ポリゴンとはまったく関係のないので許してください。まずは表示するテクスチャを用意しましょう。
back.png | 背景に表示するグラフィック(背景写真をデジカメで撮ってきます) |
sufie.png | 会話するキャラクター(版権に引っかからないように自分で用意しましょう) |
menu.png | 文字を表示するエリア(文字が見やすいように暗めの画像) |
テクスチャは抜き指定して使用します、PNGの場合は「フォトショップ」で「アルファチャンネル」を入れてセーブしてください。(黒い部分が抜けて表示する事になります。)
■画面を重ねよう。
用意したテクスチャを画目からみて以下のように重ねて見ます。
■ソース
namespace WindowsGame { public class Game1 : Microsoft.Xna.Framework.Game { private GraphicsDeviceManager graphics; private ContentManager content; private SpriteFont font; private SpriteBatch sprite; private Texture2D characterTexture; private Texture2D menuTexture; private Texture2D backTexture; public Game1() { graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); } protected override void LoadGraphicsContent(bool loadAllContent) { if (loadAllContent) { sprite = new SpriteBatch(graphics.GraphicsDevice); font = content.Load<SpriteFont>("SpriteFont1"); characterTexture = content.Load<Texture2D>("sufie"); menuTexture = content.Load<Texture2D>("menu"); backTexture = content.Load<Texture2D>("back"); } } protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.Gray); sprite.Begin(); sprite.Draw(backTexture, new Vector2(0, 0), Color.White); sprite.Draw(characterTexture, new Vector2(340, 0), Color.White); sprite.Draw(menuTexture, new Vector2(20, 450), Color.White); sprite.DrawString(font, "アドベンチャーゲーム作ってどうするの?", new Vector2(30, 460), Color.White); sprite.DrawString(font, "(ロケ地:サンタモニカビーチ)", new Vector2(330, 520), Color.White); sprite.End(); base.Draw(gameTime); } } }