ページ 11

アニメーションについて

Posted: 2011年11月23日(水) 00:49
by hiro
コインを回転するアニメーションを作りたいのですがまったくわかりません。
絵は4枚ほど用意しましたがどう書けばいいのかわかりません。
とりあえず自分なりに書いてみました。

void CoinAnimation(void)
{
     if ( gCoin.cut >= 1 && gCoin.cut <= 10 )
{
gsDraw2D(sCoin01, gCoin.x, gCoin.y);//絵:コイン正面
}
if ( gCoin.cut >= 11 && gCoin.cut <= 20 )
{
gsDraw2D(sCoin02, gCoin.x, gCoin.y);//絵:コイン45度回転
}
if (gCoin.cut >= 21 && gCoin.cut <= 30)
{
gsDraw2D(sCoin03, gCoin.x, gCoin.y);//絵:コイン90度回転
}
if (gCoin.cut >= 31 && gCoin.cut <= 40)
{
gsDraw2D(sCoin04, gCoin.x, gCoin.y);//絵:コイン135度回転
}
}

当然ながらコインは回転していません。
アニメーションのプログラムについてまったくの無知です。
よろしくお願いします。

Re: アニメーションについて

Posted: 2011年11月23日(水) 01:55
by jay
プログラムコードを張り付けるときはcodeと/codeのタグで囲むことがこの掲示板のルールになっています。
こういう場所を利用するなら最低限ルールを守るようにお願いします。

ついでに人にコードを見せるときはインデントをシッカリして変数の説明などコメントをつけたりなど、可能な限り見やすいコードにすることをオススメしますよ。
こちらはルールではなくマナーですけどね。
今回の場合できればコインの画像を張ってくださればありがたかったですが…

codeタグで囲んだモノ

コード:

void CoinAnimation(void)
{
     if ( gCoin.cut >= 1 && gCoin.cut <= 10 )
 {
 gsDraw2D(sCoin01, gCoin[i].x, gCoin[i].y);//絵:コイン正面
 }
 if ( gCoin.cut >= 11 && gCoin.cut <= 20 )
 {
 gsDraw2D(sCoin02, gCoin[i].x, gCoin[i].y);//絵:コイン45度回転
 }
 if (gCoin.cut >= 21 && gCoin.cut <= 30)
 {
 gsDraw2D(sCoin03, gCoin[i].x, gCoin[i].y);//絵:コイン90度回転
 }
 if (gCoin.cut >= 31 && gCoin.cut <= 40)
 {
 gsDraw2D(sCoin04, gCoin[i].x, gCoin[i].y);//絵:コイン135度回転
 }
}
とりあえず10カウント毎に画像を変える仕様ならばこれでいいと思います、回転しっぱなしで止まりませんけど。

コード:

void CoinAnimation(void)
{
int t = gCoin.cut%40;
	if ( t >= 1 && t <= 10 )
	{
		gsDraw2D(sCoin01, gCoin[i].x, gCoin[i].y);//絵:コイン正面
	}
	if ( t >= 11 && t <= 20 )
	{
		gsDraw2D(sCoin02, gCoin[i].x, gCoin[i].y);//絵:コイン45度回転
	}
	if ( t >= 21 && t <= 30)
	{
		gsDraw2D(sCoin03, gCoin[i].x, gCoin[i].y);//絵:コイン90度回転
	}
	if ( t >= 31 && t <= 40)
	{
		gsDraw2D(sCoin04, gCoin[i].x, gCoin[i].y);//絵:コイン135度回転
	}
}

画像も無ければメインループの部分もなく、僕の方ではこれでちゃんと動くかどうか確認できないので
ちゃんと動かなかった場合はもう少し詳しい仕様の説明などをお願いしますね。
利用規約にも似たようなことが書いてありますが、質問の内容や提供される情報が十分でないとこちらも完璧な回答をすることができませんので。

Re: アニメーションについて

Posted: 2011年11月23日(水) 18:41
by hiro
jayさんありがとうございます。

Codeの件について
うっかり囲み忘れていました。

本題へ
なんとかコイン回転しました。

マナーについて指摘ありがとうございます。
まだまだ不慣れですがこれからもよろしくお願いします。