同じパターンで複数の画像データを表示させてみよう そのために剰余代入演算子を用いることになります

再び・・・



マックス「


どうやって


while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {}


のブロック{}内の命令文の繰り返しにおいて


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[0💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[1💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[2💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[3💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[4💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[5💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[6💖], TRUE);




繰り返し実行されるようにするかだが・・・


int a💖=0;


を実行しておいて



while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {}


のブロック内で


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[a💖], TRUE);


a💖 = a💖 +1;//💖while文が繰り返されるごとにaの値が1ずつ増えていくことになります


ScreenFlip();


ClearDrawScreen();


を実行すればいいのか???


いや


それだと



DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[0💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[1💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[2💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[3💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[4💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[5💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[6💖], TRUE);



DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[7💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[8💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[9💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[10💖 💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[11💖 💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[12💖 💖], TRUE);



実行されるだけか・・・



なんとか



aの値に


0

1

2

3

4

5

6


7

8

9

10

11

12

13


14

15

16

17

18

19

20


が代入されると


0

1

2

3

4

5

6


0

1

2

3

4

5

6


0

1

2

3

4

5

6



代入されたことになるようできればいいんだが・・・


ソーラー「みんな😊


そこで


剰余代入演算子%ちゃん


をつかうことになります」


solarplexuss「なつかしー


剰余代入演算子%」





マックス「剰余代入演算子%?


どっかで聞いたな


俺は完全にわすれていたぞ」


ソーラー「


剰余代入演算子%とは


例えば



0%7


なら


0を7で割った余りの0が


0%7

に代入されることになります


つまり


0%7は0を表すことになります



1%7


なら


1を7で割った余りの1が


1%7

に代入されることになります


つまり


1%7は1を表すことになります


同様に


2%7 は2を表すことになります

3%7 は3を表すことになります

4%7 は4を表すことになります

5%7 は5を表すことになります

6%7 は6を表すことになります


だから



int a💖=0;


を実行しておいて




while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {}


のブロック内で


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[a%7💖💖💖], TRUE);


a💖 = a💖 +1;//💖while文が繰り返されるごとにaの値が1ずつ増えていくことになります


ScreenFlip();


ClearDrawScreen();


を実行すればいいことになります


いい子ちゃんになります


そうすれば



DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[0💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[1💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[2💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[3💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[4💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[5💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[6💖], TRUE);




DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[0💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[1💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[2💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[3💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[4💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[5💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[6💖], TRUE);





DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[0💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[1💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[2💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[3💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[4💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[5💖], TRUE);


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[6💖], TRUE);




繰り返し実行されることになります


すなわち


自分の飛行機のアニメーションが


繰り返し実行されることになります」


マックス「


おお


なんてナイスなアイデアだ


やるじゃないか」




ソーラー「へへ😊



aでは


何のために用いられる変数か分かりにくいので


番号が付けられた複数の画像データを取り扱うのに


aの代わりにgraphicnumber(画像番号)



用いることにします



だから


WinMain関数のブロック{}内で


int graphicnumber=0;


を実行して


graphicnumber


を作成しておいて


while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {}


のブロック内で


DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle[graphicnumber%7], TRUE);


graphicnumber = graphicnumber +1;


ScreenFlip();


ClearDrawScreen();


を実行すればいいことになります」


solarplexuss「これでうまくいきそう」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る