初投稿のC言語初心者です。
お見苦しい点が多々あると思いますが質問があります。
自分はDXライブラリでRPGの戦闘画面を作ろうとしていまして
while文の流れとしては
ウィンドウやパラメーター表示
↓
if文で↑↓キーの入力状態を確認しカーソル座標変更、ENTERキーを押すと
その時選ばれていた行動のフラグを立てる関数
↓
カーソルの座標を変更し描写する関数
↓@
ダメージ計算し文字を表示する関数
という流れなのですが
このwhile文って上の関数から1つずつ順番に実行されるのですよね?
試しに@の部分に文字を表示するだけの関数をいれてみました。
すると
DXライブラリのプログラムの流れ
Re: 続き
「@の文字が最初から表示されていた」というのはどういう状況ですか?BODY さんが書きました:自分では一番上のカーソルの動きを監視している関数が
実行されていると思っていたのになぜか@の文字が最初から
表示されていたのです。
「一番上のカーソルの動きを監視している関数」の内部の処理がわからないと、正常な動作かそうでないかはわかりません。
山田 巧様のDXライブラリにwhile文は無いはずです。BODY さんが書きました:なんか分かりづらい説明だと思いますが
DXライブラリのwhile文って関数を上から1つずつ実行し
一番下までいったらまた上からループって流れじゃないんですかね?
使用している言語は何ですか?
もしくは、別の「DXライブラリ」を使用しているのですか?
C++のwhile文では、ブロックの中の文(関数とは限らない)を「普通の」(≒「上から下へ」)順番で実行し、
ブロックの最後に到達したら条件の判定に戻り、条件が真ならまた同様にブロックの中の文を実行するはずです。
(規格書を見ていないので、絶対に間違っていないとは言えませんが)
ただし、breakやcontinueなどにより流れを変えることは可能です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: DXライブラリのプログラムの流れ
@の箇所だけでなく,全ての↓の箇所とかに何らかの表示を挟んでみると
何がどういう順番で実行されているかがわかるのではないでしょうか.
キーが押された際の処理の箇所などでも
例えばEnterキーが押された際の処理の箇所に「ENTERがおされた」
みたいな表示をしてみるとよいかもしれません.
何がどういう順番で実行されているかがわかるのではないでしょうか.
キーが押された際の処理の箇所などでも
例えばEnterキーが押された際の処理の箇所に「ENTERがおされた」
みたいな表示をしてみるとよいかもしれません.
Re: DXライブラリのプログラムの流れ
すみません。VisualStudio2013のC言語で書いています。
ということは僕の書いたプログラムが間違っているか
プログラムの流れを理解出来ていないという事でしょうか。
まずは流れを追ってみようと思います。
ありがとうございました!
ということは僕の書いたプログラムが間違っているか
プログラムの流れを理解出来ていないという事でしょうか。
まずは流れを追ってみようと思います。
ありがとうございました!
Re: DXライブラリのプログラムの流れ
むしろ@が表示されないようなコーディングをしてしまうほうが危険だと思いますけど。
カーソルを動かしているあいだその制御ループから抜けないということでしょう?
カーソルを動かしているあいだその制御ループから抜けないということでしょう?