[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
R-typeのような波動砲を実装したくて、まず波動砲用のメーターを作ろうと思ったのですが
出来ればエスプガルーダのような、自機の周りを囲むような円形のメーターを表示させたいと
思って、まずは簡単なプログラムを作って考えてみました。
作りたいメーターのイメージとしてはこんな感じ。
自機の周りをメーターが囲っています。
で、どうやって実装しようかと思ったのですが、最初は円形の画像を用意してちょっとづつ表示場所を
増やそうかと思ったのですが、画像が円形なのでちょっとづつ増やすってのが出来なくて挫折。
次に思いついたのが、小さい画像を回転させながら円形に表示する方法。
この画像のような感じで、角度をちょっとづつ増やしながら回転させて表示してやれば、円形の棒に
見えるのではないかと思い作ってみたら上手く出来ました^^
プロジェクトファイルはコチラ↓
https://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1242974292
このプログラムを動かすとこんな感じです↓
Xキーを押すと徐々にメーターが上がっていって、離すと下がります。
表示プログラムとしてはこんな感じ。
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if( Key[ KEY_INPUT_X ] == 1 )//Xキーが押されたら
{
if( g_ang<4.71) {g_kazu++;g_ang=-1.57;}//角度が設定以下ならメーターを増やす
for(i=0;i<g_kazu;i++)//角度を増やす処理
{
if( g_ang>=4.71) g_ang=4.71;//設定以上増やさない
if( g_ang<4.71)//設定以下なら増やす
{
g_ang+=0.07;
enemy[i].g_r=g_ang;
}
}
}
else
{//ボタンを押していない時
for(i=0;i<g_kazu;i++)
{
enemy[i].anime=0;
}
g_ang-=4;
if(g_ang<0) g_ang=-1.57;
g_kazu-=4;
if(g_kazu<0) g_kazu=0;
}
for(i=0;i<g_kazu;i++)//回転座標の計算
{
g_r=enemy[i].g_r;//cos,sin計算用
enemy[i].ex=cos(g_r)*g_ds+(tx+24);//表示座標の計算x
enemy[i].ey=sin(g_r)*g_ds+(ty+24);//表示座標の計算y
ang=atan2(enemy[i].ey-(ty+24),enemy[i].ex-(tx+24));//表示角度の計算
DrawRotaGraph( enemy[i].ex , enemy[i].ey , 1.0f ,ang , g_haikei01[enemy[i].anime] , TRUE ) ;//メーターの表示
enemy[i].anime++;//アニメ用
if(enemy[i].anime>=8) enemy[i].anime=0;
}
DrawGraph( tx , ty , g_ship , TRUE ) ;//自機表示
DrawGraph( tx-24 , ty-24 , g_meter , TRUE ) ;//メーター枠表示
/////////////////////////////////////////////////////////////////////////////////////////////////////////
まずメーター自体を表示させて、その上にメーターの枠を表示させています。
サインコサインで円の計算をして、Xキーを押せば押すほど角度と表示メーター数を増やして
表示するって感じ。
ただ、この方法だとメーターが最大まで上がった時は、メーター描画を90回繰り返しているので
効率が悪いような気がするのですが、他に良い方法も思いつかないので、とりあえず
この方法で実装してみて重そうだったら、諦めて普通のメーターにしようかと思ってます^^;
一枚はエネルギーの溜まりをグラデで表面に描き、もう一枚はマスク(溜め用の円盤より表示順位は上だがこれ自体は非表示)で初期は完全に重なっていて、ボタンを押すとマスク円盤が回転して溜め円盤の下に隠れていく・・・みたいな方法ならば簡単に出来るかも・・・?
それで本当に実現出来るかは自身無いですが(^^;
(工作は得意なので机上で考えました)
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が特に好きで、並木学氏は最高!