siv3Dチュートリアル逆引き辞典

# まえおき
可能性しか感じないsiv3D~~の求めている関数がいまいち見つからないチュートリアル~~のメモ書きです。中の人の学習が進み次第追記しておきます。あの関数、チュートリアルのどこに書いてあったっけというときにご利用ください。

公式サイトのclass一覧でよくね？それはそう。
ヘッダ読め？それはそう。

# 凡例

## 分類(その関数がやること)

ひとことコメント

- `関数`
- `関数`
    - `引数に指定するclassやら構造体やら`//補足コメント

<チュートリアルのURL>

https://siv3d.github.io/ja-jp/

# システム系


## 処理タイミング調整
画面更新タイミングに合わせて処理を進めてくれるありがたいやつ。
- `System::Update()`

※3記事ぐらい連続して記載

https://siv3d.github.io/ja-jp/tutorial/basic/



## データ型一覧

stdライブラリの上位互換？なあれこれ達。

https://siv3d.github.io/ja-jp/tutorial/basic-types/

## 画面の座標系について

※冒頭

https://siv3d.github.io/ja-jp/tutorial/circle-rect/#81-%E7%94%BB%E9%9D%A2%E3%81%AE%E5%BA%A7%E6%A8%99%E7%B3%BB



## 前フレームからの経過時間を取得

- `Scene::DeltaTime()`

https://siv3d.github.io/ja-jp/tutorial/motion/#121-%E5%89%8D%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%81%8B%E3%82%89%E3%81%AE%E7%B5%8C%E9%81%8E%E6%99%82%E9%96%93%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B

## ライセンス関係

ライセンスの表示、追加

- `LicenseManager::ShowInBrowser()`
- `LicenseManager::AddLicense()`

https://siv3d.github.io/ja-jp/tutorial/app-basic/#413-%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E6%83%85%E5%A0%B1%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B

## 文字コード関係

- UTF-32で文字列を表記する際の注意

https://siv3d.github.io/ja-jp/tutorial/print/

## forループ

https://siv3d.github.io/ja-jp/tutorial/pattern/




# 画面表示系

## 文字列簡易表示

std<<coutのようなもの

- `Print << ○○`
- `ClearPrint()`

https://siv3d.github.io/ja-jp/tutorial/print/

std::format()のようなもの

- `U"{}"_fmt(x)`

https://siv3d.github.io/ja-jp/tutorial/text/#113-%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B

## 背景色

背景色変更

- `Scene::SetBackground()`
    - `Palette::`//色名がまとめられている
    - `ColorF{}`//RGBで指定
    - `HSV{}`//HSVで指定

https://siv3d.github.io/ja-jp/tutorial/background/

## 図形を描く

### 基本的な円、四角形、四角枠の描画
- `Circle`//円を描画するためのクラス
- `Rect`//四角形を描画するための準備
- `RectF`//RectF型はパラメータをdoubleで指定できる
- `インスタンス名.draw()`//描画
- `インスタンス名.drawFrame()`//枠のみ描画



https://siv3d.github.io/ja-jp/tutorial/circle-rect/

### 発展的な円の描画

- グラデーション
- `Circle.draw()`//描画
- `Point.asCircle{}`//Point型インスタンスの指す位置を中心とした円(描画はまだ)
- `Vec2.asCircle{}`//Vec2型インスタンスの指す位置を中心とした円(描画はまだ)
- `Circle.drawFrame()`//枠を描画
- `Circle.drawPie()`//扇形を描画
- `Circle.drawArc()`//円弧を描画
- `Circle.drawSegment`//弓形を描画


https://siv3d.github.io/ja-jp/tutorial2/shape/

### 発展的な四角形、四角枠の描画

- グラデーション
- `Rect.draw()`//描画
    - `Size`//四角形のサイズを入れれるクラス
    - `SizeF`//四角形のサイズを入れれるクラス
- `Rect.drawFrame`

https://siv3d.github.io/ja-jp/tutorial2/shape/#176-%E9%95%B7%E6%96%B9%E5%BD%A2%E3%82%92%E6%8F%8F%E3%81%8F

### 線を描画

- `Line`//円を描画するためのクラス
- `Line.draw()`

