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

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

ホーミングレーザーを作ろうと思って試行錯誤していたのですが全然出来ず
困っていたら、いや☆ぼーん ラボのEcoQさんがホーミングレーザーのスクリプトを
ソース付でアップして下さり、ここぞとばかりにダウンロードしてソースを見させて
もらってました。
そうこうしている内に、今度はコメント欄でellerさん作のホーミングレーザースクリプト
紹介して下さり、これまたここぞとばかりに眺めていたんですが、やはり三角関数で
計算して表示しないとダメッぽいな~という事がわかって来ました。

で、いつものように簡単なスクリプトを作って(真似して)ホーミングレーザースクリプトを
作製してみました↓
ホーミングレーザースクリプト

このスクリプトを動かすとこんな感じ↓
2007_9_22.jpg
■が敵で、三角が自機。●がレーザーです。

ホーミングレーザーを作る上での考え方は、弾の動き(回転角度)を制限するって事です。
例えば、360度で考えるとして
敵弾の移動方向が10度
敵弾から見た自機の位置が20度だったとすると
敵弾は次のフレームの時は20度の方向に向かおうとするわけです。
でも、ここで敵弾の最大回転角度を5度に設定していたとすると、敵弾は15度の
方向にしか進めません。
こういう計算をスクリプトをで行うのですが、こんなのどうすんだ?と思っていたら
limitfと言う命令がある事を知りました。
このlimitfという命令ですが、ヘルプを見ると
******************************************************************************
p1に指定した値を,p2~p3の範囲内に収まる実数に変換したものを返します。
p1の値がp2よりも小さい場合は、p2の値が返され、p1の値がp3よりも大きい場
合にはp3の値が返されます。
これにより、limitf関数が返す値は、必ずp2~p3の範囲内となります。
******************************************************************************
まさにこの計算の為にあるんじゃないかと思うような命令です^^
これによってホーミングレーザーはなんとか出来ました。(写したとも言いますが^^;)

後は、尾っぽの部分です。
これは以前書いた自機のオプション(グラディウス風)の時と同じで
配列にある程度の座標を記憶させておき、一定間隔で尾の部分を表示させて
やればOKでした。

とりあえず標準命令では出来たので、これを元にHSPDXFIXで作ろうと思っているのですが
上手くいく・・・・・・と思いたい^^;

PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
04 2024/05 06
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 31
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]