トップページ > 記事閲覧
!ProcessMessage()の意味について
名前:マーク42 日時: 2020/06/18 02:42

以下のプログラムのwhile (!ProcessMessage())とは否定を表していると思うのですが、ProcessMessage()が0の時の処理が{}の中身ということでしょか? while (!ProcessMessage()) { // 入力が終了している場合は終了 if (CheckKeyInput(InputHandle) != 0) break; // 画面の初期化 ClearDrawScreen(); // 入力モードを描画 DrawKeyInputModeString(640, 480); // 入力途中の文字列を描画 DrawKeyInputString(0, 0, InputHandle); // 裏画面の内容を表画面に反映させる ScreenFlip(); }
メンテ

Page: 1 | 2 |

Re: !ProcessMessage()の意味について ( No.1 )
名前:マーク42 日時:2020/06/18 03:00

またProcessMessage()の値を変える方法はないでしょうか? ウィンドウがキー入力後に消えてしまうのはProcessMessage()の値が0のままであるためだと考えています。
メンテ
Re: !ProcessMessage()の意味について ( No.2 )
名前:マーク42 日時:2020/06/18 03:01

すいません。間違えました。 またProcessMessage()の値を0に変える方法はないでしょうか? ウィンドウがキー入力後に消えてしまうのはProcessMessage()の値が-1のままであるためだと考えています。
メンテ
Re: !ProcessMessage()の意味について ( No.3 )
名前:sereparu 日時:2020/06/18 11:56

> またProcessMessage()の値を0に変える方法はないでしょうか? ありません。 というより、勝手に変えてはいけません。 何故なのかは「ProcessMessage」のリファレンスをもう一度よく読んでください。 > ウィンドウがキー入力後に消えてしまうのはProcessMessage()の値が-1のままであるためだと考えています。 違います。 「ProcessMessage」はよほど重大なエラーが無い限り基本的に「0」を返し続けます。 原因はマーク42さんが書いたコードにあります。 自分が書いたコードがどういう動きをしているのか、デバッグするなりして確認してください。 デバッグすれば、すぐに原因が分かると思います。 マーク42さんはDXライブラリの使用はやめた方がいいです。 何故なら、何か不具合があった場合に、自分が書いたコードには見向きもせず 真っ先にDXライブラリのせいにしているからです。 プログラミングの理解不足以前の問題です。 本来ライブラリは、自分が書いたコードが問題ない上で さらなる技術を補完する目的で使用するものです。 自分が書いたコードに問題があれば、いくらライブラリを使ったとしても その恩恵を受けることはできません。 今までマーク42さんの質問には何度か回答してきましたが 未だにそのような姿勢でDXライブラリを使用しているのが残念でなりません。
メンテ
Re: !ProcessMessage()の意味について ( No.4 )
名前:sereparu 日時:2020/06/18 11:58

すみません。 一番目の質問に回答し忘れていたので補足します。 > (!ProcessMessage())とは否定を表していると思うのですが、ProcessMessage()が0の時の処理が{}の中身ということでしょか? 「!●●」は「●● == 0」と同じ意味なので、その通りです。 申し訳ありませんが、この回答が最後です。 今後はマーク42さんの質問には一切回答しません。
メンテ
Re: !ProcessMessage()の意味について ( No.5 )
名前:sereparu 日時:2020/06/18 14:03

すみません。 私がマーク42さんのことを勘違いしていました。 こちらが勝手に解釈して、マーク42さんを一方的に責めるような発言をしてしまい申し訳ありません。 別の質問(キー入力した後にエンターを押しても再びキー入力できるようにしたい。)のマーク42さんの回答を見る限り 「ウィンドウがキー入力後に消えてしまうのはProcessMessage()の値が-1のままであるため」と書いたのは 「自分が書いたコードは問題ないのに、ProcessMessage()のせいで不具合が発生する」と考えたのではなく 「自分が書いたコードに問題があるせいで、ProcessMessage()の値が-1になってしまう」と考えた、ということなんですね? もし、そうだとしたら、それは勘違いです。 「ProcessMessage()」はマーク42さんが問題のあるコードを書いたことを自動で検知して 「-1」を返すような役割はありません。 「ProcessMessage()」の値が「0」か「-1」になるかは、マーク42さんの書いた処理とは関係なく 「ProcessMessage()」内で行われている処理で決定します。 リファレンスにも書いてありますが、「ProcessMessage()」がどのような処理をしているかは あまり考える必要はなく、とりあえず、ループ中に呼び出す必要があり、「-1」になったら プログラムを終了しないといけない、ということだけ覚えておけばいいです。 「ProcessMessage()」についてはそれ以上知る必要はないと思います。 いずれにしても、マーク42さんはプログラミングでゲームを制作するのはやめた方がいいです。 ゲームを作りたければ、プログラミング不要でゲームを作れるツールを見つけることをおすすめします。 残念ですが、プログラミングには向き不向きがあります。 正直、マーク42さんはプログラミングには不向きです。 マーク42さんがこの掲示板で質問するようになってから、それなりに時間が経っていると思いますが その間でロジックの基本的な書き方、動き方を理解できていないというのは 厳しいようですが、知識が未熟だからではなく、プログラミングの才能が無いのだと思います。 今回の「ウィンドウがキー入力後に消えてしまう」原因がどうしても分からなければ プログラミングを諦めて、別の方法で自分の才能を発揮できる方法を考えた方がいいでしょう。 プログラミングだけがマーク42さんの能力を発揮できる唯一の手段ではないですから。
メンテ
Re: !ProcessMessage()の意味について ( No.6 )
名前:マーク42 日時:2020/06/18 19:39

解答ありがとうございます。 不向きなのは自分が一番理解しています。ですが、自分に才能がないだけで諦めることはしたくないです。 作るためならばいろんな方法があるためです。 私みたいに、誰かに作ってもらいながら、それを使っていくことしかできない、いや、それすらできていないですが、 才能がなく不向きですが、とりあえず好きだからやっています。 以前に作っていたゲームも細かい細部の部分くらいなら自分で作れるようになり、やっと少しは形を成してきました。(皆様の足元には遠く及びませんが。) それでも才能がない割には以前の自分よりは成長は出来ていると思っています。 sereparuさん、正直な意見と今まで解答してくださりありがとうございます。 >>別の質問(キー入力した後にエンターを押しても再びキー入力できるようにしたい。)のマーク42さんの回答を見る限り 「ウィンドウがキー入力後に消えてしまうのはProcessMessage()の値が-1のままであるため」と書いたのは 「自分が書いたコードは問題ないのに、ProcessMessage()のせいで不具合が発生する」と考えたのではなく 「自分が書いたコードに問題があるせいで、ProcessMessage()の値が-1になってしまう」と考えた、ということなんですね? いえ、違います。自分のコードに問題と私の勘違いがあったからこそ間違った結果を生んだと考えています。 >>マーク42さんはDXライブラリの使用はやめた方がいいです。 何故なら、何か不具合があった場合に、自分が書いたコードには見向きもせず 真っ先にDXライブラリのせいにしているからです。 プログラミングの理解不足以前の問題です。 DXライブラリの使用をやめるつもりはありません。 私の質問の書き方が悪かったようです。一度もDXライブラリの関数が間違っているといったことはありません。 値を変えられないか質問しましたが、DXライブラリのせいにして値を変えられないなどといったことはないですし、思ってもいません。 ただ、私の理解の低さゆえにDXライブラリを使いこなせていないのは事実であります。 何か不具合があれば自分のプログラムのミスだと考えています。
メンテ

Page: 1 | 2 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存