自機や敵の動きを作っている
簡易シーケンサーはだいたいできたかなということで、ゲーム本体を作っている。ギャラガのようなシューティングゲームを作るべく、まずは自機の動きを作り、今は敵の動きを作っている。あの編隊飛行しながら出現して、大編隊を組みしばらくすると攻撃してくるという動きである。まんまに作るとやはりまずいのでちょっと自分のアイデアを付け加えて作ろうとしている。敵の動きのうち、円や半円の軌跡を描くのはできた。三角関数を使えば簡単にできる。さらに編隊飛行させようかなとがんばっているところである。
当たり判定はまだなくて、敵の動きが一段落したら実装しようと思う。今のところJavascriptでもパフォーマンス的には問題はないが、当たり判定を実装したらどうかなと思っている。でもまあパフォーマンス的にはこの程度のゲームならいまどきのPCではわけもない負荷だろうなと思いつつ、JavaScriptのパフォーマンスを上げる情報をチェックしたりして簡単なことなら実装に取り入れたりしている。しかしこのJavaScriptのパフォーマンスアップの方法って、8ビット時代のBASICのパフォーマンスアップの方法となんとなく似ているような気もしないでもない。
JavaScriptで遊んでいて、こんな感じでSCRIPTタグでC++コードが書けて、実行時にネイティブコードにコンパイルして実行できればいいなぁとか思った。ChromeだとNaclとかあるけれどもこれはプリコンパイルしているオブジェクトを実行するもの。そうでなくて実行時にネイティブコードにコンパイルできて、セキュリティ的に安全で、DOMにアクセスできるようなもの。LLVM+αでできそうな気もするけども。シェーダー言語はもうブラウザ上でコンパイル・実行可能だし出来そうだよね。まあこれでDLL相当のものをこれで作ってJavaScriptから呼び出したりとか。JavaScriptでネイティブコード相当のスピードが出るのならいらないけどね。でも言語仕様的にそれは難しそうだ。