Play Siv3D!

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

reference

コンソールウィンドウ

コンソールウィンドウ Siv3D June 2015 v2コンソールウィンドウを開いて標準入出力を扱えるようにする # include <Siv3D.hpp> void Main() { Console::Open(); std::wcout << L"Siv3D\n"; int n; std::wcin >> n; Println(n); while (System::Update()) { } } コンソー</siv3d.hpp>…

逆引きリファレンス

逆引きリファレンス (これは古いドキュメントです。左のメニューから最新版のリファレンスを参照してください。 個々のクラスや関数の詳細についてはヘッダファイルに書かれているドキュメントを参照してください) ライブラリの名前空間 using namespace s…

サウンドの拍カウント

サウンドの拍カウント Siv3D June 2015 v2サウンドの拍をカウントする # include <Siv3D.hpp> void Main() { const SoundBeat beat(54500, /*♩=*/ 134); const Sound sound(L"Example/風の丘.mp3"); sound.play(); while (System::Update()) { int i = 0; for (int s : </siv3d.hpp>…

動画ファイル

動画ファイル Siv3D June 2015 v2動画ファイルを書き出す # include <Siv3D.hpp> void Main() { VideoWriter writer(L"test.mp4", 640, 480); Image image(640, 480, Palette::White); for (int frame = 0; frame < 240; ++frame) { image.fill(Palette::White); for (i</siv3d.hpp>…

QR コード

QR コード Siv3D June 2015 v2データを QR コードで表現するのに必要な最小限のバージョンを計算QR::MinimumVersion() にデータを渡すとデータを表現できる最小限のバージョン(セルの数に対応)を取得できます。 # include <Siv3D.hpp> void Main() { if (const auto v</siv3d.hpp>…

半精度浮動小数点数

半精度浮動小数点数 Siv3D June 2015 v2半精度浮動小数点数 # include <Siv3D.hpp> void Main() { Println(sizeof(float)); Println(sizeof(HalfFloat)); HalfFloat f = 3.5; Println(f + 1.0); WaitKey(); }</siv3d.hpp>

SIMD

SIMD Siv3D June 2015 v2サポートされている最大の SSE のバージョンを取得する # include <Siv3D.hpp> void Main() { switch (SIMD::SupportedSSE()) { case SSE::SSE2: Println(L"SSE2"); break; case SSE::SSE3: Println(L"SSE3"); break; case SSE::SSE4_1: Println</siv3d.hpp>…

Perlin Noise

Perlin Noise Siv3D June 2015 v2Perlin Noise を生成する # include <Siv3D.hpp> void Main() { PerlinNoise noise(1234); Image image(640, 480); for (auto p : step(image.size)) image[p.y][p.x] = ColorF((noise.noise(p.x / 80.0, p.y / 80.0) + 1.0) * 0.5); co</siv3d.hpp>…

数学関数

数学関数 Siv3D June 2015 v2数学定数 # include <Siv3D.hpp> void Main() { // π Println(Pi); // 2π Println(TwoPi); // (1/2)π Println(HalfPi); // (1/3)π Println(OneThirdPi); // (1/4)π Println(QuarterPi); // π (float) Println(PiF); // 2π (float) Println(T</siv3d.hpp>…

2D 図形の特殊効果

2D 図形の特殊効果 Siv3D June 2015 v2長方形の影を描く # include <Siv3D.hpp> void Main() { Graphics::SetBackground(Color(160, 200, 100)); const Rect rect(200, 100, 300, 200); while (System::Update()) { rect.drawShadow({ 0, 0 }, 24.0, 2.0); rect.draw(Pa</siv3d.hpp>…

2D 図形の変形

2D 図形の変形 Siv3D June 2015 v2三角形を回転させる # include <Siv3D.hpp> void Main() { const Triangle triangle1(320, 240, 200); const Triangle triangle2(320, 400, 80); const Triangle triangle3(320, 60, 80); TimerMillisec timer; timer.start(); while (</siv3d.hpp>…

2D 図形描画

2D 図形描画 Siv3D June 2015 v2点を描くPoint は整数の座標、Vec2 は浮動小数点数の座標を設定します。 # include <Siv3D.hpp> void Main() { while (System::Update()) { Point(50, 50).draw(); Vec2(100, 100.5).draw(); for (int i = 0; i < 10; ++i) { Point(i * 2</siv3d.hpp>…

極座標系

極座標系 Siv3D June 2015 v2円座標 # include <Siv3D.hpp> void Main() { Graphics::SetBackground(Palette::White); while (System::Update()) { for (int i = 0; i < 72; ++i) { const double radian = Radians(i * 10); const Vec2 pos = Circular(i * 3, radian) +</siv3d.hpp>…

HSV カラー

HSV カラー Siv3D June 2015 v2HSV カラー # include <Siv3D.hpp> void Main() { GUI gui(GUIStyle::Default); gui.add(GUIText::Create(L"H", 15)); gui.add(L"h", GUISlider::Create(0, 360, 120, 360)); gui.addln(L"h", GUIText::Create(L"120", 40)); gui.add(GUIT</siv3d.hpp>…

RGB カラー

RGB カラー Siv3D June 2015 v2RGB カラー(整数) # include <Siv3D.hpp> void Main() { while (System::Update()) { // 赤 [0, 255] // 緑 [0, 255] // 青 [0, 255] Rect(640, 240).draw(Color(20, 60, 180)); // グレースケール [0, 255] Circle(110, 240, 100).draw</siv3d.hpp>…

ZIP 圧縮ファイル

