前回までの状況はこちら。
実際に文字、というか、数字を画面に表示するのですが、
ゲームライブラリを使用しているので、普通に文字を表ずる事ができないのですよ。
このライブラリではフォントジェネレータというツールを使って、使用する文字を別ファイルで用意する必要があります。
こんなテキストファイルを作成して、
こんな感じでフォントファイルを作成します。
このとき生成されるaffファイルとpngファイルを実行プログラムと同じ場所に設置します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sudokuGUI
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("数独解析ツール", 1000, 800, new asd.EngineOption());
// 下地
var background = new asd.GeometryObject2D();
asd.Engine.AddObject2D(background);
var bgRect = new asd.RectangleShape();
bgRect.DrawingArea = new asd.RectF(0, 0, 1000, 800);
background.Shape = bgRect;
// テクスチャー
asd.Texture2D texture = asd.Engine.Graphics.CreateTexture2D("squares.png");
// マス
int offsetX = 10;
int offsetY = 10;
var square = new asd.TextureObject2D();
square.Position = new asd.Vector2DF(offsetX, offsetY);
square.Texture = texture;
asd.Engine.AddObject2D(square);
var font = asd.Engine.Graphics.CreateFont("number.aff");
var obj = new asd.TextObject2D();
obj.Font = font;
obj.Position = new asd.Vector2DF(100, 100);
obj.Text = "1357";
asd.Engine.AddObject2D(obj);
// Altseedが進行可能かチェックする。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
}
とりあえず、数字を表示することは問題なさそう。
あとは、フォントサイズと表示位置を微調整する。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace sudokuGUI
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("数独解析ツール", 1000, 800, new asd.EngineOption());
// 下地
var background = new asd.GeometryObject2D();
asd.Engine.AddObject2D(background);
var bgRect = new asd.RectangleShape();
bgRect.DrawingArea = new asd.RectF(0, 0, 1000, 800);
background.Shape = bgRect;
// テクスチャー
asd.Texture2D texture = asd.Engine.Graphics.CreateTexture2D("squares.png");
// マス
int offsetX = 10;
int offsetY = 10;
var square = new asd.TextureObject2D();
square.Position = new asd.Vector2DF(offsetX, offsetY);
square.Texture = texture;
asd.Engine.AddObject2D(square);
int fontOffsetX = 19;
int fontOffsetY = 9;
var font = asd.Engine.Graphics.CreateFont("number.aff");
var obj = new asd.TextObject2D();
obj.Font = font;
obj.Position = new asd.Vector2DF(offsetX + fontOffsetX, offsetY + fontOffsetY);
obj.Text = "1";
asd.Engine.AddObject2D(obj);
var obj2 = new asd.TextObject2D();
obj2.Font = font;
obj2.Position = new asd.Vector2DF(64 + offsetX + fontOffsetX, 64 + offsetY + fontOffsetY);
obj2.Text = "2";
asd.Engine.AddObject2D(obj2);
// Altseedが進行可能かチェックする。
while (asd.Engine.DoEvents())
{
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedを終了する。
asd.Engine.Terminate();
}
}
}
うん、いいんじゃないでしょうか。
「【C#】【ALTSEED】【数独】文字列を表示する」への1件のフィードバック