Siv3D February 2013 の新機能(1/2)

先日リリースした Siv3D February 2013 で追加された新機能を 2 回にわたって紹介します。今回は「扇型の描画」「日付と時刻のフォーマット」「INIReader」の 3 つです。

扇型の描画


Circle 型で表現される中心座標、半径を持つ扇形を Circle::drawFan() 関数で描画します。第 1 引数は中心角の開始角度、第 2 引数は中心角、第 3 引数は色です。

# include <Siv3D.hpp>

void Main()
{
	while(System::Update())
	{
		double startAngle = 0.0;

		for(int i=31; i>=0; --i)
		{
			const double r = i * 8.0;
			const double angle = 0.2;	
			const Color color = HSV(i*20,1.0,1.0);

			Circle(300,280,r).drawFan(startAngle,angle,color);
		
			startAngle += 0.3;
		}
	}
}
日付と時刻のフォーマット


日付と時刻の構造体 Date を String に変換します。12/24 時間表記、月名の英語表示、0 埋めなどを指定する 22 種類の変換指定子が用意されています。

# include <Siv3D.hpp>

void Main()
{
	const Font font(30);

	while(System::Update())
	{
		font.draw(Date::Now().format(L"yyyy'年'M'月'd'日' HH:mm:ss"));
	}
}
INIReader

INI ファイルからデータを読み込みます。実行時にファイルの変更を検出し、再ロードすることができます。

; "color.ini"
color = (20,130,250)
# include <Siv3D.hpp>

void Main()
{
	INIReader ini(L"color.ini");

	Graphics::SetBackGround(ini.get<Color>(L"color"));

	while(System::Update())
	{
		if(ini.hasChanged())
		{
			ini.reload();
			Graphics::SetBackGround(ini.get<Color>(L"color"));
		}	
	}
}