ZIP 圧縮ファイル Siv3D June 2015 v2アーカイブされたファイル名の一覧を取得する # include <Siv3D.hpp> void Main() { const Array<FilePath> fileList = { L"Example/Windmill.png", L"Example/風の丘.mp3" }; Compression::Archive(fileList, L"Archived.zip"); const ZipRea</filepath></siv3d.hpp>…

ファイルとフォルダの圧縮・展開

ファイルとフォルダの圧縮・展開 Siv3D June 2015 v2ファイルを zip アーカイブする # include <Siv3D.hpp> void Main() { const Array<FilePath> fileList = { L"Example/Windmill.png", L"Example/風の丘.mp3" }; Compression::Archive(fileList, L"Archived.zip"); WaitKey(); </filepath></siv3d.hpp>…

暗号化

暗号化 Siv3D June 2015 v2データを暗号化する # include <Siv3D.hpp> void Main() { const int a[4] = { 10, 20, 30, 40 }; const MemoryReader encrypted = Crypto::Encrypt(a, sizeof(a), AES128Key(12, 34, 56, 78)); Println(encrypted.asArray()); WaitKey(); } </siv3d.hpp>…

ログファイル

ログファイル Siv3D June 2015 v2ログにメッセージを出力するLOG(...)はログファイルに一連のメッセージを出力します。 デバッグ実行時には Visual Studio の出力ウィンドウにも出力されます。 # include <Siv3D.hpp> void Main() { LOG(100); // 100 LOG(L"abcde", 100</siv3d.hpp>…

MD5

MD5 Siv3D June 2015 v2バイナリデータから MD5 ハッシュ値を計算するMD5::Encrypt(const MemoryReader&)は指定したデータの MD5 ハッシュ値を返します。 # include <Siv3D.hpp> void Main() { const Image image(L"Example/Windmill.png"); Println(MD5::Encrypt(image</siv3d.hpp>…

Base64

Base64 Siv3D June 2015 v2バイナリデータを Base64 エンコードする # include <Siv3D.hpp> void Main() { TextWriter writer(L"Windmill.txt"); writer.write(Base64::Encode(Image(L"Example/Windmill.png").encodePNG())); } データを Base64 エンコードする # inclu</siv3d.hpp>…

ファイルとディレクトリ

ファイルとディレクトリ Siv3D June 2015 v2ファイルまたはディレクトリが存在するかを調べる # include <Siv3D.hpp> void Main() { Println(FileSystem::Exists(L"engine/")); Println(FileSystem::Exists(L"Example/")); Println(FileSystem::Exists(L"Example2/")); </siv3d.hpp>…

処理にかかった時間の測定

処理にかかった時間の測定 Siv3D June 2015 v2経過時間をミリ秒で計測する # include <Siv3D.hpp> void Main() { MillisecClock c; System::SleepAccurately(500); c.print(); WaitKey(); } 経過時間をマイクロ秒で計測する # include <Siv3D.hpp> void Main() { MicrosecClock c; </siv3d.hpp></siv3d.hpp>…

時間

時間 Siv3D June 2015 v2コンピューターが起動してからの経過時間を取得するTime::GetMillisec()はコンピューターが起動してからの経過時間をミリ秒で、 Time::GetMicrosec()はマイクロ秒で返します。2 つの関数の結果が一致することは保証されません。 # in…

日付と時刻

日付と時刻 Siv3D June 2015 v2日付を取得する # include <Siv3D.hpp> void Main() { const auto date = Date::Today(); Println(date); Println(date.year); Println(date.month); Println(date.day); Println(date.dayOfWeek); Println(date.dayOfWeekEN); Println(da</siv3d.hpp>…

時間の単位

時間の単位 Siv3D June 2015 v2時間の単位を変換する # include <Siv3D.hpp> void Main() { const auto ms = DurationCast<Milliseconds>(SecondsF(2.5)); Println(ms.count()); // 2500 const auto s1 = DurationCast<Seconds>(Days(10)); Println(s1.count()); // 864000 const auto s2 = Dur</seconds></milliseconds></siv3d.hpp>…

正規表現

正規表現 Siv3D June 2015 v2正規表現に一致した文字列を置換する # include <Siv3D.hpp> void Main() { const String s1 = LR"(<html><body><p>Siv3D</p></body></html>)"; Println(Regex::ReplaceAll(s1, LR"(<("[^"]*"|'[^']*'|[^'">])*>)", L"")); const String s2 = L"000-1111-2222"; Println(Regex</siv3d.hpp>…

数値

数値 Siv3D June 2015 v2整数を指定した基数の文字列で表すToString(value, radix)は整数 value を基数 radix で表した文字列を返します。基数は [2, 36] の範囲で指定します。 2 進数に変換するToBinary(value), 8 進数に変換するToOctal(value), 16 進数に…

文字列

文字列 Siv3D June 2015 v2文字列を作成する #include <Siv3D.hpp> void Main() { const String s1 = L"Siv3D"; Println(s1); const String s2(10, L'a'); Println(s2); WaitKey(); } 文字を終端に追加する #include <Siv3D.hpp> void Main() { String s = L"Siv3D"; s.push_back(L</siv3d.hpp></siv3d.hpp>…

文字

文字 Siv3D June 2015 v210 進数の数字であるかを調べるIsDigit(ch)は与えられた文字が数字 (0-9) であるかを返します。 # include <Siv3D.hpp> void Main() { Println(IsDigit(L'3')); // true Println(IsDigit(L'8')); // true Println(IsDigit(L'a')); // false Prin</siv3d.hpp>…