Nanashi-softプログラマ専用PSSuite開発


◇PS Suite開発 -リソースのテキストを読み込む-

普通に .NETのサンプル通り書いたら動きました
C#で記述なので,読み替える必要も無いという

・テキストファイルを準備する
予めテキストエディターなどでテキストファイルを作成しておく
その際,文字コードを UTF-8にしておいてください(シフトJISが使えないっぽい為)
scenario.txtを作成したとします

・テキストファイルをプロジェクトに追加する
1. scenario.txtを,AppMain.csのあるところと同じフォルダにコピーする
2. PS Suite Studioのソリューションのすぐ下のフォルダで右クリック
そして,追加→ファイルを追加を選択
3. scenario.txtファイルを選択して,右下の Openボタンをクリック
4. 追加された scenario.txtファイルを右クリックして,ビルドアクション→Contentにチェック(※ココ重要)

・読み込む変数を定義
AppMainクラス宣言の下に,文字変数scenarioを定義
	public class AppMain
	{
		private static GraphicsContext graphics;
		static string scenario;	//追加

・リソーステキストを読み込む
起動時に読み込むように Initializeの最後に以下を追加
		public static void Initialize ()
		{
~省略~
			System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();	//追加
			System.IO.StreamReader IN = new System.IO.StreamReader(myAssembly.GetManifestResourceStream("testpss.scenario.txt"), System.Text.Encoding.GetEncoding("utf-8"));	//追加
			scenario = IN.ReadToEnd();	//追加
			IN.Close ();	//追加
System.Console.WriteLine(scenario);	//追加(デバッグ用)
		}


GetManifestResourceStreamのファイルパス指定は,.(ドット)区切りで記述します
ルートはプロジェクトフォルダなのですが,エクスプローラーで見ると,2回同じフォルダ名がある事がわかります
そのうちの,1つ目のフォルダがルートになるようです(ちょっとココでハマりました)
例えば,resourcesフォルダの下に置いたならば
GetManifestResourceStream("testpss.resources.scenario.txt")
になります

環境の問題なのか,GetEncodingに shift_jisを指定するとエラーになりました
うちの環境は全て UTF-8に統一していますので,この辺りの回避方法については追求しません


……で,コンソール表示が化け化けになるのですが(汗

string型なので,そのまま表示してみると……

・読み込んだテキストを表示する
Renderに追加する
		public static void Render ()
		{
~省略~
			SampleDraw.DrawText(scenario, 0xffffff00, usefont, 0, 0);	//追加

			// Present the screen
			graphics.SwapBuffers ();
		}

正しく表示されますので,コンソールがおかしいだけだと思うのでスルーします
英語ツールを使っているとわりとあるので,気にしたら負けです(*'-')

これで,string型に UTF-8で文字列が読み込まれますので,後は好きなように加工すれば良いです



TOPプログラマ専用PSSuite開発