忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

以前、ホーミングレーザーを実装しようと思って三角関数を使って作った事があったのですが
斑鳩の解放のようなカッコいいホーミングとは言い難い動きでした。
(ホーミングとしての機能は申し分ないのですが)

で、ベジェ曲線を上手く使えれば、綺麗なカーブを描くホーミングレーザーを作れるんじゅ
ないのかと思い、とりあえずベジェ曲線を表示するプログラムを作ってみたのがコレ↓
s-WS000708.jpg
作ったと言っても、前に作ったベジェ曲線表示プログラムを3次元から2次元に変更しただけです。
レーザーの動きとしてはP0からP2に向かって動いていきます。
つまり、P0の座標を自機、P2の座標を敵とすれば、ベジェ曲線を使ったホーミングレーザーが
作れそうです。

3次ベジェ曲線の計算方法はこんな感じ
s-1023.jpg
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  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次元に比べると、かなり計算式が減っています。

で、コレを元に沢山のベジェ曲線を表示するプログラムを作ってみました。
s-WS000709.jpg
こんな感じ。
白い線が、ホーミングレーザーの軌跡だと考えると、なかなか良い感じなのではないかと
自分では思っています^^
とりあえず暫定的な出来なのでプロジェクトファイルはアップしてません。
コレを元にボタンを押す度に、1本づつレーザーが表示されるプログラムを作ろうかと思っとります^^;

ベジェ曲線を使ってホーミングレーザーを作ってみる その2へ

PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
おお、着々と進行していますね~♪
レーザーの軌跡でなんとなくOVAの
ガルフォースを思い出しました。(^^)
荒作 2009/10/24(Sat)00:18:18 編集
無題
荒作さん>
上手く出来ると良いのですが^^;
ガルフォース懐かしいですねぇ。個人的にはアニメよりもゲームの印象の方が強いです。
MSX版のが好きでした^^
kt. 2009/10/24(Sat)12:20:04 編集
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
03 2024/04 05
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
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]