クラスによる敵の制御について

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

クラスによる敵の制御について

#1

投稿記事 by SDD » 11年前

SDDと申します。今回はよろしくお願いします。お伺いしたいことがあり、トピックを立てました。

まず環境ですが、OSはWIN7で、コンパイラはVC++2008EEです。
C言語もC++も初心者です。

本題なのですが、以前、C言語とDXライブラリを使って、龍神録のサイトを参考に一通りSTGを作ったのですが、C++での製作をしたくなり、
また新しくSTGを作ろうと考えているのですが、ザコ敵の制御に悩んでいます。龍神録ではCSVデータを使って、それに記された行動パターンの
数値によって関数もパターン分けするというものでしたが、それをC++でやろうとしたとき、どういった方法があるのかを知りたく、質問いたします。

やはり、C++を使うからにはクラスを使いたいのですが、C++で敵の制御をするにはクラスの多態性をつかうなどと聞いたことがあるのですが、
龍神録で行った、CSVデータを使うという方法とはまったく異なってくるのでしょうか。

私自身、具体的なやりかたがわからず、提示できるようなコードもなく、ふわふわした質問になってしまって申し訳ないのですが、「こういうのやり方がある」というものがあれば
ぜひ教えていただきたいです。

よろしくお願いいたします。

Rittai_3D
記事: 525
登録日時: 12年前

Re: クラスによる敵の制御について

#2

投稿記事 by Rittai_3D » 11年前

C++で設計する前に、まずはc言語でオブジェクト指向のような設計をした方がいいと思います。
C言語初心者なら、まずはC言語のマスターから始めた方が良いのではないかと思います。

C言語(あらかた)マスター→Cでオブジェクト指向設計→C++勉強→C++で設計

と自分ならやります。

質問の答えになってないと思いますので、回答しますと、
龍神録プログラミングの館の一番下にDixqさんがC++で書いた龍神録がありますので、それをご覧になればどのような設計か分かると思います。

確か、自分の記憶が確かなら、読み込みクラス(ScrReader.cpp/h?)でcsvを読み込み、ScrPrm_t(?)を引数にとるコンストラクタに渡す、だったと思います。

結論は、C++でもCSVを使う(使える)。だと思います。
スマホから かつ 寝ぼけているので日本語がおかしい、もしくは意味不明なところがあるかもしれません。すいません。
初心者です

SDD

Re: クラスによる敵の制御について

#3

投稿記事 by SDD » 11年前

3D_3Dさん、回答していただき、ありがとうございます。
たしかにまずC言語をしっかり固めるべきですね・・・。

教えていただいた、管理人さんのコードを拝見しようと思います。
また、参考までにというか、好奇心から伺いたいのですが、CSVを使わない方法をとる場合ではどのようなものがあるのでしょうか。
Luaなどを使ったり、色々あるとは私も思うのですが・・・。

ご迷惑をおかけしますが、もう少しこのスレッドはオープンにしておきます。

Rittai_3D
記事: 525
登録日時: 12年前

Re: クラスによる敵の制御について

#4

投稿記事 by Rittai_3D » 11年前

何でもできると思いますよ。

館のCSVファイルは出てくる座標と体力、落とすアイテム、移動パターンのID(番号)などがコンマ区切りになっているだけです。
Luaを使用するのは、移動パターンそのものを書く場合が多いと思います。
たとえば、テキストファイルでも自分で決めたファイルフォーマットの通りに読み取ればできます。
初心者です

SDD

Re: クラスによる敵の制御について

#5

投稿記事 by SDD » 11年前

3D_3Dさん
ありがとうございます。

やり方はいろいろあるようですね。管理人さんのコードをしばらく拝見していたのですが、やはり初心者向けであり、手取り足取り教えてくれる
龍神録とは違い、いかにもプロのプログラムといった感じで今の僕には多くを理解することはまだできないようです。

ただ、C++であっても、基本的には龍神録と同じように、簡単に言ったらCSVをロードして、そのパターン番号の関数を読み込むという方法がとりあえず無難な感じなのでしょうか。
拝見させていただいたC++版龍神録もそのやり方だとお見受けいたしました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: クラスによる敵の制御について

#6

投稿記事 by softya(ソフト屋) » 11年前

3D_3Dさんに代わって答えますと、どれが主流かを判断するのは困難です。C++で開発されたとしても情報が公開されている確率が低いからです、
今やれる手法で作成して、技術力が上がれば独自の手法に移行していけば良いのでは無いでしょうか。
先人の知恵が自分にベストとは限りません。自分がベストなものを模索するべきかと思います。
csvやらコード直接実装、Luaやオリジナルのスクリプト言語、色々やりかたはあります。
主眼はバランス調整が容易にできる事なので、アプローチは実際には無限のパターンがあります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

SDD

Re: クラスによる敵の制御について

#7

投稿記事 by SDD » 11年前

ソフト屋さん、ありがとうございます。

なるほど、目的は同じでもやり方はいくらでもあるから、プロの方でもより良いものはないか試行錯誤されるのですね。
管理人様がたまたまCSVを使うことを考えたというだけのことなのですね。

ただ、やはり今できるやり方はこれまでどおり、龍神録・C++龍神録の、CSVデータをロードし、その番号によって行動パターンや種類やタイミングを
制御するというものしかなさそうです。

今回は質問に答えていただき、3D_3Dさん、ソフト屋さん、ありがとうございました。
今回はこれで解決にさせていただきます。

またお世話になるかもしれませんが、そのときもご協力いただけたら幸いです。

閉鎖

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