読書メモ:Game Development with Rust and WebAssembly (Chapter 5,6)
概要
サンプルコードを書いて遊んでたリポジトリは以下
メモ
5章 衝突判定
- 面倒と噂には聞くコリジョン
- バウンティングボックス
- コリジョン判定するために全てのピクセルを比較するのは無理
- 長方形に単純化して扱う
- ワイリー・コヨーテ効果
- 崖から飛び出してもしばらくはそのまま落ちない演出から名付けられた
- 致命的なことが起こった後もしばらくはうまくいっているように見えることをさす
- 「プログラミングが難しいのであって、あなたが馬鹿なのではない」
6章 エンドレスランナーの作成
- ハンナ・バーベラ法
- 背景が繰り返し現れるようにすること
- 「16bitあれば月に行ける」
- アポロ11号ネタ
#[derive(Default)]
- こんなものが...!
- defaultの独自定義いらない場合に使える
- filter_map
- Optional が発生し得るiterへの処理を扱うには必須
- map した後で None をfilterしてくれる
- (filterとmapの処理順逆では..?って毎回思う)
const fn
- const 文脈で呼ぶことができる fn
- https://doc.rust-lang.org/reference/const_eval.html
- コンパイル時に確実に評価できる必要があるので制約がある
- 何度呼び出しても同じ結果を返す必要がある
- そのため不動小数点が使えない
- ジェネリクスtypeとライフタイムパラメータも使えない
max_by
- 配列から最大値を求める
- やりたい時がたまにあるので便利そう
読書メモ:Game Development with Rust and WebAssembly (Chapter 5,6)