ProcessMessage関数を実行してみましょう
ソーラー「つづきで~す
みんな まってたかな?」
solarplexuss「待ってた 3分ほど」
ソーラー「お話は
ProcessMessage関数についてだったね
OSシステムの安定稼働のために
定期的に
ProcessMessage関数を実行することになります
ProcessMessage関数の実行方法は
ProcessMessage();
と記述するだけでOKです
ProcessMessage関数
ProcessMessage();
を実行する目安は
プログラムが実行されているとき
60分の1秒に1回の割合です
皆さんがゲームをしている場合
ゲームプログラムが実行されている時間はかなり長くなる
と思われますが
その間ずっと
60分の1秒に1回の割合で
ProcessMessage関数
ProcessMessage();
が実行されていることになります
具体的には
ゲームをしている時間が
1秒なら60回
1分なら3600回
1時間なら216000回
ProcessMessage();
を実行することになります
そう もしゲームをしている時間が1時間なら
ProcessMessage関数
ProcessMessage();
が実行される回数は216000回というわけです」
solarplexuss「わおう ProcessMessage関数実行されすぎぃ~」
マックス「なるほどな
ただ どうやって
そんなにたくさんの回数
ProcessMessage関数
ProcessMessage();
を実行するようにするかだが・・・
プログラムを記述するとき
さすがに
216000回
ProcessMessage関数
ProcessMessage();
を記述するわけにはいかないだろう」
ソーラー「そうなんです
自分で
ProcessMessage関数
ProcessMessage();
を
216000回
記述するのは無理です」
solarplexsuss「さすがに それは無理い むしゃむしゃ~🍰」
マックス「そこをどうするかだが・・」
ソーラー「
たいていの場合
ゲームは
何かの命令文の繰り返しで成り立っています
つまり
for{}文やwhile{}文によって
プログラムが構成されています
そこで
for{}文やwhile{}文のブロック{}内に
ProcessMessage関数
ProcessMessage();
を記述することになります
そうすれば
for{}文やwhile{}文の実行にあわせて
ブロック{}内に記述された
ProcessMessage();
が自動的に繰り返し実行されることになるからね
ではさっそく
今さっきの飛行機が右に飛んでいくプログラムに
ProcessMessage関数
ProcessMessage();
を導入してみましょう
そのプログラムはこちらです
👇
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
int graphichandle;
graphichandle = LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");
SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です
for (int x = 0; x < 640; x++) {
ProcessMessage();//👈ここです ここにProcessMessage();を記述しました
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
}
WaitKey(); //🌞 キーの入力を待っています 何かキーが入力がされるまで これ以上プログラムは実行されません
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
デバッグなしで実行をしてから一度プログラムを終了し
生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです
👇
https://youtu.be/YAC-j31RGl8
マックス「ProcessMessage();を使わない場合と
プログラムの実行結果は変化なしか・・・
まあ ProcessMessage();
は
OSシステムを安定稼働させるために実行するものだから
プログラムの実行結果に変化が生じないのは当然か」
ソーラー「と思う?」
マックス「そりゃ そうだろう」
ソーラー「では ProcessMessage();
の実行する位置を変えた次のプログラムをご覧ください」
👇
solarplexuss「あれ? プログラムは?」
ソーラー「続きは 次のエピソードで・・・ね💖」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます