配列とfor文を使っているのに画像が一つしか表示されない。for文を使っているのに画像が一つしか表示されない。配列とfor文を使っているのに画像が一つしか表示されない。完全なプログラミング初心者です。DXライブラリでシューティングゲームを作成しています。マップデータを使って複数のキャラクターを複数表示させる事が出来ません。こちらのソースコードではマップデータから座標軸を取り出してスクロールさせるところは出来たのですが、とりだせたデーターは実質一つだけでした。{を利用してキャラクターの種類と個数を分ける方法も試したのですが、すると今度は応答なしの状態になってしまいます。すればマップデータからすべての座標軸を正常に取り出して画面に表示する事が出来るでしょうか。配列とfor文を使っているのに画像が一つしか表示されない。以下のソースコードだとコンパイルエラーではないのにフリーズしてしまいます。{の部分ですが、複数の画像を複数同時に描画する方法をこれ以外に思いつきません。何か分かりやすい解決策を教えてください。複数の画像を複数同時に描画するのは難しいどころか自分にとっては不可能に近い神の御業です。一日中試行錯誤しても解決しませんでした。配列とfor文を使っているのに画像が一つしか表示されない。mapdata[y][x])を直接switch文に入れましたが、ビルド正常終了で画面がフリーズして閉じてしまいました。どこをどう直せばいいか分からない状態です。異なる種類の画像を複数描画。配列とfor文を使っているのに画像が一つしか表示されない。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前もるもさんへ。アドバイスありがとうござます。char型に変えたのですが、1とAでそれぞれ一つずつしか描画されませんでした。スクロール処理をしていたので、32ピクセル単位で移動してしまいました。問題は解決しませんでした。異なる種類の画像を複数描画するのは鬼門です。配列とfor文を使っているのに画像が一つしか表示されない。x+1;これだと文字は取得できていません。マップデータからもらってきましょう。配列とfor文を使っているのに画像が一つしか表示されない。配列とfor文を使っているのに画像が一つしか表示されない。'0';にしてマップデータの初期値を破棄する事で、画像を動かす事が出来るようにするためです。マップデータからデータを引き剥がして移植する感じです。配列とfor文を使っているのに画像が一つしか表示されない。予定ではfor文や配列を駆使して大量のデータを読み込むはずでしたが、どうも一つ読み込んだ時点で読み込みが作業が終了してしまっている気分です。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前データを引きはがすのなら、キャラクターのタイプも座標と同じにキャラクターデータに保持している方が良いと思います。マップデータ数の分ループを回すよりも、キャラクターデータ分回すほうが少なくて済みますし。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前こんな感じにするといいと思います。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前#11の訂正です。記憶しているキャラクターの数を増やすcharaCount++;}こうすることで、キャラクター化しない「マップ」の要素にも対応できるはずです。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前アドバイスありがとうございました。画面がフリーズして閉じてしまいました。32;charaCountの部分をiにするとフリーズしないのですが、画像が1種類につき1つしか表示されず、何の解決にも至っておりません。異なる複数の種類を同時に複数描画する良い方法はないでしょうか。配列とfor文を使っているのに画像が一つしか表示されない。入れてコンパイルすると、ビルドは正常終了しているのに、画面がフリーズして終了してしまいます。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前エラーが出ないのが厄介ですね。終了してしまう原因がわかりませんね(-_-;)キャラクターの構造体もどのようになっているのか気になります。配列とfor文を使っているのに画像が一つしか表示されない。配列とfor文を使っているのに画像が一つしか表示されない。配列とfor文を使っているのに画像が一つしか表示されない。添字として'1'と'A'が有効なのであれば有効になるはずです。バグがある可能性が否定出来ないので、コンパイル・実行できる形にして試してみます。配列とfor文を使っているのに画像が一つしか表示されない。足りない部分を補完した以下のコードを実行した結果、フリーズは確認できず、複数の「キャラクター」が動く様子を確認できました。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前みけCATさん。貴重なアドバイスをありがとうございます。みけCATさんが提供してくれたソースコードと同じものでコンパイルした結果、こちらもエラーがない事が確認されました。現在の状況は、みけCATさんのアドバイスを参考に、一からソースコードを書き直している所です。不具合が発生している状態です。自分が気付かない所でソースコードを打ち間違えているみたいなので、確認のための試行錯誤中です。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前トラブルでコンパイルテストが長引いています。原因は、みけCATさんが提供してくれたソースコードを参考にソースコードを記述して分割コンパイルすると、ビルドは正常終了しているのに、画面がフリーズしてすぐに閉じてしまうトラブルです。原因を調査しているので、結果が出るのが遅くなります。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前トピックの趣旨とは外れるとは思うのですが、あえて質問させていただきます。画像を複数描画するテストを行っている最中に、ビルドは正常終了しているのに、画面がフリーズして終了してしまうトラブルに悩まされています。みけCATさんが提供してくれたソースコードをコピペすると、フリーズしないで正常に画面が起動します。私が自分で分割コンパイルをしてソースコードを打ち込んで起動すると、「ビルドは正常終了しているのに、画面がフリーズして終了してしまう」トラブルが起きてしまいます。原因を調べてみました。一つは、メモ帳などでソースコードを打ち込んでコピペすると、文字コードにBONがついてしまい、正常に起動しない事があると聞いたので、エディタをBONなしモードでソースコードを打ち込みました。一つはDXライブラリが最新ではない事が原因の可能性があったので、最新版をダウンロードして追加のインクルードディレクトリに追加しました。一つはソースコードの打ち間違いの可能性もあったので、何度も何度も調べてみましたが、問題は見つかりませんでした。自分と同じような体験をした人はいるのでしょうか?もしもこの質問が本トピックの趣旨から外れていると言う指摘があれば、新しいトピックを立ち上げて改めて質問する事にします。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前プログラマ見習いさんに見つけられないだけで、プログラムに間違いがある可能性が高いと考えられます。差し支えなければ、分割したソースコード(コンパイルできる一式)を見せていただけますか?また、デバッガが使える環境であれば、デバッグ情報をつけるモードでコンパイルし、デバッガ上で実行することで、アクセス違反などで強制終了した場所がわかる可能性があります。配列とfor文を使っているのに画像が一つしか表示されない。6ヶ月前みけCATさん。ありがとうございます。実は、あれから何度もソースコードを書き直しているうちに、正常にさせる事が出来ました。「ビルドが正常に終了しているのに、すぐにフリーズしてしまう」原因についてですが、成功したソースコードと一緒に、コメント分として、手元に残っている限りの過去のソースコートを投稿します。使用しているコンパイラはVisualStudio2017communityです。//マップサイズを決めます。//キャラクターの数の最大値を決めます。念のために多めにします。今回はマップデータの数に合わせます。//画像データの構造体を作ります。//画像データは無理に配列やポインタで整理しようとすると、エラーやフリーズの原因になります。//各キャラクターのデータの構造体を作ります。//アニメーションさせるために画像データハンドル。//ポインタ設定をしたが、これが原因の一つでした。//キャラクターの種類を格納。//座標はfloatにします。//今回はcharadataと名づけます。//キャラクターは複数出現させるので、配列内に各キャラクターの最大値CHMAXを格納します。//画像を描画するための変数。//画像を描画するための変数。//アニメーションカウンター用の変数を作ります。//マップデータを作ります。//画像をロードする関数を作ります。//ポインタと配列を使って画像用のコードを少なくしようとしたら、フリーズしてしまいました。//初期化用の関数を作ります。//キャラクターをカウントする変数を作ります。必要な変数の一つです。//キャラクターをカウントする変数はローカル変数でも問題ありませんでした。//初期化してマップデータから、キャラクターのデータを取り出します。//kindにマップデータを代入します。//これも必要な変数の一つです。//この変数を利用しないと初期化関数Init();をwhile文に入れた場合に適切に描画されません。//Validは英語で「有効、根拠の確実な、確かな、正当な」などの意味です。//キャラクターごとに異なるものはswicth文を使います。//なお、ここにcounterを入れてしまうと、フリーズしてしまいました。//case毎にcv=1;と代入します。//アニメーションさせる場合はここで代入します。//このif文がないと初期化関数Init();をwhile文に入れた場合に適切に描画されません。//マップデータを'0'にする事で、データの取り出しは終わりです。//ここでキャラクターの数を一つずつ増やしていきます。//ここにcharadata[i].kindではなくiを入れると、一つしか描画されませんでした。//また、フリーズしてまった場合もあります。//ポインタと配列を利用したら、フリーズしてしまいました。//ポインタと配列を利用したら、フリーズしてしまいました。//キャラクター単位で動かす方法でマップスクロールを行います。//WinMain関数の中に、先ほど作った関数を入れます。//Move();だけwhile内に入れます。//ロードの関数は、ここではここに入れます。//if(charaValid)に関するコードを書いていない時は、ここに置かないで、while文の中に置くと、適切に描画されません。//if(charaValid)に関するコードを書いていないでwhile文の中に初期化関数Init();置くと、適切に描画されません。//画像の描画と移動用の関数をここに置きます。//ソフトの終了}失敗の主な原因としては、やはり、私がソースコードの書き間違えて、それに気づかなかった事にあります。画像データハンドルの作成にポインタを使った事や配列に格納する変数を間違えてしまった事などがあります。何度ソースコードを読み返してた上で問題がないと判断しているのに、いざ実行すると、「ビルドが正常に終了しているのに、すぐにフリーズしてしまう」事が起こり、もう一度読み返して、時には修正して実行してフリーズを何度も繰り返す事になったので、自分が最後まで把握出来なかった原因もあるのでないかと思います。過去のソースコードで残っていないものの中に原因があるのであれば、残っていない事が悔やまれます。コンパイラでも警告されない隠れた分かりにくい間違いが原因となっている場合もある事も、把握出来なかった原因があるのではないかと考える理由です。トピックの主題である複数の異なる種類の画像を複数描画する事に限って言えば、以上のソースコードでは一応、成功しました。これもミクプラの皆さんが適切なアドバイスをして頂いたおかげです。自力でいろいろと調べたりもしたのですが、皆様の協力がなければ、成功する事は出来ませんでした。皆さん、ありがとうございます。以上のソースコードでも、これからの本格的なゲーム制作の課題は山ほどある事から見て、このソースコードで解決したと言い切る事は出来ません。それについては、自分が勉強していく中で見つけていくつもりです。以上のソースコードの中で、私が気が付いていない問題点があるのなら、指摘して頂ければ幸いです。配列とfor文を使っているのに画像が一つしか表示されない。最初のキャラクターの種類と情報が破壊されるはずだと思います。配列とfor文を使っているのに画像が一つしか表示されない。初期化用の関数Init();は、while文の中に入れてしまうと、一番最初の画像が消えてしまう事を確認しました。私の観察力不足でした。初期化用の関数Init();は、ロード用の関数Load();の直後の段に入れると正常に動作しました。ご指摘ありがとうございます。ミクプラは自由にリンクできます。