https://siv3d.github.io/ja-jp/tutorial2/shape/#178-%E7%B7%9A%E5%88%86%E3%82%92%E6%8F%8F%E3%81%8F


### 三角形を描画

- `Triangle`//三角形を描画するためのクラス
- `Triangle型インスタンス.draw()`//描画

https://siv3d.github.io/ja-jp/tutorial2/shape/#179-%E4%B8%89%E8%A7%92%E5%BD%A2%E3%82%92%E6%8F%8F%E3%81%8F

### 辺が平行でない四角形を描画

- `Quad`//三角形を描画するためのクラス
- `Quad.draw()`//描画
- `Rect.rotated()`//Rect型を回転させてQuad型に変換
- `Rect.rotatedAt()`//Rect型を回転させてQuad型に変換
- `Rect.shearedX()`//Rect型を平行四辺形にしてQuad型に変換
- `Rect.shearedY()`//Rect型を平行四辺形にしてQuad型に変換


## 絵文字を表示

絵文字のテクスチャ生成、表示

- `Texture インスタンス名{}`
- `インスタンス名.drawAt()`
- `インスタンス名.scaled().drawAt()`//大きさを変えて表示
- `インスタンス名.rotated().drawAt()`//回転して表示
- `インスタンス名.mirrored().drawAt()`//左右反転して表示

https://siv3d.github.io/ja-jp/tutorial/emoji/

## 文字を表示

文字を任意の場所、サイズ、フォントで表示。
つよつよsiv3Der曰く、`Font`の`operator () (関数呼び出し演算子)`は文字列を受け取って`DrawableText`を返すという実装とのこと。(draw()の宣言は`DrawableText`に書かれている)。

- `Font インスタンス名{}`
    - `FontMethod::`//フォントの描画方式
    - `Typeface::`//文字の太さを
- `font().draw()`
- `font().drawat()`//座標の基準点を指定して表示
    - `Arg::`//座標の基準点



    
https://siv3d.github.io/ja-jp/tutorial/text/



## マウスカーソルの形を変更

- `Cursor::RequestStyle()`
    - `CursorStyle::`

https://siv3d.github.io/ja-jp/tutorial/mouse/#145-%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%82%92%E6%89%8B%E3%81%AE%E5%BD%A2%E3%81%AB%E3%81%99%E3%82%8B

# 入力系

## ショートカットキー変更

ソフトウエア終了操作を変更。

- `System::SetTerminationTriggers()`
    - `UserAction::`//キーの種類がまとめられている

スクリーンショット操作を変更

- `ScreenCapture::SetShortcutKeys()`

https://siv3d.github.io/ja-jp/tutorial/app-basic/#412-%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B

## 特定のキーが押されたか確認

- `キー名.down()`//押した瞬間のみ
- `キー名.pressed()`//押している間ずっと

https://siv3d.github.io/ja-jp/tutorial/keyboard/

## 特定のマウスボタンが押されたか確認

おそらくキーボードと同じ関数が使える。

- `キー名.down()`

https://siv3d.github.io/ja-jp/tutorial/mouse/

## マウスポインタの座標を取得

Vec2型と互換性あり。

- `Cursor::Pos()`

https://siv3d.github.io/ja-jp/tutorial/mouse/#142-%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%81%AE%E5%BA%A7%E6%A8%99%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B

## 図形がクリックされたか判定

もちろん右クリック用関数もあります。

- `図形のインスタンス名.leftClicked()`

https://siv3d.github.io/ja-jp/tutorial/mouse/#143-%E5%9B%B3%E5%BD%A2%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%9F%E3%81%8B%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B

## マウスポインタが図形の上にあるか判定

- `図形のインスタンス名.mouseOver()`

https://siv3d.github.io/ja-jp/tutorial/mouse/#144-%E5%9B%B3%E5%BD%A2%E3%81%AE%E4%B8%8A%E3%81%AB%E3%83%9E%E3%82%A6%E3%82%B9%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8B%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B

# 出力系


# 演算系

## ラジアンと度数法の変換

- `角度_deg`//度数法をラジアンに計算してくれるoperatorが実装されている

https://siv3d.github.io/ja-jp/tutorial/emoji/?h=_deg#103-%E7%B5%B5%E6%96%87%E5%AD%97%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%95%E3%81%9B%E3%81%A6%E6%8F%8F%E3%81%8F