検索結果 521 件

by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ARPGのようなものを作っています。
返信数: 6
閲覧数: 913

Re: ARPGのようなものを作っています。

変数の寿命についての理解はされていますか? 一度確認してみてください。 http://www7b.biglobe.ne.jp/~robe/cpphtml/html01/cpp01068.html コンストラクタ内で行っている Player::Player() { int x = 320, y = 240; } // 引数なしならこの座標 Player::Player(int xx, int yy) { int x = xx, y = yy; } は無意味です。 int x = 320, y = 240; の変数x,yはそのブロックで有効です。メンバ変数のx,yとは一切無関係です。 また、プレイ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語を初心者が学べる動画、サイトを教えて下さい
返信数: 6
閲覧数: 1447

Re: C言語を初心者が学べる動画、サイトを教えて下さい

実際に動かしながら学ぶのではダメなのですか?
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: へにょりレーザー
返信数: 9
閲覧数: 2232

Re: へにょりレーザー

夢幻ノ月夜 さんが書きました:表現できないというより
私のしたいことができない
と言うのがが正しいのではないかと
どういったことをやりたいのでしょうか?
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: へにょりレーザー
返信数: 9
閲覧数: 2232

Re: へにょりレーザー

言語が指定されていないので、C++で検索したところ、以下のサイトが見つかりました。
12.へにょりレーザー
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: フェードイン・フェードアウトの処理について
返信数: 4
閲覧数: 1439

Re: フェードイン・フェードアウトの処理について

http://dixq.net/g/h_11.htmlに書いてある
不適切な実装3. あちこちにDXライブラリ3大処理がある
に反しています。ScreenFlip()は一度だけ呼び出すようにしましょう。

また、コードが長くなっているので関数分けした方が良いと思います。

キーが押されたらフェードイン•フェードアウトステートに移動して、フェードイン•フェードアウトが終わったらメニュー画面に遷移するようにすれば良いと思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンのティウンティウン
返信数: 7
閲覧数: 1508

Re: ロックマンのティウンティウン

an[8] が初期化されてないからだと思います。
printfDx() や DrawFormatString() で変数の値を確認すればわかると思いますが、中身は不定です。

C言語/C++においてはグローバル変数は自動的に0に初期化されますが、ローカル変数は初期化してやらないと0にならないはずです。

an.x と an.y の値を要素分確認してください。
オフトピック
変数名がわかりにくい気がします。Anime構造体は一体何のアニメーションなのかがわかるように書いてくださると可読性が上がります。

Anime an[8]; の 8も名前をつけてやりましょう。マジックナンバーは可読性を下げます
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタの基本部分についての質問
返信数: 10
閲覧数: 2094

Re: ポインタの基本部分についての質問

引数の[]は要らないと思います。
[]を外したところコンパイルは通りました。 →Ideoneでの結果
オフトピック
ドット演算子ではなくアロー演算子を使いましょう。その方が見やすいです。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 何から勉強すればいいのでしょうか
返信数: 8
閲覧数: 1967

Re: 何から勉強すればいいのでしょうか

if while forですか。本当に何もわからない状態からのスタートですがここから入って理解できるでしょうか? http://www.asahi-net.or.jp/~yf8k-kbys/n ... したが全く理解できず・・ 実際にコードを実行してみましたか?読んだだけで理解できれば(わたしの中では)天才(扱い)です。 実際に動かしてみるのと頭の中で動かすのでは理解度に差が出ると思いますので、一度実行してみたほうがよいのではないでしょうか? 実行済みでしたら申し訳ないです・・・。 わたしも最初は何も知りませんでした。while文すら知りませんでした。何度も何度も改造(書きなおし)をして自分...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンのティウンティウン
返信数: 7
閲覧数: 1508

Re: ロックマンのティウンティウン

