-
Notifications
You must be signed in to change notification settings - Fork 1
テキストを描く
Reputeless edited this page Mar 14, 2017
·
4 revisions
# include <Siv3D.hpp>
void Main()
{
// 大きさ 30 のフォントを用意
const Font font(30);
while (System::Update())
{
// テキストを表示する
font(L"ようこそ、Siv3D の世界へ!").draw();
}
}
Font
をメインループで毎回作成するのは好ましくありません。
// 間違ったプログラム
# include <Siv3D.hpp>
void Main()
{
while (System::Update())
{
// NG!
// フォントを毎フレーム作成・破棄するため動作が遅い
Font(30)(L"ようこそ、Siv3D の世界へ!").draw();
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font(30);
while (System::Update())
{
// 位置 (50, 200) からテキストを表示する
font(L"ようこそ、Siv3D の世界へ!").draw(50, 200);
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font(30);
while (System::Update())
{
// テキストに色をつけて表示する
font(L"ようこそ、Siv3D の世界へ!").draw(50, 100, Palette::Lightgreen);
font(L"ようこそ、Siv3D の世界へ!").draw(50, 200, Color(255, 80, 40));
}
}
テキストに '\n'
があると改行します。
# include <Siv3D.hpp>
void Main()
{
const Font font(30);
while (System::Update())
{
font(L"古池や\n蛙飛びこむ\n水の音").draw();
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font(30);
while (System::Update())
{
// デフォルトの行間で表示する
font(L"古池や\n蛙飛びこむ\n水の音").draw(0, 0, Palette::White, 1.0);
// 1.2 倍の行間で表示する
font(L"古池や\n蛙飛びこむ\n水の音").draw(300, 0, Palette::White, 1.2);
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font(30);
while (System::Update())
{
// 上から 100 の位置の中央にテキストを表示する
font(L"Siv3D").drawCenter(100);
Circle(200, 300, 100).draw(Palette::Orange);
// 座標 (200, 300) を中心にテキストを表示する
font(L"Engine").drawCenter(200, 300);
}
}
# include <Siv3D.hpp>
void Main()
{
// 大きさ 10 のフォント
const Font font1(10);
// 大きさ 30 のフォント
const Font font2(30);
// 大きさ 50 のフォント
const Font font3(50);
const String text = L"ようこそ、Siv3D の世界へ!";
while (System::Update())
{
font1(text).draw();
font2(text).draw(0, 100);
font3(text).draw(0, 200);
}
}
# include <Siv3D.hpp>
void Main()
{
// デフォルトのフォント
const Font fontDefault(35);
// とても細い
const Font fontThin(35, Typeface::Thin);
// 細い
const Font fontLight(35, Typeface::Light);
// 普通
const Font fontRegular(35, Typeface::Regular);
// やや太い
const Font fontMedium(35, Typeface::Medium);
// 太い
const Font fontBold(35, Typeface::Bold);
// とても太い
const Font fontHeavy(35, Typeface::Heavy);
// 非常に太い
const Font fontBlack(35, Typeface::Black);
const String text = L"ABC abc 123 あいう";
while (System::Update())
{
fontDefault(text).draw();
fontThin(text).draw(0, 60);
fontLight(text).draw(0, 120);
fontRegular(text).draw(0, 180);
fontMedium(text).draw(0, 240);
fontBold(text).draw(0, 300);
fontHeavy(text).draw(0, 360);
fontBlack(text).draw(0, 420);
}
}
# include <Siv3D.hpp>
void Main()
{
// フォント名を指定してフォントをロード
const Font font1(40, L"MS P明朝");
const Font font2(40, L"MS Pゴシック");
const Font font3(40, L"Georgia");
const Font font4(40, L"メイリオ");
const String text = L"ABC abc 123";
while (System::Update())
{
font1(text).draw();
font2(text).draw(0, 100);
font3(text).draw(0, 200);
font4(text).draw(0, 300);
}
}
コンピューターにインストールされていないフォントを使うには、フォントファイルを一時的にインストールします。
インストールされたフォントはアプリケーションの終了時にアンインストールされます。
# include <Siv3D.hpp>
void Main()
{
// フォントファイルを一時的にインストール
if (!FontManager::Register(L"Example/YomogiFont.ttf"))
{
// 失敗したら終了
return;
}
// フォントファイルのフォント名を指定
const Font font(40, L"よもぎフォント");
while (System::Update())
{
font(L"よもぎフォント").draw();
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font(50);
while (System::Update())
{
// テキストが表示される領域を計算
const Rect rect = font(L"ABC abc 123").region(50, 100);
// 四角形を描画
rect.draw(Palette::Green);
// フォントを描画
font(L"ABC abc 123").draw(50, 100);
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font1(10);
const Font font2(30);
const Font font3(50);
while (System::Update())
{
font1(L"ABC").draw(50, 100 - font1.ascent);
font2(L"ABC").draw(100, 100 - font2.ascent);
font3(L"ABC").draw(200, 100 - font3.ascent);
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font1(30, Typeface::Default);
const Font font2(30, Typeface::Default, FontStyle::Italic);
while (System::Update())
{
font1(L"ようこそ、Siv3D の世界へ!").draw(20, 100);
font2(L"ようこそ、Siv3D の世界へ!").draw(20, 200);
}
}
# include <Siv3D.hpp>
void Main()
{
const Font font1(11, L"MS Pゴシック");
const Font font2(11, L"MS Pゴシック", FontStyle::Bitmap);
const Font font3(11, L"MS Pゴシック", FontStyle::BitmapBold);
while (System::Update())
{
font1(L"ようこそ、Siv3D の世界へ!").draw(20, 100);
font2(L"ようこそ、Siv3D の世界へ!").draw(20, 200);
font3(L"ようこそ、Siv3D の世界へ!").draw(20, 300);
}
}
# include <Siv3D.hpp>
void Main()
{
Graphics::SetBackground(Color(160, 200, 100));
const Font font1(30, Typeface::Medium, FontStyle::Outline);
font1.changeOutlineStyle(TextOutlineStyle(Palette::Black, Palette::White, 1.0));
const Font font2(30, Typeface::Heavy, FontStyle::Outline);
font2.changeOutlineStyle(TextOutlineStyle(Palette::Green, Palette::Orange, 2.0));
while (System::Update())
{
font1(L"ようこそ、Siv3D の世界へ!").draw(20, 100);
font2(L"ようこそ、Siv3D の世界へ!").draw(20, 200);
}
}
Println()
を使うと、Font
を用意せず簡単にテキストを画面に出力できます。
Println()
で使われるフォントの色や大きさ、種類は変更できません。
# include <Siv3D.hpp>
void Main()
{
while (System::Update())
{
Println(L"Siv3D");
}
}
ClearPrint()
は Println()
で画面に出力したテキストを消去します。
# include <Siv3D.hpp>
void Main()
{
while (System::Update())
{
ClearPrint();
Println(L"Siv3D");
}
}
PutText().from()
, PutText().at()
を使ったテキストの簡易表示では座標を指定でき、表示したテキストは次のフレームで消去されます。
# include <Siv3D.hpp>
void Main()
{
while (System::Update())
{
// 座標 (20, 20) からテキストを簡易表示
PutText(L"Siv3D").from(20, 20);
// 座標 (320, 240) を中心にテキストを簡易表示
PutText(L"Siv3D").at(320, 240);
}
}
- Siv3D の基本
- 図形を描く
- テクスチャを描く
- テキストを描く
- 文字列と数値の変換
- キーボード入力
- マウス入力
- サウンドの再生
- MIDI の再生
- ウィンドウと背景
- 図形のあたり判定
- 乱数
- ダイアログ
- ドラッグ & ドロップ
- アプリの状態
- テキストファイル
- INI, CSV, JSON
- バイナリファイル
- GUI
- アセット管理
- 画像編集
- Web カメラ
- マイク入力
- 経過時間の測定
- HSV カラー
- ファイルダウンロード
- 3D 描画
- 2D のレンダーステート
- 3D のレンダーステート
- パーティクル
- スクリーンショット
- アプリケーションの公開
- さらに学ぶには
- アプリランチャーを作ろう
- 音楽プレイヤーを作ろう
- 横スクロールゲームを作ろう
- ドット絵エディタを作ろう
- シーン遷移をサポートする SceneManager の使い方
- Siv3D ミニサンプル集
- タスクシステムを使う
- スケッチ
- 画像ビューアー
- オーディオスペクトラム
- マイク入力スペクトラム
- 文字色の反転
- 天気予報
- ドットお絵かき
- 15パズル
- ブロックくずし
- 時計
- 音楽プレイヤー
- ピアノ
- ライフゲーム
- シーン管理
- 地球
- 3Dシーン
- 3D交差判定
- Wooden Mirror
- シューティングゲーム
- Image to Polygon
- Sketch to Polygon
- 軌跡
- Plot3D
- テンポとピッチの変更
- 長方形の影
- Twitterクライアント
- Polygon to Mesh
- 3Dテキスト
- アプリ終了の確認
- 地形の生成
- アーカイブファイル
- GUIのアニメーション
- Aero Glassエフェクト
- Glitch
- リンクテキスト
- 付箋
- シーン切り替え(シルエット)
- MIDIシーケンサー
- 数つなぎ
- 画面を揺らす
- 対称定規
- aobench
- MIDIビジュアライザー
- 電卓
- 手書き文字認識
- 顔検出
- 音声合成
- Image to PhysicsBody