ページ 1 / 1
ボスのアニメーションのさせかた
Posted: 2013年12月24日(火) 16:03
by OZ
今龍神録を改造しているのですがボスのアニメーションのさせ方が分かりません。
龍神録プログラミングの館の10章「敵を表示させてみよう」を応用すれば出来るんじゃないかと思ったのですが、
どこでアニメーションの計算をしているのかが分かりません。
graph.cppで計算してるんですかね?
何かヒントが欲しいです。
よろしくお願いします。
Re: ボスのアニメーションのさせかた
Posted: 2013年12月24日(火) 16:40
by softya(ソフト屋)
敵だとenemy.imgがアニメの番号になります。
Re: ボスのアニメーションのさせかた
Posted: 2013年12月24日(火) 22:22
by OZ
龍神録で敵や自機の画像がどんな仕組みでアニメーションされているのかがよく分かりません…
4章や10章を見る限り、
struct.hに構造体を作る
↓
GV.hに画像の配列を用意する
↓
load.cppで用意した配列に画像を分割ロード
↓
graph.cppで画像を描画
という風な感じでやっているみたいですが、何故ちゃんとアニメーションになるのか不思議です。
>>敵だとenemy.imgがアニメの番号になります。
アニメの番号とはどういう事ですか?
Re: ボスのアニメーションのさせかた
Posted: 2013年12月24日(火) 22:32
by softya(ソフト屋)
OZ さんが書きました:
>>敵だとenemy.imgがアニメの番号になります。
アニメの番号とはどういう事ですか?
ここ → load.cppで用意した配列に画像を分割ロード
で分割され画像の配列の番号って事ですね。
よく分からない場合、下記の内容を理解されたほうが良いと思います。
http://dixq.net/g/19.html
http://dixq.net/g/20.html
http://dixq.net/g/21.html
Re: ボスのアニメーションのさせかた
Posted: 2013年12月25日(水) 14:14
by OZ
うーん…
ボスの画像を分割ロードして
img_boss[0][boss.img]
としても、最初の一枚目(アニメ番号0)だけが表示されてしまって
アニメーションされないです
boss.imgの部分を0や1などの数字にするときちんとその番号の画像が表示されるので
[]の中を数字にすれば上手くいくかと思い以下のようにやってみましたが
やっぱり最初の一枚目だけが表示されます
graph.cpp
コード:
void graph_boss(){
int i;
int k=0;
if(boss.flag==0)return;
graph_boss_effect();
DrawRotaGraphFdF(boss.dx,boss.dy,1.0f,0.0f,img_boss[0][k%4],TRUE);
if(boss.hp_max==0){printfDx("graph_boss内0割り\n");return;}
for(i=0;i<FMX*0.98*boss.hp/boss.hp_max;i++){
if(boss.back_knd[boss.knd]==1)
DrawGraphFd(3+i,2,img_etc[7],FALSE);
else
DrawGraphFd(3+i,2,img_etc[1],FALSE);
}
k++
}
Re: ボスのアニメーションのさせかた
Posted: 2013年12月25日(水) 15:51
by softya(ソフト屋)
int k=0;だとgraph_boss()関数を呼び出すたびに0に初期化されます。つまり変化が起こりません。
ローカル変数の変数の寿命は関数を抜けるまです。
ずっと残したい情報は構造体で管理して下さい。
Re: ボスのアニメーションのさせかた
Posted: 2013年12月25日(水) 17:55
by sql
推奨はしませんが・・・「static int k = 0;」としてみるとどうでしょう・・・
Re: ボスのアニメーションのさせかた
Posted: 2013年12月25日(水) 20:50
by OZ
無事解決できました!
前のままだと1秒間に60回画像が切り替わり、せわしない感じになったので
if文で1秒間に6回画像が切り替わるように調整して完成しました
お世話になりました
softya(ソフト屋)さん
ローカル変数だから上手くいかなかったんですね
確認不足でした…
sql さん
staticを使う手もあったのですね
基本を勉強したときにきっと使わないだろうと高を括り
熱心にやらなかったのですっかり存在を忘れていました(^^;)
Re: ボスのアニメーションのさせかた
Posted: 2013年12月25日(水) 21:11
by softya(ソフト屋)
sqlさんも書いていますが、staticは弊害も多いので迂闊に使わないほうが良いです。
変数の寿命とか無意識に気にかける事が出来るようになってからのほうが良いでしょう。