もどる TOP

線を回転させる方法

線を回転させる方法

 右上の黒い線を、『線の中心を基準に』任意の角度回転させて、赤い線の状態にする方法を考えるのに、さんすうができないので4時間かかってしまった。赤い線の両端の、赤丸部分の座標が知りたかった。

 [1] ベクトルを回転させる魔法しか知らないので、まず線をベクトルにする。ベクトルは線の大きさを表すものなので、端っこが原点になるように線をズラせばベクトルと同じになる。

 [2] 魔法でベクトルを回転させる。ベクトルを回転させる方法を調べると出てくる、ラジアンとサインとコサインがどうこうのやつを使う。そうすると、片方が原点のまま、もう片方が動いたのと同じことになる。

 [3] [1]と逆のことをして、線をもとの位置に戻す。でもこれだとまだ、線の真ん中を基準に回転できてない。

 [4] ピンクのベクトルを作って、線の両端の点に足せば真ん中基準になる。ピンクのベクトルの作り方は、[1]完了時点でのベクトルの半分 - [2]完了時点でのベクトルの半分だ。

 しかし実はこの図には大嘘があるのだ。それは、ベクトルの回転は反時計回りだから、実際は [2] は90度じゃなくて270度回転させてるということだ。でもシベ公は時計回りでしか頭が動かないので、90度回転させたいときは、最初に360 - 90してから上記のロジックを使うようにした。[4]で引き算するのはたぶんそのせいだ。

うさバルカン

#android #gamedev #shootemup ブンブン固定弾

@napoporitatasoが投稿した動画 -

 ブンブン固定弾です

 角度指定で弾が撃てるようになったのでやっとなんかそれっぽくなってきた といっても本にのってた、ベクトルを回転させるやつをそのまま使わせてもらってるだけなので、数学はよくわかってない……

 まず最初に角度を気にせず初速を弾のベクトルにつっこんで (x=0, y=初速 とか)、基本それを回転させて、フレームごとに弾の座標に足してって弾を移動させてる 回転させる角度は、自機狙いなら自機と弾源の座標がわかればマテマティカできるらしいので、これまた中身わかんないやつに計算してもらってる

 弾源という概念があったことを思い出したので敵座標とショットの中心位置を分けて持つようにした

 弾速が途中で落ちるやつは、とりあえず10フレーム目から25フレーム目まで5フレームきざみに計4回弾速を0.7倍にしただけでもけっこうそれっぽくなったけど、なんかこうヌルッてなるやつ(伝われ)はイージングという名前らしいので、なんかこう計算みたいなのできないか調べてみる

 四角い弾も撃ちたいんだけど角度とか当たり判定がめんどくさそうだから今度

をああ

 やっとway弾が撃てるようになったヨ~~(;O;) 記念に8way自機狙い全方位弾を撒いてみました

 角度とベクトルがこんなめんどくさいとは (それ以前にOpenGLでコケまくってたけど)

 でもしばらく市販のシューティングゲーム見てて思ったけど たぶんほんとに大変なのは敵キャラを動かすとこなんだよな 当然のように雑魚ヘリとか戦車とか動いてるのってよく考えると意味がわからんぞ

 OpenGLやたら目が滑ってます…… やっとHelloWorldみたいな

 気分転換にJavaScriptでサメガメを作ってみました

 Androidも来たおかげで動作確認が捗ります

今年一番声に出して読みたかった日本語『星の娘、エーブリエタース』

#android #gamedev #shmup

@napoporitatasoが投稿した動画 -

 自機狙い弾を撃ってもらえるようになったヨ~~! 敵を倒すとアイテムが出るけど、その時そいつが撃ってる弾も一緒にアイテムにしてみたヨ~~ もちろん自機はアイテムは吸い寄せるヨ~~

 でもなんか背景を画像で出すとやたら処理落ちするんで、drawLineで直接書いて妥協しちゃった…… それ解決してなくて、処理落ち対策でいろいろやったけど、なんかもっと根本的なところで間違えてるのかもしれない。ちょっとOpenGL試してみて解決するならそっちにしようとおもったけど、あれメチャクチャ難しいんね

 ……( -_-)zzz

サイドバーを表示する
ブログ
ShortCircuit
ShortCircuit
花火大会
天使
去る512時間前、キリウ君は折れてない千歳飴を渡してきて、ぼくが折るよう仕向けた。1024時間前、彼はこの世のものではないハッシュアルゴリズムでひとりブロックチェーンを始めていた。