構造体なのですが struct Anime{ float x, y; //座標 float a, sp; //? int cnt; //フレーム bool used; //使われているか }; Anime an[8]; //玉 int anG; //画像 ?の部分がわからず、「移動」の文でなにを行っているか 理解できないのです。 夢幻ノ月夜さんの書かれたコードですのでわたしの想像になりますが、 a は angle のことで進行方向の角度 sp は speed のことで進行速度だと思います。 for(int i=0;i<8;i++){ if(an[i].used==false)continue...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンのティウンティウン
返信数: 7
閲覧数: 1508

Re: ロックマンのティウンティウン

わからない行はどれですか?
全てですか?

具体的にわからない行を教えてください。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 何から勉強すればいいのでしょうか
返信数: 8
閲覧数: 1967

Re: 何から勉強すればいいのでしょうか

C+とはなんでしょうか?C++のことでしょうか? まずはC++ならC++の基本的な部分( if while for など ) を勉強してはどうでしょう。 プログラムは大体 if while for を覚えれば組むことが出来ます。 アセンブリ言語は学ばなくても良いのではないかと思います。 ゲーム制作は、「何か作りたい!」と抽象的ですと、自分がまず何から作れば良いかがわからなくなります。 わたしはこれの経験者です しっかりとやりたいことを決定し、やりたいことの中から必要なものを考え、考えたものをリストアップしてみると、何をすれば良いかで悩む必要はなくなると思います。 http://ja.m.wik...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 東方紅魔郷のタイトル画面の項目について
返信数: 5
閲覧数: 1080

Re: 東方紅魔郷のタイトル画面の項目について

case 20://メニュー DrawGraph( 0 , 0 , title , FALSE ) ; //タイトル表示 if(CheckStateKey(KEY_INPUT_UP)==1) { if(sel > 0) sel--; else sel = 0; } if(CheckStateKey(KEY_INPUT_DOWN)==1) { if(sel < 1) func_state=21; } break; if(CheckStateKey(KEY_INPUT_Z)==1) { if(sel == 0) func_state=100; } break; ここ(16行目)のbreakの意味...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 東方紅魔郷のタイトル画面の項目について
返信数: 5
閲覧数: 1080

Re: 東方紅魔郷のタイトル画面の項目について

自分は↓キーが押されたら背景の上から ”選択されている項目の下の項目が赤くなった画像”を重ねているのかと考えています。 わたしは、選択されていないときの画像と、選択されているときの画像を両方用意して、項目が選択されているかどうかを判定し、 選択されているならば画像を選択中のものに、そうでないなら、選択されていないものに差し替える、だと思いました。 本家を確認したところ、選択されていない項目は、選択されていない画像をαブレンドしているだけに見えました。 取り組んだ内容としては、case20から↓キーを押したらcase21(新しく作ったもの)へ飛び、 そこで”選択されている項目の下の項目が赤くな...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C言語テトリス 初心者
返信数: 6
閲覧数: 1470

Re: C言語テトリス 初心者

>softyaさん

http://sp.nicovideo.jp/watch/sm8517855?cp_in=wt_tg
ニコニコ動画ですいませんが、この方のソースコードを利用したものだと思います。


No1の内容を読み間違えてしまいました。すいません。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルから読み込みたい
返信数: 9
閲覧数: 1769

Re: テキストファイルから読み込みたい

みけCAT さんが書きました:
Rittai_3D さんが書きました:
オフトピック
現在のコードではmessageは無くても困らないと思いますが、なにをするための変数なのでしょうか?代入も初期化もなにもしてない気がします。
ノダッシー さんが書きました:テキストファイルから文字列を読み込み、1行ずつchar message[0]~message[3]に代入しようと思いますが
これが目的ではないでしょうか?
すいません、見落としていました。ご指摘ありがとうございます。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルから読み込みたい
返信数: 9
閲覧数: 1769

Re: テキストファイルから読み込みたい

messageの要素を増やせばいいと思います。
オフトピック
現在のコードではmessageは無くても困らないと思いますが、なにをするための変数なのでしょうか?代入も初期化もなにもしてない気がします。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルから読み込みたい
返信数: 9
閲覧数: 1769

Re: テキストファイルから読み込みたい

while中の i が3以上になるから範囲外アクセスで落ちるのではないでしょうか。
iの値を確認してみてください。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: リンカエラーが出る
返信数: 1
閲覧数: 547

Re: リンカエラーが出る

プロジェクトを作り直してコンパイルしたところ、うまくコンパイルが通りました。
どうしてエラーが出たのか疑問が残りますが、エラーが取れたので解決とします。

ソースコードはNo.1のコードと同一ですので、提示はしません。
何か問題があればお知らせください。提示します。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: リンカエラーが出る
返信数: 1
閲覧数: 547

リンカエラーが出る

どうも3Dです。初歩的なものですが、自力でどうしても解決できないので質問させていただきます。 以下のコードをコンパイルすると main.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall CJoypadInput::CJoypadInput(void)" (??0CJoypadInput@@QAE@XZ) が関数 "class std::unique_ptr<class CJoypadInput,struct std::default_delete<class CJoypadInput> > __cdecl std::make_unique<...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ヘッダファイルなどの追加でエラーがでます...
返信数: 1
閲覧数: 1096

Re: ヘッダファイルなどの追加でエラーがでます...

インクルード文のパスを間違えてはいませんか?
#include "../utils.h" など、適切なパスにしてみるとよいかもしれません。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: タスクシステムについて
返信数: 2
閲覧数: 1377

Re: タスクシステムについて

小人の肩の上: [C++]メモリ確保済みタスクシステム
を参考にしてみてください。

タスクシステムには詳しくないので調べたところ、双方向循環リストっぽいですね。
連結リスト - Wikipedia
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 画面揺らし
返信数: 5
閲覧数: 2330

Re: 画面揺らし

ボムを撃ってみよう の //ドガーンとゆれる画面の処理 void dn_calc(){ if(dn.flag==1){ dn.x=(int)rang(dn.size); dn.y=(int)rang(dn.size); dn.cnt++; if(dn.cnt>dn.time){//指定された時間がたつと終わる dn.flag=0; dn.x=0; dn.y=0; } } } を呼び出すことによって画面を揺らしていると思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: if文の中について
返信数: 2
閲覧数: 680

Re: if文の中について

KEY_Get() の中身が分からないので回答ができません。
KEY_Get() の中身を提示できますか?

KEY_Get() の戻り値が3である、これ以上のことは現段階では言えません。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 実態の定義がされません
返信数: 5
閲覧数: 797

Re: 実態の定義がされません

>みけCATさん

すいません、勘違いしていました。
グローバル変数は0で初期化されていますよね。
訂正しておきます。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 実態の定義がされません
返信数: 5
閲覧数: 797

Re: 実態の定義がされません

気になったところですが、game.cpp の struct enemy_t enemy[]; 要素数が書いてありません。 void GameInit(){ ch.speed=50; ch.x=320; ch.y=500; enemy[i].x = 50; enemy[i].y = 200; enemy[i].muki = MOVE_RIGHT; } i の値は不定なのでちゃんと初期化しましょう。 【訂正】グローバル変数は0で初期化されます。勘違いでした。すいません。 また、のちの関数内で int i; があるので、18行目の i は変更したほうがよいでしょう。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 14歳からはじめるC言語わくわくゲームプログラミング教室 VS2013編
返信数: 12
閲覧数: 3811

Re: 14歳からはじめるC言語わくわくゲームプログラミング教室 VS2013編

おかしいところ(バグ)があるからデバッグするのでは?デバッグをするのはバグが出たときだけでよいと思います。 初心者ながらデバッグをしながらどこの変数がおかしいか調べてみたところgamemain.cppの56行目の変数enemyがどのような挙動を示すか見てみたところ値が7で止まらないといけないところ・・・デバッグを続けるとenemyの値が3に減少してしまいました。これが原因かなと思ったのですがどうして減少するのか原因が特定できません・・・でした・・なぜでしょうか・・? 質問を質問で返して申し訳ありませんが、kyonkyon さんは何が原因だと思いますか? ここで直接の答えを教えてしまうと、他人に...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 14歳からはじめるC言語わくわくゲームプログラミング教室 VS2013編
返信数: 12
閲覧数: 3811

Re: 14歳からはじめるC言語わくわくゲームプログラミング教室 VS2013編

ご自分でデバッグはされましたか? していないのなら、printfDx() で怪しいと思われる変数の数値を見てみましょう。おかしい部分があるはずです。 softyaさんのデバッグ講座が参考になると思います。ぜひ一度目を通してみてください。 → http://dixq.net/forum/blog.php?u=114&b=982&c=2 本を読み直し間違っている部分を考えてみたのですがよくわかりません・・(>_<) 考えるだけでなく、原因を調べてみましょう。 すいませんが間違いを見つけていただけると嬉しいです。 間違いを見つけるのはご自分でないと、今後の力にならないと思います。 DrawGraph...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 思い出話など 【雑談トピ】
返信数: 5
閲覧数: 1951

Re: 思い出話など 【雑談トピ】

新参者ですが… わたしが最初にした質問が、構造体について?だった気がします。 記憶が正しければ typedef struct { int a; int b; } test_t; test_t test; test.a = 0; test.b = 10; int main( void ) { return 0; } みたいなコードだったと思います。当時、エラーメッセージの意味がわからずに、悩みに悩んでここに質問したのは何と無く覚えています。 ここに来たのがプログラミングを始めてすぐなので、昔と今の違いが見えて面白いです。 プログラミング能力が無いので回答より質問や雑談トピックに回る方が多いですが...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2015~ ■ 今年の抱負 ■ [雑談]
返信数: 14
閲覧数: 3364

Re: ■ 新年の挨拶トピック~2015~ ■ 今年の抱負 ■ [雑談]

あけましておめでとうございます。

今年の目標は、先を見通して行動する、です。
後は、Androidアプリを3つ作る、ですかね。

Android Studio なるものをインストールしましたが、インストールした日から一度も開いて無い…
そろそろJava苦手(嫌いなだけ?)を直したいです。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: std::out_of_rangeについて
返信数: 5
閲覧数: 1878

Re: std::out_of_rangeについて

ソースコードを読んでいませんし、"c++ 14歳から始めるゲームプログラミング"という本も読んだことがないので推測です。 配列を使用しているなら、添え字に変な値(負の数や要素数以上の数)が入っていないかどうかを調べてみてください。 また、std::vector や std::deque などを使用していて、添え字でアクセスしている場合も同様に調べてください。 ネットでググってみたのですが、原因などが全く見つかりませんでした。 エラーの内容的にどこかの変数の値がおかしくなっているのかと思い、 本の内容と実際に打ったソースを見比べましたが、見た限り間違ったところがなく、 詰まっている状況です。 o...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 文字が上手く表示されないです
返信数: 4
閲覧数: 1489

Re: 文字が上手く表示されないです

初期化関数を作って一度だけ呼べばよいのではないでしょうか。
LoadGraph() , CreateFontToHandle() を Menu_Draw() 内に書く必要はありません。

Menu_Draw() を毎フレーム呼び出すわけではないのであれば無視してください。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録の弾の角度を変更する方法
返信数: 2
閲覧数: 911

Re: 龍神録の弾の角度を変更する方法

動画が長すぎてどれのことを言っているのかが分かりません。
せめて、プレイヤーのショットなのか、敵のショットなのか、何分何秒あたりのことなのかを書いてください。
また、何がわからないのでしょうか。コードの書き方が分からないのか、原理がわからないのか、それ以外か。
おそらくプレイヤーのショットであると思いますが、どうなんでしょうか。情報が少なすぎて何とも言えません。

プレイヤーのショットだと仮定しますと、角度の変え方は、cshot_t 構造体の angle を進行方向と180度(π[rad])反転させるようにすればよいのではないでしょうか。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

なんとなくですがわかってきた気がします。

前回のリプレイのトピックからずいぶんと長くなってしまいました。
このトピックがなければ仕様策定や設計の大切さや大変さを分からなかったと思います。

個人的な理由もあり、解決とさせていただきます。回答してくださった皆様、本当にありがとうございました。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム作成エラー
返信数: 2
閲覧数: 893

Re: ゲーム作成エラー

ソースコードを貼る場合はcodeタグでくくり、適切なインデントをして頂けると読みやすくて助かります。
フォーラムルールをお読みください。

エラーメッセージは WinMain() の戻り値の msg について書いてあるのではないでしょうか。
WinMain() 内に MSG msg; と追加すればエラーは消えると思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

返信ありがとうございます。 要求があいまいということは、何がやりたいのか分かっていない、ということです。 もともと、小さいサンプルで書いていたものなので、やりたいことがあやふやというのもあり、手間取りました。 考えたのですが、 ・プレイヤーはキーコンフィグを気にしない -> 直接のキーコードは自分で定義した仮想キーコードに変換する。 ・リプレイ、キー入力の入力は区別しない -> キー入力なら上と同様、リプレイなら保存されているキーコードを渡す ・キーボードとゲームパッドの入力は統合する -> 複数の入力装置は、ひとつの入力装置からの入力とみなす。 となりました。もうすこし考えてみます。 また、...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

返信ありがとうございます。返信が遅れてしまって申し訳ありません。 設計が主旨であるはずのトピックで、要件定義すらされないのが問題だと思うのです。 それを回答者がやってしまったら丸投げ、というか設計を軽く見ることを助長すると思うのです。 要件定義は、たとえば ・キーボードとゲームパッドの入力は統合する のようなものでしょうか。今まで特に考えずにやってきたのでこの程度でよいのか、根本的に違うのか、全く分かりません。 それをすると、コントローラーが入力の実装に依存するので、コントローラーと入力の分離という大前提が崩れます。 既に説明したことですが、将来的に、現実に接続される装置と複数プレイヤーへの対...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

分からない点は、 ・キーボード入力クラスやゲームパッド入力クラスで自分で定義した仮想キーコードとDxLib.hで定義されているキーコードの対応表を作ることは良いのか悪いのか。(ゲームパッドで使用している数字は、龍神録プログラミングの館の「キーコンフィグに対応させてみよう」で使用しているような数字です。) ・コントローラークラスで、以前貼ったコードで言う CInputDeviceMgr のインスタンスを作成して良いのか。(以前、コントローラークラスでキー入力クラスのインスタンス化はよくないと言っていた気がしましたので。) よくないならどこでインスタンス化すれば良いのか。 ・キーボード入力クラス、...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん、返信ありがとうございます。 このトピックは、良い設計をしたい、という主旨ではなかったのでしょうか。 Tatuさんの書いたように、3D_3Dさん自身がまとめることをずっと期待していたのですが。 あせりすぎていて、すべきことをしていませんでした。 あせり、更に混乱すると何をすべきなのか分からなくなる悪い癖です。もう少し落ち着いてするべきことを見てみます。 インターフェースかどうかは重要なのでしょうか。 まとめも大事ですが、前のスレの話の流れもよく見てください。 入力とコントローラーを分離する、という話題の提供から始まっているのです。 入力とコントローラーを分離する、というのは大前...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん、Tatuさん。返信ありがとうございます。 >ISLe()さん 入力装置を総括したいなら、入力装置の範疇でするべきでしょう。 コントローラーを巻き込んではいけません。 インプットクラスがコントローラークラスに通知するのは、仮想であっても物理的なキーやボタンが押されたという情報です。 コントローラークラスがアプリケーションに通知するのは、アプリケーションで定義されるイベントやシグナルです。 右へ移動するためのキーやボタンが押された、というのと、プレイヤーを右へ動かす要求がされた、というのは異なるものです。 コントローラーは、あくまでもアプリケーション(内のオブジェクト)をコントロ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 人生ゲームっぽいゲームを作ってます
返信数: 19
閲覧数: 2862

Re: 人生ゲームっぽいゲームを作ってます

コードを貼る場合はcodeタグでくくってくださると読みやすくて助かります。
フォーラムルールをお読みください。

同じ数値を足し続けているので一定の回転しかしないと思います。
printfDx()やDrawFormatString()などで数値を見てみるとわかると思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: スタックオーバーフローの回避方法について
返信数: 9
閲覧数: 8807

Re: スタックオーバーフローの回避方法について

変数をメインの外に移動してみて下さい。
もしくは、大きめの配列はmalloc()かnewでメモリ確保をして下さい。
malloc/newを使う場合はメモリリークしないように注意して下さい。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

コントローラークラスはキー入力とゲームパッドクラスの入力を総括するクラスと考えています。 コントローラークラスとキー入力クラスは分ける必要がないのでしょうか。完全に混乱しています。 キー入力クラスは押されているキーコードから自分で定義した仮想キーコードの入力に変換しているつもりです。 GamepadInput.cppの for( auto& it : m_Pad ) { if( InputFlag[ it.padKeyVal ] ) { m_InputState |= it.virtualCode; } } の部分が変換になると思っていますが、違うのでしょうか? 以前に貼った http://d...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

CKeyboardInput/CGamepadInput 内の Proc() でキーテーブルを直接操作していましたが、なんとなく嫌だったので若干修正しました。 また、CController 内で typedef していたのですが、これもなんとなく嫌なので修正しました。 CVirtualController.h で typedef するようにしました。 目に付いた個人的に嫌なところは修正しました。また、これ以外の場所は変化なしです。 CGamepadInput.h #pragma once #include "VirtualController.h" #include <vector> stru...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ゲームの仕様を以下のようにまとめました。 プレイヤー人数:1人 入力装置の種類:キーボード、ゲームパッド(各一つだけ対応。複数は対応しない) (現時点で)ゲームの進行に必要なキー(プレイヤーの操作のみ): ショット、ボム、スロー、方向キー(4つ) 現時点では、ゲームパッドのアナログ入力は対応しない。 今後、対応するとすれば、特定の値以上倒していたら入力があったとみなす。 特定の値はまだ未定。 どうしたら「後で機能を追加しても、機能専用のコードを書かなくてよ」くなるかを考えて組み立てるのが設計というものですが。 試行錯誤と行き当たりばったりは違いますよ。 そうでした・・・。 何を以てゴールにしよ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん、返信ありがとうございます。 以前、同じインターフェースを持つオブジェクトをパイプで繋ぐように結び付けることで変換等を実装できるという話をしましたよね。 というかそもそもそのあたりの話からこのトピックに繋がっているのではなかったでしたっけ。 コントローラークラスが変換クラスに依存しているので、入力クラスに対する変換クラスが常に必要ですよね。 これはどうして必須なのでしょうか。 CKeyInput/CGamepadInput は直接キーコードのみを扱い、 CConvKeyCode/CConvPadCode は仮想キーコードと直接キーコードの両方を扱い、 CController は...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん。返信ありがとうございます。 何度も返信が遅れてしまい、申し訳ありません。これからも返信が遅れてしまうと思います。ご容赦ください。 「意識しないで書ける」という表現には具体性が無いですね。 語彙力がないというのは免罪符になりません。 具体的なメリットを挙げることがいま必要なのですから。 これはもはや企画…設計以前の問題です。 どうしてそれをやらなければいけないのか、という話です。 他のライブラリを使うことになったら、DXライブラリのラッパ関数を作るだけで元からあるコードをまったく変更しなくて済むかもしれません。 使用するライブラリを変更できるというメリットはそんなに重要でしょう...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: プレイヤー移動について
返信数: 19
閲覧数: 3430

Re: プレイヤー移動について

DrawFormatString() や printfDx() などを利用して数値をみて見れば分かるはずです。
ソースコードをよく読んでいないのですが、ch.imgの値を見てみましょう。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 改行を含んだ文字列の宣言について
返信数: 5
閲覧数: 2995

Re: 改行を含んだ文字列の宣言について

コード:

char* text =
 {
   "abcdefg"// ,(カンマ)を入れない
   "hijklmn"
};
としてみてはいかがでしょう

#追記
すいません。改行のことをすっかり忘れていました。

コード:

char* text =
 {
   "abcdefg¥n"
   "hijklmn"
};
ですね。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++音げー制作にあたって
返信数: 9
閲覧数: 2664

Re: C++音げー制作にあたって

キーが押された瞬間にフラグを立てて、フラグがたっていれば音を鳴らすような処理にすればよいと思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: SetWindowPos関数でサイズを変更できない
返信数: 5
閲覧数: 2554

Re: SetWindowPos関数でサイズを変更できない

SetWindowSize( w, h, 32 ) としてみてください。おそらく16が原因かと。 Dxライブラリを使用するならSetWindowPos()を使用せずに SetGraphMode( a, b, 32 ); // ウィンドウのサイズ変更 SetWindowPosition( x, y ); // ウィンドウの場所を変更 DxLib_Init(); // 上の関数より下で呼び出す必要がある? で何とかなると思いますが・・・。このあたりの関数は使用したことがあまりないので間違っていたらすいません。 http://hpcgi2.nifty.com/natupaji/bbs/patio.c...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe() さん、返信ありがとうございます。このごろ忙しく、返信が遅れてしまいました。すいません。 コントローラーはアプリケーションに依存しますから、コントローラーだけで設計を決めるということ自体が難しいのですよね。 アプリケーションフレームワークというアプリケーション全体の骨組みを固定する形まで持っていけば可能ですが。 フレームワークですか。興味があるので一生のうちに一度は作ってみたいと思っています。 関係のない質問ですが、フレームワークとやらはライブラリとは違うのでしょうか? 根本的に違うのか、途中までは同じような用途で、使用するタイミングが違うのか、そのあたりの認識があいまいです。 イ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリを用いたシューティング作成について質問です。
返信数: 2
閲覧数: 966

Re: Dxライブラリを用いたシューティング作成について質問です。

自機の座標を上にすれば良いだけです。
同様に、敵の座標は下にすれば良いのです。

ショットは、座標更新部分を、上に発射させる処理を逆転させると出来ると思います。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

想像ですが、cppファイルの構造体が無名構造体なのではないでしょうか? // a.h struct Hoge_t; //前方宣言 // a.c struct Hoge_t { int val; }; は出来てますが、 // a.h struct Hoge_t; //前方宣言 // a.c typedef struct { int val; } Hoge_t; は出来てませんよ。 参考 http://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03012.html 前方宣言は関数のプロトタイプ宣言の構造体verみたいなものです。 外出先からなので短いで...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

>ISLe()さん 返信ありがとうございます。 参考にされてるJavaのコードで、入力情報をビットにパックしているのは、4方向デジタル入力を前提にしているからなんです… デジタル入力しか扱わない、という前提で話が進んでいるという認識で良いのでしょうか。 はい、そうです。 トピックのタイトルに『設計』とあるのに実装が主体で、前提となる仕様策定がぜんぜん進んでいない気がするのです。 わたしが 設計=実装 と考えてしまっていたことが原因です。 仕様もよく考えておらず、キーボードとゲームパッドからの入力を受け付ければいいや程度のことしか考えていませんでした。 リプレイの話題から派生しているので、プレイ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

enemy_order.h の中に enemy_order_enum_info_t と enemy_order_t の前方宣言を記入してください。
enemy_order.h は何もインクルードされていないので、enemy_order_enum_info_t や enemy_order_t が何なのか分かりません。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

コードの確認を怠り、投稿したコードと書きなおしたコードを混同してしまい申し訳ありませんでした。 とりあえずクラス化したものです。ゲームパッドクラス、コントローラークラスも実装してみました。 コントローラークラスのGetState関数ではゲームパッドかキーボードのどちらかの入力か関係なく返すようにしました。 スマートポインタなど色々使用してますが、これは、C++の他の機能の勉強も兼ねているからで、とくに理由はありません。 以下、コードです。 main.cpp #include <DxLib.h> #include <memory> #include "Controller.h" using na...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

すいません、混同してました。
ファイル分割して書き直した際に、ついでに書き直してたのを忘れてました。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

へにっくす さんが書きました:隠すべきcsKeyListをWinMainで使ってたところをみても
ちょっと怪しい印象がぬぐえませんが・・・(^^;
クラス化、がんばってください。
csKeyListってWinMainで使ってますか?
コード中の
>if( ( padState & eSHOT ) != 0 )
のeSHOTは eKeyType::eSHOT の意味で使用していたのですが。

#追記
GetPadState関数で更新処理と取得処理をまとめて書いてしまいました。すいません。
C++版は修正してありますので明日以降に投下します。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

>へにっくすさん 返信ありがとうございます。 いちいちビットシフトしてるのが気に入りませんね。 また、WinMainでGetPadState関数で使用する配列csKeyListを持ってきてるのも変です。 完全に隠れてませんよ。 WinMain側(ゲームメイン側)からは、eKeyTypeのみで判定したいのですよね? ビットシフトがなくなってだいぶ読みやすくなりました。enumってこんな風にも書けるのか、と思いましたが、よく考えたら代入しているものは2の累乗になるから代入出来るのはあたりまえですよね。 配列や関数は、わたしの変な癖で、一旦main.cppに全て書いてからファイル分けをしていくスタイ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

C++で上手く書けないのでC言語で一度書いてみました。C言語といってもC++の機能を若干使用しています。 今までのコードをすべて忘れて書きました。こんな感じでしょうか? #include <DxLib.h> using namespace std; #define DBG_COMMENT { DrawFormatString( 0, 0, GetColor( 255, 255, 255 ), "ぬわああああああ!" ); } #define DBG_PRINT(f) { DrawFormatString( 0, 16, GetColor( 255, 255, 255 ), "dbgData :...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

このタイミングで投下するのは良いかどうかわかりませんが、以前書いたと言っていたコードを載せます。載せる載せると言っておいて載せないのはどうかと思いましたので。 いろいろなコードをみて混乱するかもしれませんので言っておきますと、わたしが書いたコードは拡張性が無く、変数を隠すことを主な目的とした物です。ISLe()さんのコードのように、これから先を見越した設計にはなっておりません。「ふーん、変数を隠しても動くんだ」程度にご覧ください。あくまでも、カプセル化を意識したサンプルです。ので、わたしのコードに囚われないようにしてください。 また、デバッグコードも残っていたり、色々とエラーチェックを省いて...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ここ最近とても忙しく、コードを書く時間が全く取れずに返信が遅れてしまいました。

忙しいなりに色々考えてみましたが、やはり理解が出来ていないようで、空き時間などを利用してコードを書いてみましたが、ISLe()さんのおっしゃっていたDxライブラリのラッパーにしか見れません。諦めたわけではないですが、正直、思いつく気がしません。

これからさらに忙しくなり、返信が更に遅れると思います。なんとしてでも完成はさせます。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん、へにっくすさん 返信ありがとうございます。 >ISLe()さん 3D_3Dさんが1人で両手を使って1つのキーボードを使っている 3D_3Dさんが2人いて右手と左手それぞれの担当に分かれて1つのキーボードを使っている 3D_3Dさんが2人いて右手用のキーボードと左手用のキーボードに分かれてそれぞれ使っている というのはぜんぶ結果としては同じことなんですよ。 2人いる3D_3Dさんや2つあるキーボードをそれぞれ別のものとして扱うことができれば、そのままいくつも増やしていけます。 想像できますか? キーボードやゲームパッドを上から見てませんか? なんとなくですがイメージできました。...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

Re: キー入力クラスの設計

ISLe()さん、へにっくすさん 返信ありがとうございます >ISLe()さん 例えばひとつのキーボードを複数のキーボードが重なったものと見なせるように設計する 使うキーが異なれば、物理的に複数の装置からの入力と見なす 使うキーが同じなら、物理的にすべての装置に入力されたと見なす 逆にキーボードとゲームパッドをひとつの入力装置と見なせるように設計する 現実のキーボードとスクリーンキーボードをひとつの装置と見なすのも同じ といったふうのがわたしの考える装置に対する抽象化です。 まだよくわかっていないです。 >キーボードとゲームパッドをひとつの入力装置と見なせるように設計する は、ゲームパッドをキ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使ったタイトル画面の表示について
返信数: 2
閲覧数: 1107

Re: DXライブラリを使ったタイトル画面の表示について

メニュー画面を表示する関数が呼び出されていないのではないでしょうか。
DrawGameTitle()をメインループで呼び出せば(画像の読み込みに失敗していなければ)表示されると思います。

また、関係のないことですが、WaitKey()をメインループの後で呼び出している意味ってあるのでしょうか?
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

キー入力クラスの設計というトピックをたてました。
こちらのトピックを終了し、あちらで、このトピックの乖離した部分を続行しようと思います。

最初に張ったコードのリプレイのバグの原因もわかり、修正も完了いました。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: キー入力クラスの設計
返信数: 49
閲覧数: 10889

キー入力クラスの設計

C++でのリプレイの実装 の続きとなっております。 続きの場合、どう書いて良いかわからないのでテンプレートを使用させて頂きます。 [1] 質問文  [1.1] 自分が今行いたい事は何か      キー入力クラスやゲームパッドクラスの設計をしたい。詳しくは、上のURLを参照して下さい。  [1.2] どのように取り組んだか(プログラムコードがある場合記載)      前のトピックにいくつかコードがあります。全て記載するとかなり長くなるので記載しません。載せろ、との場合でしたら記載致します。  [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)      良...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

ISLe()さん、へにっくすさん、usaoさん 返信ありがとうございます。 >ISLe()さん あいかわらずDXライブラリのラッパにしか見えないのです。 三項演算子の部分は、何をしたいのか分かりません。 何のためにいちばん大きい値を取り出すのでしょう。 三項演算子につきましては、へにっくすさんのおっしゃるとおりのことをしようとしていました。 ゲームパッドとキーボードのどちらかの入力があれば、入力されている方のフレームを返すように考えました。 ゲームパッドがなくても、設計を詰めていくのには関係ないと思うんですよね。 キーボードの右半分と左半分を使って、ゲームコントローラーが2つ付いてると見なせる...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

色々と作り直してみました。手元にゲームパッドがない状態なので、ゲームパッドクラスが上手く動くかどうかわかりませんが、一応対応させてみました。 CGamepadInput::Proc()内の DX_INPUT_PAD1 を DX_INPUT_KEY_PAD_1 にした時の動作は正常でした。しかし、ゲームパッドを接続しての確認は出来ていません。 また、CController::Get()内の三項演算子ですが、もっとよい書き方を出来ればと思いましたが、これ以外は思いつかずにこうしてしまいました。ここは、改良したいけど、どうしてよいかわからない部分です。わたしが考えた方法は、Get()内でvector...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

>ISLe()さん 返信ありがとうございます。 スクリーンゲームパッドクラスは、ゲームパッドクラスと同様に扱えるようにインターフェースを用意したとします。 スクリーンキーボードクラスは、キーボードクラスと同様に扱えるようにインターフェースを用意したとします。 それらを総括するコントローラークラスは、スクリーン〇〇かどうかを気にする必要ありませんね。 ということは、例えばプレイヤークラスで、あるキーが入力されたらこういうアクションを起こす、という場合も、入力装置がキーボードでもゲームパッドでも関係ないということですね。 だいぶ分かって来た気がします。 DXライブラリではこうだから、という理由で設...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

>ISLe()さん 返信ありがとうございます。 ゲームパッドに特殊キーはないのに、キー入力とゲームパッド入力を総括するコントローラークラスが特殊キーを扱うのでしょうか。 それだと扱う対象が増えるたびに、コントローラークラスの実装に条件分岐が増えていくのでは? 今回たまたまインターフェースが流用できただけで意図したものではないですよね。 全部キー入力に見立ててしまうというのもありと言えばありですが、たぶんそういう使用目的も想定してないですよね。 コントローラークラスで扱う情報が増えると、このトピックの元々の主旨にあるリプレイに必要な情報も無駄に増えますよね。 すいません、思い違いをしていました。...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

数日間、色々悩んだ結果、このコードができました。 main.cpp #include <DxLib.h> #include "Controller.h" #define DBG_COMMENT { DrawFormatString( 0, 0, GetColor( 255, 255, 255 ), "ぬわああああああ!" ); } #define DBG_KEYFRAME(f) { DrawFormatString( 0, 16, GetColor( 255, 255, 255 ), "KeyFrame %d", (int)f ); } // テストコード int WINAPI WinMain...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

返信ありがとうございます キーマップからステータスに変換するのはCKeyInputクラス側でないといけないですね。 とはどういう意味でしょう? eGameKeyやKeyInputData_tをCKeyInputクラスで行う、ということでしょうか? ゲームパッドの対応は考えていないとおっしゃっていますが、キー入力とゲームパッド入力ともに共通のインターフェースを持って、CControllerに対して抽象化されたステータスを返すようにしないと、新しいクラスを作っては継ぎ接ぎするようなことになってしまいますよ。 いまの時点でネイティブな入力から仮想の入力へのインターフェースを考えておく必要があります。...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

ISLe()さんの方法をとられるということと、高校が始まり、なかなか趣味の時間に使えなくなったために手を引いていました。 個人的な感想なので無視して下さっても構いません。思ったことを言わせていただきますと、なぜ一体から始めないのでしょうか? まず一体だけの処理を書き、それがうまくいったら、配列などを用いて敵の数を増やしてやれば良いと思います。 前にも書きましたが、わたしが載せたコードのmain()に書いたpHogeを配列にすれば敵の処理っぽくなると思うのですが。 あまり言うとISLeさん に怒られてしまう の邪魔をしてしまうので、不快に感じたら無視してくださって構いません。これ以降は投稿しま...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

かなり返信が遅れてしまったことをお詫び申し上げます。 キー入力クラスが上手く作れず、放置してしまいました。 まだリプレイは実装していませんが、キー入力クラスはこの程度でよいのでしょうか? ソースコード #include <DxLib.h> #include "Controller.h" // テストコード int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode( TRUE ), DxLib_Init(), SetDrawScreen(...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 【龍神録】オプションバグ
返信数: 6
閲覧数: 1167

Re: 【龍神録】オプションバグ

間違えた事を言っているかもしれませんが、 memset( option_bb, p, sizeof( option_bb ) ); で初期化出来ると思います。 提示されたコードだと、option_bb[0]だけを初期化しているのでは無いのでしょうか? sizeof( option_bb_t ) はoption_bb_t "だけの" サイズです。 配列全部のサイズではなく、一つ分のサイズです。 もとのコードのままでしたいなら // いろいろ省略 for( int i=0 ; i<2 ; i++ ) { memset( &option_bb[i], 0, sizeof( option_bb_t )...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: この文章の意味が分かりません
返信数: 7
閲覧数: 1705

Re: この文章の意味が分かりません

>amehiruneさん

かずまさんは、エラーをわざと再現しているのだと思います。
質問である「エラーメッセージがわかりません」の返信に「このコードを実行するとこういうエラーが出ます。どこがおかしいでしょう?」と言っているのだと思います(実際には言ってはいませんが)
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 【龍神録】オプションバグ
返信数: 6
閲覧数: 1167

Re: 【龍神録】オプションバグ

printfDxやDrawFormatStringで数値を確認してみましたか?
コードが無いのでなんとも言えません。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: DxLib::GetDrawScreenGraph関数について
返信数: 5
閲覧数: 1925

Re: DxLib::GetDrawScreenGraph関数について

CutPos にどんな値が入っている。や、全体のコードを書いた方が回答しやすいと思います。

さて、検索してみましたところ、
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=2153
という記事を見つけました。

また、画像を抜き出して表示だけならhttp://homepage2.nifty.com/natupaji/DxL ... html#R3N20DrawRectGraph()でよいのでしょうか。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

いくつか疑問があります。

なぜ、CSVの読み込みが現段階で必要なのでしょうか。
なぜ、カプセル化を目指しているのに構造体を公開しているのでしょうか。

設計を適切にすれば、構造化は簡単に出来る気がします。
龍神録の設計を完璧に忘れましょう。忘れないと、おそらく設計は出来ません。

構造体の内部を隠さないとカプセル化にはなりません。
現在、スマホから返信をしているのでこの返信ではコードを貼れません。
すぐに貼りますので、少々お待ちください。
オフトピック
コードを貼ることは本当にその人の為になるのでしょうか?
#すいません、コードは少し遅れます。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

なんとなくですが、変数の隠蔽がまだ出来ていない気がします。 まずは、雑魚一体一体で分ける練習をしましょう。 只今、struct.hに構造体定義を書くのをやめて、前方宣言を試している途中です。 少し気になったのですが、このまま前方宣言で進めたら、訂正しない限り、3D_3Dさんからリンクを貼っていただいた、 「構造体の前方宣言」のトピックの、ソフト屋さんが仰っていた「Enemy.cppしか知らないはずの構造体のメンバ情報にEnemy_MovePat.cppがアクセスしているのでエラーになります。」 ということと、僕のenemy.cppのenemy_act(enemy_t *enemy)関数はまった...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

3D_3Dさん 了解です。「習うより慣れろ」という風に、まずやってみたいと思います。当方は学生なのですが、昨日は用事があり、コードを作れませんでしたが、早い内に公開したいと思います。 ただ、いろんな方の教えをいただいているため、結局、自分にあったやり方になり、3D_3Dさんの意図するところに落ち着くかはまだわからないです・・・。 龍神録がかなり良くないというのが良く分かりました・・・汗 また私のこれから投稿するコードが3D_3Dさんの意図するところと違っていても、参考としていただきたいです。 ゆっくりで大丈夫ですよ。また、自分のやり方で問題ないです。決まりはありませんので。 3D_3Dって入...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

ただ、仮に今回のことができたとしても、今後やらなくてはならない、とりあえず無しにする複数の敵のCSVのロードとその管理、弾幕の制御、ボスの制御、当たり判定、エフェクトなどのことを 考えると隠蔽を守りきる自信がないです・・・。結局はやはり龍神録的(C言語的?)な感じに落ち着いてしまうような気がして怖いですが、とりあえず今は目の前のことをします。 コードを載せるのにすこし時間がかかるかもしれませんが、もしお暇でしたら、そのときもご協力いただけたら幸いです。 設計をしていくうちに改善されていきます。 また、最初からうまく行くわけがないので、まずは自分なりに設計し、指導して貰う。これが一番だとわたし...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

本題なのですが、つまり、今教えていただいているのは、本当にC++的な、敵一体をオブジェクトとしていじくるような感じということ・・・なのでしょうか。 何を教わっているのかすらあまりわかっていなかったようです・・・。 つまり、今回の僕のコードで言うなら、隠蔽を守るため、敵の構造体の定義(中身)はenemy.cppに書き、enemymgrに敵を管理させる。 しかし、隠蔽のため、enemymgr.cppはそのenemy構造体の定義を知らないため、enemymgr.cppでは直接実体(enemy構造体変数)をつくることができない。 そのために教えていただいた方法が必要になるという解釈で正しいでしょうか...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

3D_3Dさん なんの義理もないのに、親身にしていただいて、本当に感謝しています。本当に助かっています。 わざわざスマホで打っていただいたコード、やっていることは理解できたのですが、どうして、今回の、『「構造体の前方宣言」のトピックの、ソフト屋さんが仰っていた「Enemy.cppしか知らないはずの構造体のメンバ情報にEnemy_MovePat.cppがアクセスしているのでエラーになります。」ということと、僕のenemy.cppのenemy_act(enemy_t *enemy)関数はまったく同じ状況になってしまうということですよね?今まではstruct.hをどのファイルでもインクルードしてい...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

只今、struct.hに構造体定義を書くのをやめて、前方宣言を試している途中です。 少し気になったのですが、このまま前方宣言で進めたら、訂正しない限り、3D_3Dさんからリンクを貼っていただいた、 「構造体の前方宣言」のトピックの、ソフト屋さんが仰っていた「Enemy.cppしか知らないはずの構造体のメンバ情報にEnemy_MovePat.cppがアクセスしているのでエラーになります。」 ということと、僕のenemy.cppのenemy_act(enemy_t *enemy)関数はまったく同じ状況になってしまうということですよね?今まではstruct.hをどのファイルでもインクルードしていた...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

3D_3Dさん お恥ずかしいのですが、まだまだ初心者なため、1から作り直すには難しく、今はまだ龍神録をベースに学んでいくしかないというのが現状です・・・。 館の設計を無視して自分の力のみで設計する力はまだ無いのだと思います・・・。 外部から構造体変数にアクセスできないということだけでは隠蔽は完璧ではなく、ヘッダに書いてある以上 構造体の中身はアクセスなどはできずとも隠蔽はされていないということですね。「公開」はされてしまっているんですね。 「画像につきましては、わたし個人としてはあまり好みませんが、人によってはそれがいいという場合もあるのでなんとも言えません。」 というのは、「敵の読み込み部...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

疑問に思いましたが、テスト段階でcsvから読み込む必要はあるのでしょうか?
csv読み込み部はとりあえず放っておいて、まずはしっかりと設計をした方が良いのではないでは?
まずは一体だけで試してみて、段々と数を増やし、そして読み込み部を実装すればよろしくない設計にはならないと思いますが、どうでしょう?なにかcsvから読み込まなくてはいけないというような感じがしたので書かせて頂きました。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

直すくらいなら1から設計した方が楽な気もしますが…。 龍神録プログラミングの館は ここ にある文を引用しますと、 効率化、カプセル化、または、汎用性・拡張性などは意識せず、とにかく難しい構文を使わずに実装することを目指しています。 よってほとんどの変数をグローバル変数として利用しており、本館の設計は大きなコードの設計をする上で適切な手法ではありません。 とあります。館の設計に囚われずに設計してみる方が良いかもしれません。 3D_3Dさん、何度もすみません。 直すところが多そうなので、とりあえず今直せるところから直していこうと思います・・・汗 構造体の定義はその構造体を使うファイルに置く・・・と...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

大分よくなっていると思います。 ただ、ちょっと気になったのが、マネージャ部が構造体のメンバ変数を知る必要が本当にあるのでしょうか?マネージャ部は呼び出すだけの設計の方がわたしは綺麗だと思います。 あと、構造体が見当たらないのですが、struct.hに書きっぱなしですか?必要のない情報は隠すべきです。カプセル化とは、そういうことです。 わたしなら、オーダー構造体(enemy_order_t)のポインタを返すような関数を用意します。 初期値(読み取った値)を引数に取り、その関数内で値を設定し、設定した構造体を返すようにしますが、自分のやり方もどうなんでしょう。 読み込み部も独立しておく方がいい気が...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

わたしはそこまで「"敵"は何を持つべきか」というようなことは考えていなかったので、少し返答に困りますが… もし、敵が雑魚だとしたら、移動とショットの命令を出す、とでも言えばいいのでしょうか。 わたし的には、雑魚の管理部は、雑魚の画像ハンドルを持ていて、移動やショットを任意のタイミングで呼び出すだけの物だと考えています。言葉にしにくいです。 #ここでの雑魚は、雑魚全体ではなく、雑魚一体の話です。 # 追記 ショットも移動も敵の画像ハンドルはいりませんよね。管理部(というか雑魚1体)が持てば良い情報で、オプション部分は必要無いですよね。ショットも移動も、呼び出されたら、呼び出し元の敵だけを移動させ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

"敵の移動"と"敵のショット"は"敵"ではないですよね。"敵"のオプションみたいなものですよね。だから、分離すべきです。 敵に関するものは敵管理部を作り、そこで全て管理すべきです。 わたしなら、Init関数もUpdate関数も各オブジェクトごとに持ち、上に書いた管理部で呼び出す設計にします。 管理をしやすくするならオブジェクトごとにInit関数やUpdate関数を持った方が、どのオブジェクトの初期化や更新処理をしているのかが一発でわかるので、わたしはそのようにしています。 わたしの考えるオブジェクト指向は、オブジェクトごとに管理することによりバグの発見がしやすくなる設計と勝手に解釈しているので...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

とりあえず、気になるところがありますので、書かせていただきます。

インクルードガードが無意味である
インクルードガードに二連アンダースコアは使用しない方が良い(http://www.wdic.org/w/TECH/予約済み識別子)
オブジェクト指向で設計したいのであれば、敵の移動とデータ読み込みとショットパターンは分離すべきです。この辺りは練習しないとわけがわからないと思います。

わたしもオブジェクト指向を完璧に理解しているわけではないですが、一度プログラムから離れて、ゲームのスクリーンショットからオブジェクトを抜き出す練習をしてみるとよろしいかと。
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

前方宣言は知ってはいたのですが、まだ使ったことがないので慣れない感じです。 そこももっと調べてみます。 また、関数の引数に構造体変数のアドレスを与えると関数内で直接いじれるというのもセオリーとしては分かるのですが、 実際にやるということになると難しいようです。 わたしは習うより慣れよ、と言いたいです。 わたしも前方宣言は最初は理解出来ませんでした。 そんなに難しいのでしょうか? わたしは逆で理解出来ないけど使い方はわかってるという状況でした。 具体的にわからないところは、なんというか言葉にして言うのが難しいのですが、私に読解力がなくて、教えていただいたことの流れ(?)というか 全体像をつかめ...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

具体的にどの辺りがわからないのでしょうか? 構造体のメンバ変数を公開しないで、こういう構造体があるよ、というものがわからないのでしょうか?それなら、構造体 前方宣言 で調べて見て下さい。 それとも引数のポインタですか?それでしたら、引数に渡された構造体の中身をムリヤリ書き換える、と考えると良いと思います。自分はそのように理解していますがあっているかどうかはわかりません。すいません。 あとは、共通化できる構造体は共通化してしまうとか、色々方法はあると思います。 勘違いしていたら申し訳ないのでofftopicで… http://dixq.net/rp/0.html にある通り、グローバル変数をたく...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

追加で質問です。

JavaのコードではkeyPressed()もkeyReleased()も呼び出されて無いように思いますが、実際に動かしてみるとちゃんとキーの入力の通りに動います。

どこでkeyPressed()やkeyReleased()を呼び出しているのでしょうか?
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

>ISLe()さん

返信ありがとうございます。
とりあえず、vector<int> にしてみました。

Javaの入門したてで、コードの読解はKeyEventあたりで止まっています。
KeyEventのgetKeyCode()はC++だとどう表現すれば良いのでしょうか?

Dxライブラリ使用なので、keyPressed()やkeyReleased()の中のforをfor( int i=0 ; i<256 ; i++ );としてしまうのでしょうか?また、それ以外の方法はあるのでしょうか?
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 変数のカプセル化を守りながらのデータの受け渡しについて
返信数: 138
閲覧数: 19519

Re: 変数のカプセル化を守りながらのデータの受け渡しについて

enemy_orderのポインタを引数にとるようにして、enemy_orderを隠してしまえば良いのでは? しばらく龍神録プログラミングの館もコードも見てないのですが、 なんちゃら.h // インクルードガードは面倒なので書いてないですが、必ず書いてください // この下の構造体の内容は外部には公開しない。 // こういう構造体はあるけど、メンバ変数は外から見えないよ、ってことです struct enemy_t; struct enemy_order_t; void enemy_enter( struct enemy_order_t* pOrder, struct enemy_t* pEnem...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: C++でのリプレイの実装
返信数: 30
閲覧数: 7270

Re: C++でのリプレイの実装

>>ISLe()さん 返信ありがとうございます。 ビット演算はなんとか自分で理解できました。 プログラムを眺めたり頭の中で考えると混乱することに今更ながら気が付き、手を動かして下位4ビットの動きを確認して見ましたら理解できました。 最初分からなかった所はKeyInputのkeyPressed()のmask<<=1の処理とkeystate|= mask と keyReleased()の keystate &= ~mask でした。 リンク先のプログラムについての質問なのですが、keyInput()のコンストラクタの引数にint型配列を渡していますが、C++ で書く場合はvectorやlistを利...
by Rittai_3D
5年前
フォーラム: C言語何でも質問掲示板
トピック: 自分でプロジェクトをつくったとき
返信数: 8
閲覧数: 1145

Re: 自分でプロジェクトをつくったとき

http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
お使いの環境がわかりませんが、本家の設定方法で試してみてはどうでしょう。

詳細検索ページへ移動する