[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
以前、ホーミングレーザーを実装しようと思って三角関数を使って作った事があったのですが
斑鳩の解放のようなカッコいいホーミングとは言い難い動きでした。
(ホーミングとしての機能は申し分ないのですが)
で、ベジェ曲線を上手く使えれば、綺麗なカーブを描くホーミングレーザーを作れるんじゅ
ないのかと思い、とりあえずベジェ曲線を表示するプログラムを作ってみたのがコレ↓
作ったと言っても、前に作ったベジェ曲線表示プログラムを3次元から2次元に変更しただけです。
レーザーの動きとしてはP0からP2に向かって動いていきます。
つまり、P0の座標を自機、P2の座標を敵とすれば、ベジェ曲線を使ったホーミングレーザーが
作れそうです。
3次ベジェ曲線の計算方法はこんな感じ
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
for(i=0;i<DivNum;i++)
{//白いベジェ曲線を描画
u = ( 1.0 / DivNum ) * Counter2 ;
P01[0] = ( 1.0 - u ) * P0[0] + u * P1[0] ; P01[1] = ( 1.0 - u ) * P0[1] + u * P1[1] ;
P12[0] = ( 1.0 - u ) * P1[0] + u * P2[0] ; P12[1] = ( 1.0 - u ) * P1[1] + u * P2[1] ;
P02[0] = ( 1.0 - u ) * P01[0] + u * P12[0] ; P02[1] = ( 1.0 - u ) * P01[1] + u * P12[1] ;
x = ( int )P02[0] ;
y = ( int )P02[1] ;
DrawBox( x - 1 , y - 1 , x + 1 , y + 1 , GetColor( 255 , 255 , 255 ) , TRUE ) ; //ベジェ曲線を描画
Counter2 ++ ;
if( Counter2 == DivNum ) Counter2 = 0 ;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3次元に比べると、かなり計算式が減っています。
で、コレを元に沢山のベジェ曲線を表示するプログラムを作ってみました。
こんな感じ。
白い線が、ホーミングレーザーの軌跡だと考えると、なかなか良い感じなのではないかと
自分では思っています^^
とりあえず暫定的な出来なのでプロジェクトファイルはアップしてません。
コレを元にボタンを押す度に、1本づつレーザーが表示されるプログラムを作ろうかと思っとります^^;
ベジェ曲線を使ってホーミングレーザーを作ってみる その2へ
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
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 |
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!