アフィリエイト広告を利用しています
 

2023年07月20日

ゲームと三角関数

4_19_1.png
今回「Laboratory」で説明した、「自機に向かって飛んでくる敵弾」もそうなんですが、シューティングゲームや、アクションゲームなどのゲーム制作には三角関数がかなりの割合で付きまといます。

敵の動きが真っ直ぐ自機に向かってきたり、曲線(円や波状)を描くように動けば、それは(多分)三角関数です。(パターンデータの可能性もあるが...)
ただ初心者は、「三角関数って直角三角形の辺の長さや角度を求める数式だよね?」
「そもそも、三角関数をどう使えばああいう動きが出来るの?」
と、悩むと思います。(私もそうでした。)
特に数学不得手な人には、三角関数は非常に難しい問題かと思います。
まぁ、そういった動きをしないジャンルのゲーム(ロールプレイングゲームとかアドベンチャーゲーム、パズルゲームとか。)を作っていればいいんでしょうが…。

でも、やっぱりシューティングゲームやアクションゲームも作りたいですよね?
となると、現状必須の知識と思われます。

今回、Laboratryで取り上げるに当たり、いろんな言語のいろんな解説サイトを回りましたが、新しい言語用の解説しかなく、言語中で当たり前のようにsinだのcosだの使ってて、何の参考にもなりませんでした…。
逆に「これだけプログラム中で三角関数の計算していて、この速度で動作するんだ…。」って、感心してしまいました。
しかも、そのプログラムで弾幕シューティングまで作れてしまうなんて…。
CPUの処理能力高すぎ…。
うーん、敵毎、弾毎にそれだけ三角関数使って計算していたら、昔のパソコンなら絶対にゲームにならない速度ですね…。

そもそもMSXには三角関数を求める命令がないから、sin・cos・tanをどう求めるか?
他の人のプログラムを見たことはないけど、多分、私同様計算結果をデータベースとして用意してるんじゃないかなと思います。
それでも単純に三角関数の回答だけデータベース化しても、その値から長さとか求めるためにかけ算・割り算の計算しまくりで、一層遅くなりますね…。

じゃぁ、どうするか?
それらを追加でLaboratoryのテーマに挙げますね。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記
検索
<< 2023年07月 >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード