スコア表示

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
koudai

スコア表示

#1

投稿記事 by koudai » 14年前

visual C++2008で書いてます。
特にDXライブラリーなどを使わずシューティングゲームを作っているのだすが、スコアの表示方法が分りません。
スコア表示は画像で行っています。
intでスコア数を記録して

//スコアの初期表示
for(int i = 0; i < 9; i++){
SelectObject(hMemDC, hText);
TrnsBlt(hdc, hMemDC, 16*i, 0, 16, 18, 0, 0);
}
//スコアの表示
SelectObject(hMemDC, hText);
TrnsBlt(hdc, hMemDC, 144, 0, 16, 18, (score%10)*16, 0);
として、1~9まで表示させることが出来ました。
ですが、10以降を表示させる方法が分りません。
10になったら一つ左にずらして表示させる方法を教えてください。

000000000
   ↓
000000001
   ↓
000000009
   ↓
000000001
と言った感じです。

Suikaba
記事: 194
登録日時: 14年前

Re: スコア表示

#2

投稿記事 by Suikaba » 14年前

関数だけかかれてもわからないので、のせてもらえません?
TrnsBltとかだけかかれてもいまいちはっきりしないかと

koudai

Re: スコア表示

#3

投稿記事 by koudai » 14年前

すいません。書きなおします。

visual C++2008で書いてます。
特にDXライブラリーなどを使わずシューティングゲームを作っているのだすが、スコアの表示方法が分りません。
スコア表示は画像で行っています。
intでスコア数を記録して

コード:

//スコアの初期表示
for(int i = 0; i < 9; i++){
SelectObject(hMemDC, hText); 
TransparentBlt(hdc, 16*i, 0, 16, 18, hMemDC, 0, 0, 16, 18, SRCCOPY ); 
}
//スコアの表示
SelectObject(hMemDC, hText); 
TransparentBlt(hdc, 144, 0, 16, 18, hMemDC, (score%10)*16, 0, 16, 18, SRCCOPY );

として、1~9まで表示させることが出来ました。
ですが、10以降を表示させる方法が分りません。
10になったら一つ左にずらして表示させる方法を教えてください。

000000000
   ↓
000000001
   ↓
000000009
   ↓
000000001
と言った感じです。

アバター
a5ua
記事: 199
登録日時: 14年前

Re: スコア表示

#4

投稿記事 by a5ua » 14年前

コード:

int score;
int digit[9];
があるとして、scoreの各桁の数字をdigitに入れる処理は書けますか?

例えば、score == 1192なら
digit[0] == 1
digit[1] == 1
digit[2] == 9
digit[3] == 2
  ・
  ・
残りはゼロ

といった具合です。

これができれば、おそらく目的は達成できると思います。

しひ

Re: スコア表示

#5

投稿記事 by しひ » 14年前

10で割ると、十の位が一の位に来ますね。
更に10で割ると、百の位が一の位に来ますね。
以下略。

お節介かとは思いますが、マジックナンバーは避けた方が良いかと思います。

koudai

Re: スコア表示

#6

投稿記事 by koudai » 14年前

しひさんありがとうございます。無事出来ました。

皆様返信ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る