DXライブラリのプログラムの流れ

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

DXライブラリのプログラムの流れ

#1

投稿記事 by BODY » 10年前

初投稿のC言語初心者です。
お見苦しい点が多々あると思いますが質問があります。
自分はDXライブラリでRPGの戦闘画面を作ろうとしていまして

while文の流れとしては
ウィンドウやパラメーター表示

if文で↑↓キーの入力状態を確認しカーソル座標変更、ENTERキーを押すと
その時選ばれていた行動のフラグを立てる関数

カーソルの座標を変更し描写する関数
↓@
ダメージ計算し文字を表示する関数

という流れなのですが
このwhile文って上の関数から1つずつ順番に実行されるのですよね?
試しに@の部分に文字を表示するだけの関数をいれてみました。
すると

BODY

続き

#2

投稿記事 by BODY » 10年前

自分では一番上のカーソルの動きを監視している関数が
実行されていると思っていたのになぜか@の文字が最初から
表示されていたのです。

なんか分かりづらい説明だと思いますが
DXライブラリのwhile文って関数を上から1つずつ実行し
一番下までいったらまた上からループって流れじゃないんですかね?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 続き

#3

投稿記事 by みけCAT » 10年前

BODY さんが書きました:自分では一番上のカーソルの動きを監視している関数が
実行されていると思っていたのになぜか@の文字が最初から
表示されていたのです。
「@の文字が最初から表示されていた」というのはどういう状況ですか?
「一番上のカーソルの動きを監視している関数」の内部の処理がわからないと、正常な動作かそうでないかはわかりません。
BODY さんが書きました:なんか分かりづらい説明だと思いますが
DXライブラリのwhile文って関数を上から1つずつ実行し
一番下までいったらまた上からループって流れじゃないんですかね?
山田 巧様のDXライブラリにwhile文は無いはずです。
使用している言語は何ですか?
もしくは、別の「DXライブラリ」を使用しているのですか?

C++のwhile文では、ブロックの中の文(関数とは限らない)を「普通の」(≒「上から下へ」)順番で実行し、
ブロックの最後に到達したら条件の判定に戻り、条件が真ならまた同様にブロックの中の文を実行するはずです。
(規格書を見ていないので、絶対に間違っていないとは言えませんが)
ただし、breakやcontinueなどにより流れを変えることは可能です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
usao
記事: 1889
登録日時: 11年前

Re: DXライブラリのプログラムの流れ

#4

投稿記事 by usao » 10年前

@の箇所だけでなく,全ての↓の箇所とかに何らかの表示を挟んでみると
何がどういう順番で実行されているかがわかるのではないでしょうか.

キーが押された際の処理の箇所などでも
例えばEnterキーが押された際の処理の箇所に「ENTERがおされた」
みたいな表示をしてみるとよいかもしれません.

BODY

Re: DXライブラリのプログラムの流れ

#5

投稿記事 by BODY » 10年前

すみません。VisualStudio2013のC言語で書いています。
ということは僕の書いたプログラムが間違っているか
プログラムの流れを理解出来ていないという事でしょうか。
まずは流れを追ってみようと思います。

ありがとうございました!

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: DXライブラリのプログラムの流れ

#6

投稿記事 by ISLe » 10年前

むしろ@が表示されないようなコーディングをしてしまうほうが危険だと思いますけど。

カーソルを動かしているあいだその制御ループから抜けないということでしょう?

閉鎖

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