5. アプリの基本操作¶
Siv3D アプリケーションの基本的な操作を学びます。
5.1 プログラムを終了してウィンドウを閉じる¶
- 次のいずれかの操作で、実行中のプログラムを終了できます(チュートリアル 3.5 参照)
- ウィンドウの閉じるボタンを押す
- Esc キーを押す
- プログラムの中で
System::Exit()
を呼び出す
- プログラムの終了と同時に、ウィンドウも閉じられます
- 終了操作をカスタマイズする方法は、チュートリアル 5.6 を参照してください
5.2 スクリーンショットを保存する¶
- プログラムの実行中、次のいずれかのショートカットキーでスクリーンショットを保存します
- Print Screen を押す
- F12 を押す(Visual Studio でのデバッグ中は、F12 が別の機能に割り当てられているため使えません)
- スクリーンショットの保存先は OS によって異なります
OS | 保存先 |
---|---|
Windows | 実行ファイルと同じディレクトリの Screenshot フォルダ |
macOS | ピクチャフォルダ内の Screenshot フォルダ |
Linux | 実行ファイルと同じディレクトリの Screenshot フォルダ |
- パソコンの設定によっては、Print Screen キーが別のアプリケーション(OneDrive や Dropbox)に関連付けられていて、上記の場所にスクリーンショットが保存されないことがあります
Windows で画面を録画する
- Windows 10, 11 には、OS 自体に画面の録画機能が搭載されています
- 詳しくは Xbox Game Bar を参照してください
5.3 スクリーンショット用のショートカットキーを変更する¶
- 現在の Siv3D アプリで、スクリーンショットを保存するショートカットキーを変更するには、
ScreenCapture::SetShortcutKeys({ キーのリスト })
を使います
スクリーンショットのショートカットキーを変更する
# include <Siv3D.hpp>
void Main()
{
// [A] キーが押されたときのみスクリーンショットを保存するよう設定する
ScreenCapture::SetShortcutKeys({ KeyA });
while (System::Update())
{
Circle{ 400, 300, 100 }.draw();
}
}
- 複数のキーの指定もできます
スクリーンショットのショートカットキーを変更する
# include <Siv3D.hpp>
void Main()
{
// [PrintScreen] キーまたは [P] キーが押されたときのみスクリーンショットを保存するよう設定する
ScreenCapture::SetShortcutKeys({ KeyPrintScreen, KeyP });
while (System::Update())
{
Circle{ 400, 300, 100 }.draw();
}
}
5.4 ライセンス情報を表示する¶
- プログラムの実行中、次のいずれかの方法でライセンス情報を表示します
- F1 を押す
LicenseManager::ShowInBrowser()
を呼ぶ
- Siv3D に関連するライセンス情報が Web ブラウザで表示されます
ライセンス情報を追加する
LicenseManager::AddLicense()
を使って、ライセンス情報の先頭に新しい項目を追加できます
5.5 キー操作で全画面表示にする(Windows のみ)¶
- Windows では、次のキー操作でウィンドウを全画面表示にできます
- Alt+Enter を押す
- 再び Alt+Enter を押すと元のウィンドウ表示に戻ります
- ゲーム画面の展示やプレゼンテーションをするときに便利です
5.6 終了操作を変更する¶
System::Update()
は、アプリケーションを終了させる特別な ユーザアクション が実行されると、以降false
を返すようになります- 終了操作のユーザアクションは、
System::SetTerminationTriggers()
にUserAction
フラグを渡すことで変更できます- 複数のユーザアクションを設定する場合は、ビット OR 演算子
|
を使います
- 複数のユーザアクションを設定する場合は、ビット OR 演算子
- デフォルトでは、以下の 2 つのユーザアクションが終了操作として設定されています
ユーザアクション | 説明 |
---|---|
UserAction::CloseButtonClicked |
ウィンドウの閉じるボタンを押す |
UserAction::EscapeKeyDown |
Esc を押す |
5.6.1 Esc で終了しないようにする¶
- Esc を押しても終了しないようにするには、次のようにします
# include <Siv3D.hpp>
void Main()
{
// ウィンドウを閉じるユーザアクションのみを終了操作に設定する
System::SetTerminationTriggers(UserAction::CloseButtonClicked);
while (System::Update())
{
}
}
5.6.2 プログラムによってのみ終了させる¶
System::SetTerminationTriggers()
にUserAction::NoAction
だけを渡すと、ウィンドウの閉じるボタンや Esc キーは終了操作とみなされなくなります- その場合、
System::Exit()
を呼び出すか、Main()
でreturn
しない限り、アプリケーションは終了しません
# include <Siv3D.hpp>
void Main()
{
// 終了操作を設定しない
System::SetTerminationTriggers(UserAction::NoAction);
while (System::Update())
{
// プログラムの開始から 5 秒経過したら
if (5.0 <= Scene::Time())
{
System::Exit();
}
}
}
5.6.3 デフォルトの終了操作に戻す¶
- 終了操作をデフォルト設定(ウィンドウを閉じる操作、Esc を押す操作)に戻すには、
System::SetTerminationTriggers()
にUserAction::Default
を渡します UserAction::Default
は(UserAction::CloseButtonClicked | UserAction::EscapeKeyDown)
と同じです
# include <Siv3D.hpp>
void Main()
{
// 終了操作を設定しない
System::SetTerminationTriggers(UserAction::NoAction);
// デフォルトの終了操作に戻す
System::SetTerminationTriggers(UserAction::Default);
while (System::Update())
{
}
}
振り返りチェックリスト¶
- Print Screen または F12 でスクリーンショットが保存されることを学んだ
- スクリーンショットのショートカットキーを変更する方法を学んだ
- ライセンス情報を表示する方法を学んだ
- Windows では Alt+Enter でウィンドウを全画面表示できることを学んだ
- プログラムの終了操作をカスタマイズできることを学んだ