ページ 1 / 1
ボスをアニメーションさせる
Posted: 2009年11月02日(月) 08:23
by 柏
50章をいじって遊ばさせて貰ってます。
キャラはアニメーションしてあるのでいいのですが
ボスのアニメーション方法が分からなくて困ってます。
一応、キャラと同じように240×180で
止まってるとき、右に移動してるとき、左に移動してるときの
画像は用意してあるのですが、
キャラと違って右や左に移動したら切り替わる処理が分かりません。
どうすればいいか、分かる方いたら教えてください・・・
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 15:54
by ひよこ
敵の画像みたいにmukiとcntを使って描くのはどうですか?
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 18:25
by 柏
ボスが右に移動していたら、
左に移動していたら
という条件が分からないのですが、ありますでしょうか?
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 19:18
by softya
>ボスが右に移動していたら、左に移動していたらという条件が分からないのですが、ありますでしょうか
ひよこさんの言われるとおり、雑魚敵の処理を参考にされてはどうでしょうか?
どちらにしてもボスも動かす処理も必要で、その処理もまだ組まれてませんよね?
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 19:37
by 柏
いえ、ボスを動かす処理は
boss_shotH.cpp内に腐るほど書いて、ボスの弾幕を100近く作り
一つ一つ向きの処理なんかやってたら猛烈に大変だと思ったので・・
何か一気にボスのアニメーションを制御できる良い方法はないでしょうか?
一番てっとり早いと思ったのがやはり先ほどの条件さえあればいいのですが
if(条件){
boss.img+=4*2; //画像を左向きに
}
else if(条件){
boss.img+=4*1; //画像を右向きに
}
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 20:18
by softya
それでしたら前回のX座標を覚えておいて、今のX座標が前のX座標より右か左かを判定してはいかがでしょうか?
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 20:25
by 柏
というと、それはどうすれば・・?
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 20:45
by softya
まず、座標を覚える変数を用意して
int workX;
ボスを移動させる前に今の座標を覚えます。
workX = boss.x;
でボスの移動を行った後で、
// X座標が増えているので右に移動したとみなす。
if( workX < boss.x ) {
// 右へ
boss.img+=4*1; //画像を右向きに
} else {
// 左へ
boss.img+=4*2; //画像を左向きに
}
って事です。
Re:ボスをアニメーションさせる
Posted: 2009年11月02日(月) 23:16
by 柏
"ボスの移動を行った後"というのは
boss_shot.cpp内のどこを指しているのでしょうか?
Re:ボスをアニメーションさせる
Posted: 2009年11月03日(火) 13:36
by softya
boss_shot_main()の頭と最後で良いと思います。
[訂正]
boss.xでは無くboss.dxで良いと思うのですが、試してみてください。
Re:ボスをアニメーションさせる
Posted: 2009年11月04日(水) 03:02
by 柏
softyaさんありがとうございます。
左右に移動するときのアニメーション無事できたのですが、
今度は止まってる場合のアニメーションをしなくなってしまったのですが・・どうしたらいいのでしょうか?
Re:ボスをアニメーションさせる
Posted: 2009年11月04日(水) 03:07
by 柏
すみません。自己解決しました。
softyaさんありがとうございました。
Re:ボスをアニメーションさせる
Posted: 2009年12月10日(木) 22:55
by z
> 50章をいじって遊ばさせて貰ってます。
> キャラはアニメーションしてあるのでいいのですが
> ボスのアニメーション方法が分からなくて困ってます。
> 一応、キャラと同じように240×180で
> 止まってるとき、右に移動してるとき、左に移動してるときの
> 画像は用意してあるのですが、
> キャラと違って右や左に移動したら切り替わる処理が分かりません。
> どうすればいいか、分かる方いたら教えてください・・・
>
a