今龍神録を改造しているのですがボスのアニメーションのさせ方が分かりません。
龍神録プログラミングの館の10章「敵を表示させてみよう」を応用すれば出来るんじゃないかと思ったのですが、
どこでアニメーションの計算をしているのかが分かりません。
graph.cppで計算してるんですかね?
何かヒントが欲しいです。
よろしくお願いします。
ボスのアニメーションのさせかた
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボスのアニメーションのさせかた
敵だとenemy.imgがアニメの番号になります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
OZ
Re: ボスのアニメーションのさせかた
龍神録で敵や自機の画像がどんな仕組みでアニメーションされているのかがよく分かりません…
4章や10章を見る限り、
struct.hに構造体を作る
↓
GV.hに画像の配列を用意する
↓
load.cppで用意した配列に画像を分割ロード
↓
graph.cppで画像を描画
という風な感じでやっているみたいですが、何故ちゃんとアニメーションになるのか不思議です。
>>敵だとenemy.imgがアニメの番号になります。
アニメの番号とはどういう事ですか?
4章や10章を見る限り、
struct.hに構造体を作る
↓
GV.hに画像の配列を用意する
↓
load.cppで用意した配列に画像を分割ロード
↓
graph.cppで画像を描画
という風な感じでやっているみたいですが、何故ちゃんとアニメーションになるのか不思議です。
>>敵だとenemy.imgがアニメの番号になります。
アニメの番号とはどういう事ですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボスのアニメーションのさせかた
OZ さんが書きました: >>敵だとenemy.imgがアニメの番号になります。
アニメの番号とはどういう事ですか?
ここ → load.cppで用意した配列に画像を分割ロード
で分割され画像の配列の番号って事ですね。
よく分からない場合、下記の内容を理解されたほうが良いと思います。
http://dixq.net/g/19.html
http://dixq.net/g/20.html
http://dixq.net/g/21.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
OZ
Re: ボスのアニメーションのさせかた
うーん…
ボスの画像を分割ロードして
img_boss[0][boss.img]
としても、最初の一枚目(アニメ番号0)だけが表示されてしまって
アニメーションされないです
boss.imgの部分を0や1などの数字にするときちんとその番号の画像が表示されるので
[]の中を数字にすれば上手くいくかと思い以下のようにやってみましたが
やっぱり最初の一枚目だけが表示されます
graph.cpp
ボスの画像を分割ロードして
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++
}
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボスのアニメーションのさせかた
int k=0;だとgraph_boss()関数を呼び出すたびに0に初期化されます。つまり変化が起こりません。
ローカル変数の変数の寿命は関数を抜けるまです。
ずっと残したい情報は構造体で管理して下さい。
ローカル変数の変数の寿命は関数を抜けるまです。
ずっと残したい情報は構造体で管理して下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
OZ
Re: ボスのアニメーションのさせかた
無事解決できました!
前のままだと1秒間に60回画像が切り替わり、せわしない感じになったので
if文で1秒間に6回画像が切り替わるように調整して完成しました
お世話になりました
softya(ソフト屋)さん
ローカル変数だから上手くいかなかったんですね
確認不足でした…
sql さん
staticを使う手もあったのですね
基本を勉強したときにきっと使わないだろうと高を括り
熱心にやらなかったのですっかり存在を忘れていました(^^;)
前のままだと1秒間に60回画像が切り替わり、せわしない感じになったので
if文で1秒間に6回画像が切り替わるように調整して完成しました
お世話になりました
softya(ソフト屋)さん
ローカル変数だから上手くいかなかったんですね
確認不足でした…
sql さん
staticを使う手もあったのですね
基本を勉強したときにきっと使わないだろうと高を括り
熱心にやらなかったのですっかり存在を忘れていました(^^;)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: ボスのアニメーションのさせかた
sqlさんも書いていますが、staticは弊害も多いので迂闊に使わないほうが良いです。
変数の寿命とか無意識に気にかける事が出来るようになってからのほうが良いでしょう。
変数の寿命とか無意識に気にかける事が出来るようになってからのほうが良いでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。