スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ショートレーザー・・・と雑記

ショートレーザー


どうも 遅くなってしまいましたがショートレーザーの実装が完了しました 以前のとは一味違うぜ!!(キリッ


twitterの方では結構前に実装した旨を報告しましたがなんか面倒でこっちは更新してませんでした


ちなみにこれは弾が一直線に並んでいるものとして処理しています そしてその構成要素の弾一つ一つと判定を行っているので自機が当たったらちゃんと途切れます


結構綺麗にできました しかし当たり判定の回数がかなり多いので(この画像では各レーザー毎に300回。長ければ長いほど多いです)現在では300本が限界です 一応いくつか判定方法を減らす手は考えてますが実装するにはまだ時間がかかりそうです





最近プログラムの進捗ばっかりであれだったのでたまには普通の話をば


最近東方以外のオタク的(?)文化からめっきり離れてしまってまして マンガはエヴァを少しとアニメはカイジとうえきの法則をちょいちょい見ているだけです


今期のアニメも一話見逃したら見る気が失せてしまって なんだかなぁ けいおんとかAngel beatsとか話題に上がったりしますが全然ついていけません


そろそろ頑張らないと いろいろと


そういや今ゴールデンウィークですね


今年のゴールデンウィークはめずらしく予定がたくさんあって普段の週末以上に規則的な生活を送っていました


とか言ってる間にゴールデンウィークが終わる~











勉強?なにそれ知らんがな




ではまた


スポンサーサイト

固定レーザー

レーザー的な何か


どうも


どうにか今月中に更新できてよかったです


今回は、前回言った通り固定レーザーとその当たり判定(線対円)を作りました ついでにエフェクトも レーザーの始点の光ってるそれが一応エフェクトです


今のところ被弾、またはボムの範囲に入っても消えたりしませんが、そのうちレーザーの始点が自機に触れたりボムの範囲に入ったりしたらレーザーが消えて範囲から外れたらまた始点からレーザーが伸びてくる、みたいなこともやろうと思います


因みに今回は円(自機)対太さのある線(レーザー)で判定を行いました


これにはベクトルの内積と外積を使います


※諸事情により、この文章を書くのは4回目です。満身創痍です。くたくたです。なのでところどころ日本語がおかしかったり表現がくどかったりすることがありますがあらかじめご了承ください


まず、ベクトルa(ax, ay)、b(bx, by)の内積は


a・b = |a||b|cosθ (ベクトルの絶対値はベクトルの長さ、aとbが成す角度をθとします)


と定義されます。なので、


a⊥b の時は a・b = 0 になり、
θが鈍角の時は a・b < 0 になり、
θが鋭角の時は a・b > 0 になります


なので、レーザーの始点から終点までのベクトルをa、レーザーの始点から自機までのベクトルをbとすると、


線対円01


①a・b ≦ 0 の時、自機はレーザーの始点よりも外側にあるので、自機とレーザ-の最短距離はレーザーの始点から自機までの距離(|b|)ということになります


線対円02


なので、円(自機)対円(中心がレーザーの始点、半径がレーザーの太さ)で判定することができます


ちなみに内積は、θが分からなくとも


ax * bx + ay * by


で求めることができます。なぜかは知りません


a・b > 0 の時は自機がレーザーの始点よりも内側にあるので、次のステップに移行します


次は自機がレーザーの終点からどちら側にあるかを調べます


これは単にレーザーの終点から始点までのベクトルとレーザーの終点から自機までのベクトルの内積を求めればいいですが、今回は上で出したa・bを活用します


|a||b|cosθ から|a|を割ると


|b|cosθ


となります。 この値はbの終点からaに向けて垂線を引いた時のaの始点からaと垂線の交点までの距離ということになります。


線対円03



なので、この値が|a|以上の時、つまり交点がaの終点になる時、または交わらない時、自機はレーザーの終点よりも外側にあるので、自機とレーザ-の最短距離はレーザーの終点から自機までの距離ということになります


線対円04



つまり、


②a・b / |a| ≧ |a| の時、円(自機)対円(中心がレーザーの終点、半径がレーザーの太さ)で判定することができます



a・b / |a| < |a| の時は自機がレーザーの終点よりも内側にあるので、最後のステップに移行します


①、②両方に当てはまらない時、自機とレーザーの最短距離はbの終点からaに向けて垂線を引いた時の垂線の長さということになります


線対円05


この長さを調べるにはベクトルの外積は使います


外積は


a×b = |a||b|sinθ


と定義され、これもθが分からなくとも


ax * by - ay * bx


で求めることができます。なぜかは知りません


そして、


|a||b|sinθ から|a|を割ると


|b|sinθ


となり、この値はbの終点からaに向けて垂線を引いた時の垂線の長さということになります。


線対円06


ここで注意したいのは、この値には符号が付きます。つまり-だったりすることもあります。


なぜかと言うと、θの値が270 < θ < 360の時、sinの値がマイナスになるからです。


なので必ずこの値の絶対値と比較してください


つまり


③ | a×b / |a| | < 自機の当たり判定の広さ + レーザーの太さ の時、当たってるということになります


①、②、③すべてに当てはまらない場合、当たってないということになります


さて、固定レーザーは実装できたので次はショートレーザーを作ろうと思います


ではまた


お久しぶりです

ボムっぽいもの


どうも 久々の更新です


次更新する時はプログラムの進捗を書こうと思っていたのですがどうにもなかなか進まなかったので遅くなってしまいました まあいつものことですがね


で、今回の進捗っていうのは見ての通り 霊撃っぽいのを作ってみました


作るのは難しくも何ともなかったわけですが、とにかく面倒でした


見た目は残念な感じですけどね;;ボムのエフェクトの画像は一応AzPainterを使って自分で書いたんですが酷いもんです


・・・まあそれだけなんですけどね


いつの間にか更新頻度が0.01下がってますが気にしない


ではまた 次はレーザーの当たり判定を作ってみようと思います


レーザー?

レーザーっぽい何か


どうも


ここ数日間で地霊殿3面辺りでよく出てくる短いレーザーを再現しました


表示させるだけなら簡単ですが問題は当たり判定です


線対円で判定させるつもりですがこれにはベクトルの概念が必要になってくるようです


学校でベクトルを勉強するのはまだ先なので自分で勉強しないと;;


ではまた


やっとできた・・・


どうも


こないだ書けなかったことも含め今回は久々にプログラムの方の進捗をば。大して進んでないけど


ここ2~3週間ずっと楕円について頭を抱えていたわけですが、昨日今日でようやく解決しました。結果・・・


いい感じにできました



こんな感じになりました。幅や高さ、角度等も簡単に且つ自由に変えることができます。


「C++ 楕円 プログラム」でググって2つめに出てくるサイトを参考にしました


半径1の円を横にa倍、縦にb倍に引き延ばした楕円があり、中心を横軸をx、縦軸をyとした座標平面の原点O、円周上の点をPとします


x軸と線分OPが成す角度を弧度法でθとした時、Pの座標は

x = a cosθ
y = b sinθ

となるそうです この関係式だけ見てもピンとは来ませんが、図を描いて考えるとしっくり来ます ペイントかなんかで図を描いて載せようと思ったりもしましたが大変なんでやめました 各自でどうぞ


あと角度の変え方(楕円の傾け方)ですが、これは私自身よく理解できてないので説明できません


一先ずこれで弾幕や敵の移動パターンの幅が広がります めでたしめでたし


まあそれはそれとして




最近妹が一輪車の話ばっかりしてきてうるさいです


そういや私が小学生だった頃にも女子の間で一輪車が流行っていた時期がありました


ゲームばかりやっていた当時の私と違って至って健全 何も悪くはないわけですが


なぜ一輪車は次々と生まれる近代的遊びに埋もれず今もなお親しまれ続けているのでしょうか


まあ学校で休み時間にできることなんて限られてるから分からなくはないんですがね 鬼ごっこやドッジボールに並ぶ定番の遊びなのかもしれません・・・が


あれってそんなに楽しいものでしたっけ 私は支えから手をはなして倒れずに真っ直ぐ進めるかどうかって程度しか乗れませんでしたが、そこまで熱中できるものなんですかね サーカスにでも入るつもりなんでしょうか


まあそう思うのも単に私が下手だったからかもしれません


ともかく今もなお愛され続ける一輪車 かくしてその人気の理由は未だに分からぬままです 別に調べる気にもならないですけどね


そういや最近Twitterなるものが気になってます


どうやら一言ブログ(?)的なものだそうで、携帯からも更新できるらしく、著名人もぼちぼち利用しているみたいです


なんか友達もやってるので今度やってみるのもいいかもしれません


他にも書くことがあったような気もしますが結構長くなってしまったのでこの辺で終わりにしておきます


ではまた

プロフィール

Naname

Author:Naname
アニメ見たりゲームしたりが趣味の所謂オタク
最近はC++とDXライブラリでゲーム作ってます

Twitter

 

FC2カウンター

Time is Money

時間給が円とすると

低さに定評のある更新頻度

頻度が0.1記事を下回ったら本気だす

検索フォーム

ブロとも申請フォーム

QRコード

QRコード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。