検索結果 41 件

by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: チート作成
返信数: 5
閲覧数: 12611

Re: チート作成

そうですね。こんな流れでしょう。 C言語の基本を学ぶ。コンソールで好きなゲームを何も見ずに作れるレベルが良い。参考書は多いが、300ページほど読破すればマスターできる程度です。 ↓ オンゲ、というかゲームの一般的な作り方について学ぶ。プログラム本体は1000ページほどの勉強で十分と思われますが、一応グラフィックスも勉強すると良いので買いあさりましょう。別に自分が描くわけじゃないので、やり方を理解するだけで構いません。ここで数年鍛錬するのがちょうどいいです。 ↓ ネットワークについて学ぶ。サーバー周りはCでない言語が多いので、その辺も一通り網羅すると良いでしょう。500ページほどの参考書が数十種...
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 敵に当たり判定をつけたいんです! 
返信数: 12
閲覧数: 664

Re: 敵に当たり判定をつけたいんです! 

はい。・・・というか、完全に解決するまで何が起きるかは判らないので、是非聞いてください。
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 敵に当たり判定をつけたいんです! 
返信数: 12
閲覧数: 664

Re: 敵に当たり判定をつけたいんです! 

ううむ、難しい。何か難しいのかって、ここまで出来てるのにどう詰まるのかが判らないから難しいww 真面目に答えます。流れとしては、 Enemyのupdate()からCheckCollisionBullet( Enemy *pEnemy )(←新しく作ってください)を呼び出す。このとき、自分自身へのポインタthisを渡す。[最初のソースの66行目あたり] ↓ CheckCollisionBulletで、Bullet全部と判定を行う。どうやらBulletには自機属性と敵属性があるようなので、自機属性のものとのみ判定を行う。 ↓ 当たっていたら、pEnemy->bUsedをfalseにする。消滅。以降...
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 敵に当たり判定をつけたいんです! 
返信数: 12
閲覧数: 664

Re: 敵に当たり判定をつけたいんです! 

あ、すいません。Playerのプログラムが来ていましたね。 CheckCollisionField()ではフィールドとプレイヤーの当たり判定が行われていますが、それと同じことをEnemyとBulletで行い、290行目に相当する部分はEnemyを消滅させる処理(あるいは、HPをつけるなら、HPの値をいくらか引く処理)にすればOKです。forループは二重(Bullet一つごとにEnemy全部と判定、をBullet全部で)になりますが大丈夫ですよね。 追記 Fieldも来ていましたね。EnemyはFieldと違ってサイズは固定のようなので、もっと楽に出来るでしょうが、具体的に何で悩んでいるのですか?
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 敵に当たり判定をつけたいんです! 
返信数: 12
閲覧数: 664

Re: 敵に当たり判定をつけたいんです! 

これってもしやコンソールアプリケーションですか? 製作環境を教えてください。
見たところ基本的なプログラムの構造はしっかりしていて良いです。しかしコンソールでアクションってのもすごいですね。
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 攻撃判定を持つクラスを作りたいのですが、どう作ればいいのか解りません。
返信数: 4
閲覧数: 484

Re: 攻撃判定を持つクラスを作りたいのですが、どう作ればいいのか解りません。

Objectクラスでは、2つのObjectの接触判定を行っているのですよね? であれば、それと同時にHP干渉する処理も行ってしまえばいいと思います。 全体を知らない(全部のコードを晒せという意味ではありません)ので主観的な意見ですが、この場合Actionクラスに相当する処理は別にクラスを作るほどのものではないかと思います。また継承を活用しているようですが、活用のしすぎは却って複雑になります。使いすぎるなら使わないくらいの按配が、個人的には良いと思っています。どうしても詰んだら1から書き直すのもアリです。 まあ言ってもこの辺は確かに難しいですよね。かくいう自分も、当たり判定の最適化のためにどうオ...
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: ZUN氏の東方シリーズについて
返信数: 3
閲覧数: 679

Re: ZUN氏の東方シリーズについて

どうやらそのようですよ。但し厳密にはC++だと思われます。

あとは画面描画に必要となるDirectXも使われています。というか、Windowsで動くゲームはもっぱらこのC++とDirectXで作られています。それは東方のような同人ソフトでも商業の大作でも共通です。
まあ商業ゲームは他にも色々くっつくことはありますが・・・元をただせばそういうことです。
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラス同士の橋渡し
返信数: 4
閲覧数: 588

Re: クラス同士の橋渡し

まあ参考になるかどうかは微妙ですが・・・ 僕の場合は、「橋渡しクラスを作る」ことで解決しています。つまりどういうことかというと、 まずその橋渡しクラス――ここでは"Scene"とします――を作ります。 //Scene.h class Scene{ public: void update();//WinMainか何かから1フレームに1回呼ばれる void getCameraData( 【カメラデータの型】 *pData );//意味は後ほど void setEvent( int eventNum );//これも後ほど private: Jiki* mJiki;//配列 Enemy* mEnemy...
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: ProcessMessageについて
返信数: 13
閲覧数: 1617

Re: ProcessMessageについて

私は許容量について知りませんが、この場合具体的な数は直接は関係ないと思われます。
恐らく、while文をループするたびに同じグラフィックの確保関数を呼び出しているのではないでしょうか? そうであれば、最初の1ループだけ確保関数が呼ばれるようにする必要があります。
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 広いマップの当たり判定
返信数: 11
閲覧数: 1060

Re: 広いマップの当たり判定

おっしゃる通り、マップ配列のサイズは[1000][1000]になります。確かに環境によってはがっつりメモリを使うので容量的に厳しいかもしれません。また、1000x1000個ものマップをエディットするのも相当大変だと思います。

ですが当たり判定そのものは重くなりません。コードをよく見ると、サイズが[1]、[20]だろうと[1000]だろうと「進行方向の区間1つ」しか調べていません。つまり処理は変わらないので、いくらでも広大なマップを作って問題ないということになります。

と、いうことでよろしいでしょうか?
by SUE
7年前
フォーラム: C言語何でも質問掲示板
トピック: 同時に繰り返し文を実行したい
返信数: 9
閲覧数: 567

Re: 同時に繰り返し文を実行したい

「基本的には」、コンピュータは複数の処理を同時に行うことはできません。ですので、同時に処理しているように「見せかける」方法が必要となります。

というわけで、詳しくはこのページをよく読んでみてください。
http://homepage2.nifty.com/natupaji/DxL ... re1_1.html

また、毎回消してその度に描画、というといささか非効率に聞こえますが、画面書き換えに数秒かかった時代ならいざ知らず、今のパソコンでは必須です。その辺も上記のページとそのシリーズを見てよく理解しておきましょう。

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