トップページ⇒tech
1001コメント372KB

C/C++言語でRPGを作ってみるスレ2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/07/09(土) 15:12:42
作りたい人がきてください。

まとめサイト
http://himatanuki.hp.infoseek.co.jp/
まとめサイト(Wiki)
http://gamdev.org/w/?%5B%5BC%2FC%2B%2B%B8%C0%B8%EC%A4%C7%A3%D2%A3%D0%A3%C7%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB%A5%B9%A5%EC%5D%5D

前スレ
C/C++言語でRPGを作ってみるスレ
http://pc8.2ch.net/test/read.cgi/tech/1114834076/

0232デフォルトの名無しさん2005/07/22(金) 18:57:27
>マップチップデータ

構造体の配列にするといいと思う。

struct CHIP{
 int image;
 int movable;
 int enemy_type;
};

class CMap {
 CHIP *m_pbyMap;
 …
}
02332072005/07/22(金) 19:23:37
>>231
>敵の出現情報とか(川の向こうとこっちじゃ出てくる敵の種類が違う、みたいなやつ)は、
>マップチップに持たせたほうがいいんですかね?

それは別にした方が良い(出現情報自体が、地形情報とは異質の一つの
マップになるから)のでは?

配列で持つなら

地形(表示用マップチップ)
遭遇する敵
イベント情報(イベント番号)

はそれぞれ別にする方がわかりやすいと思う。
0234デフォルトの名無しさん2005/07/22(金) 19:50:54
さて、色々といわれる速度ですが簡単な測定exeを作ってみました。
GDI+については良く分かってないもので適当ですが多分もっと早くなると思う。
DirectDrawとGDI_DDBが早いのはデバイス依存形式で
ビットマップを使っていて、かつビデオメモリにイメージがあるからです。
ttp://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/src/up0011.lzh
0235デフォルトの名無しさん2005/07/22(金) 22:58:58
>>234
GDI+はどうやっても速くならないと思う
0236デフォルトの名無しさん2005/07/22(金) 23:48:54
GDI+対応のアクセラレータが無いからGDI+は滅法おそい、って誰の話だったか
0237デフォルトの名無しさん2005/07/23(土) 00:55:37
MMOに挑戦してみてるんだが、こりゃ大変だわ・・・。
微妙にチャットできるようになったらUPします。
0238デフォルトの名無しさん2005/07/23(土) 05:19:34
>>232 >>233
どうもです。
そうか、構造体って手段がありましたね。
そのほうがわかりやすそうです。
マップエディタ作るまえに、最終的な仕様を決めとかないと
あとで大変なことになりそうですね。。
イベント情報もマップデータが持つのか。

マップチップ構造体
○絵
○敵のタイプ
○イベント情報
○なんか1ビットずつのフラグ

こんな感じになるのかなあ。
↑のやつだと、全部BYTE型ですみそうですけど、
念のためint型で宣言しといた方がいいのかなあ。
でもそれだとメモリいっぱい使いそうだし。

>>234
おつです。
やっぱ、けっこう差があるんですね。
ウチでもDirectDrawのビデオメモリverが異常に早かったようです。

>>237
うはww なんか、高レベルな感じ。
がんばってください。
0239デフォルトの名無しさん2005/07/23(土) 06:21:09
>>235
ttp://lamoo.s53.xrea.com/develop/gdiplus/gdiplus_blt.html
GDI+はここのBitmap-OFF と Bitmap-ONの状態で、
Cache-OFF Cache-ONを使えば1.5倍ぐらいになるのは目に見えてる。
内部はDIBだと思うのでその程度の速度にはなるはず。

基本的にGDI+はゲームにつかうためのものじゃ無いとは思うけど。
0240デフォルトの名無しさん2005/07/23(土) 06:37:00
>>238
仮に1チップあたり贅沢に16バイト使うとしても
たとえば50x50チップの町を表現するのに 40KBytes。
これは256色ビットマップ200x200程度の容量。ぜんぜん気にならない。

ちなみに SFC の RPGツクールでは、世界マップが 256x256 だった。
これだとちょうど 1MBytes 必要になるな…。今の PC なら気にならんだろうけど。
(それに1チップ16バイトも使わないだろう)

設計さえしっかりしてれば
メモリの節約なんて、完成の1歩手前でも十分間に合うから、
今は作りやすさを優先したほうがいいと思う。
0241デフォルトの名無しさん2005/07/23(土) 11:19:21
>設計さえしっかりしてれば
>メモリの節約なんて、完成の1歩手前でも十分間に合うから、


通常、それは設計がしっかりできていないというんだよ。
0242デフォルトの名無しさん2005/07/23(土) 11:56:53
ちゃちゃ入れるなや。勉強中なんだからどのくらいっつー感覚ないだろうしな。
それにちっと位贅沢設計でも問題ないだろ。
仮に出来上がったものが1Gbyte以上必須だとしても、それはそれで面白い。
ま、1Gは大げさだが256M位だったら問題なしだろ。
0243デフォルトの名無しさん2005/07/23(土) 13:32:20
いまどき設計でメモリのことなんかちまちま考える必要はない
それより重要なことがある

設計者として節約の感覚はあったほうがいいとは思うが、
ゲームやるPCのメモリは潤沢だろ
0244デフォルトの名無しさん2005/07/23(土) 13:45:00
大富豪プログラミング
0245デフォルトの名無しさん2005/07/23(土) 13:46:49
大貧民プログラミング
0246デフォルトの名無しさん2005/07/23(土) 14:44:08
だからまともなやつが育たない
0247デフォルトの名無しさん2005/07/23(土) 14:46:02
大富豪はな
0248デフォルトの名無しさん2005/07/23(土) 15:45:31
>>241
設計がしっかりしているとメモリの節約さえ柔軟にできないのですか?(ニヤニヤ
0249デフォルトの名無しさん2005/07/23(土) 15:51:34
日本語編だなあぁ。
設計がシッカリしているのがまるで悪いことのように思える文章だ。
0250デフォルトの名無しさん2005/07/23(土) 15:56:54
>>249
>>241
0251デフォルトの名無しさん2005/07/23(土) 16:02:26
ぐだぐだと御託を並べても始まらない。
まずは、完成させることが大事であるわけだが。
0252デフォルトの名無しさん2005/07/23(土) 20:09:17
>>251がイイ事言った。
0253デフォルトの名無しさん2005/07/23(土) 20:16:30
>>253はイイヤツ
0254デフォルトの名無しさん2005/07/23(土) 21:56:15
・・・・
0255デフォルトの名無しさん2005/07/23(土) 23:26:46
何だか、>>253で 雰囲気が一気に消沈した。

255ゲット。
0256デフォルトの名無しさん2005/07/23(土) 23:38:17
>>255=FF
0257みふね2005/07/23(土) 23:42:26
脳内メモリーは節約しておけ Noobどもが!
0258デフォルトの名無しさん2005/07/24(日) 01:59:55
口で言うより作ったプログラム(RPG)でアピールしる!
0259デフォルトの名無しさん2005/07/24(日) 12:07:47
3get
0260デフォルトの名無しさん2005/07/24(日) 12:28:14
つーかみふねさんじゃないですか!
ネトゲ進んでますか?
陰から応援してまつ。
0261デフォルトの名無しさん2005/07/24(日) 20:00:43
おこらないで ね おこらないで
好きにさせてね 大人にはわかんない
ステキ 奇跡 完璧(ハイ!
0262デフォルトの名無しさん2005/07/25(月) 19:08:57
氏牢徒に長編3DRPGは作れるのか。
0263デフォルトの名無しさん2005/07/25(月) 19:35:19
すでにできているプログラムをいじくりまわすのが一番楽しい。
それ以外は苦行です (T_T)
0264デフォルトの名無しさん2005/07/25(月) 19:49:18
一日中資料を漁り続けていると
さすがに気が滅入ってくる。(ハァ...
0265デフォルトの名無しさん2005/07/25(月) 20:19:57
ヒント:プログラマ
0266デフォルトの名無しさん2005/07/25(月) 23:55:15
>>262
悪いことは言わん
2Dの短編から作れ
0267デフォルトの名無しさん2005/07/26(火) 06:53:15
まとめサイト
http://himatanuki.hp.infoseek.co.jp/
の内容が更新されてないようだが、
いったいどうゆうマネかね。
0268デフォルトの名無しさん2005/07/26(火) 07:04:20
君の日本語は若干おかしい
0269デフォルトの名無しさん2005/07/26(火) 07:11:35
ゲームはアイテム等のデータを作るためのエディタ作りからはじめなければならない
そう思っていた時期が俺にもありました
今は反省して全てテキストファイルに手書きです
0270デフォルトの名無しさん2005/07/26(火) 07:47:35
まぁアイテムくらいならな…
0271デフォルトの名無しさん2005/07/26(火) 08:03:14
>>267程度なら諸概念をテンプレートライブラリとして構成できそう
お決まりのルーチンを一からコーディングするなんて無駄が大きすぎる
0272デフォルトの名無しさん2005/07/26(火) 11:59:45
今更だけど、出来れば、前スレのログを・・・
0273デフォルトの名無しさん2005/07/26(火) 15:13:37
>>272
http://himatanuki.hp.infoseek.co.jp/cgi-bin/uploader/upload.cgi
へtxt形式でうpしますた。
up0012.txtが該当ファイルです。
0274デフォルトの名無しさん2005/07/26(火) 18:45:34
>>262
>氏牢徒に長編3DRPGは作れるのか。

>>269
>ゲームはアイテム等のデータを作るためのエディタ作りからはじめなければならない

こんな考え方もありまする。

デザインの「悪い方がよい」原則 "Worse is Better"

http://chasen.org/~daiti-m/text/worse-is-better-ja.html
0275デフォルトの名無しさん2005/07/26(火) 19:07:11
じゃ〜、RPGより先にそっちのソフトを作れということ?
0276デフォルトの名無しさん2005/07/26(火) 20:55:42
ぶっちゃけ、RPG を含めてゲーム作りにセオリーなんて無い。
「こうしなければいけない」とか「こうするのがベスト」なんて一概には言えない。
10人いれば10通りの作り方があるのがゲーム作りであり RPG 作りだ。
耳学問をいくら積み重ねても絶対に作れるようにはならない。
唯一確かなのは他人のソースコードを参考にして自ら作ってみることだ。
それ以外に道は無い。
0277デフォルトの名無しさん2005/07/26(火) 21:01:51
RPGなんてこの世に産まれてからたかだか20年
数学なんて7000年以上前と言われてるんだから
0278デフォルトの名無しさん2005/07/26(火) 21:43:56
うう、ただただ時間が無い (ノω`)・゚・。。
0279デフォルトの名無しさん2005/07/27(水) 00:37:41
フレームワーク
0280デフォルトの名無しさん2005/07/27(水) 01:20:36
>279
それがどうした?
0281デフォルトの名無しさん2005/07/27(水) 11:47:50
.net Framework
0282デフォルトの名無しさん2005/07/27(水) 13:23:50
それがどうした
0283デフォルトの名無しさん2005/07/27(水) 13:26:14
人大杉なのか。
0284デフォルトの名無しさん2005/07/27(水) 14:53:31
ヽ(`Д´)ノ
0285デフォルトの名無しさん2005/07/27(水) 20:16:12
 ̄/ ̄ジー
0286デフォルトの名無しさん2005/07/27(水) 20:36:37
(・∀・)v
0287シープラ勉強中 ◆ryjMYLsfPA 2005/07/27(水) 20:50:08
http://49uper.com:8080/html/img-s/68300.zip

定期です。とにかく村人出してみました。
週に二回のペースで上げようと思ってたんですが、
無理っぽいです ノω`)・゚・。。
着手してそろそろ一ヶ月がたつというのに、終わりが見えない。。
8月中に完成させたいと思ってたのですが、絶望的な感じです。

次はなにをやるべきですかね?

音か・・描画か・・はたまた戦闘とか。。
マップエディタも作らなきゃだし、そえばメニューもまだ無いし、
村人はセリフをしゃべれないし。

てゆか、そもそも本来の目的である、クラスの使い方はこれでいいのか、
メモリリークは本当にしてないのか。

orz...
0288デフォルトの名無しさん2005/07/28(木) 00:29:58
乙。形になってきてるね。

残念ながらオブジェクト指向の持ち味はあんまり生かされてないぜ…
完成させるほうが大事だと思うのであんまり突っ込まないけど。

>音か・・描画か・・はたまた戦闘とか。。
>マップエディタも作らなきゃだし、そえばメニューもまだ無いし、
>村人はセリフをしゃべれないし。

絵をゴージャスにするとやる気が出る。これオススメ。
セリフ機能を入れるだけでプチ物語が作れる。これもやる気出る。
マップエディタを作ると疲れてやる気が消耗する。初めはテキストファイル手書きがオススメ。
0289デフォルトの名無しさん2005/07/28(木) 17:22:50
マップエディタってフリーのPlatinumとかで良いと思うんだけど。
0290デフォルトの名無しさん2005/07/28(木) 18:44:18
> 絵をゴージャスにするとやる気が出る。これオススメ。
> セリフ機能を入れるだけでプチ物語が作れる。これもやる気出る。
> マップエディタを作ると疲れてやる気が消耗する。初めはテキストファイル手書きがオススメ。
>>288の要望だなw
0291シープラ勉強中2005/07/28(木) 20:16:53
>>>288

オブジェクト指向・・。
今はカプセル化とか全然考えてなかったり ^^
最終的にはインターフェースっぽいの以外は隠蔽しちゃうのが
理想的だと思うのですが、私が雑魚なためにどれがインターフェースに当たるのかが
作った段階でイマイチ判断できないので、結果的に全部publicに置くことに・・

あと、オブジェクト間のメッセージのやりとりってのが全然わからないです orz
今は、たとえばマップ動かしたときPlayerの座標を修正する場合、
マップクラスのメンバ関数にPlayreをドーンと参照渡しして、
その中でPlayerの座標をバンバン変えちゃってるんですが、
これはオブジェクト指向的には大丈夫なんでしょうか?
うーん、よくわからず・・

提案してくれた「絵をゴージャス」にってのは私の画力では
不可能なのであきらめるとして、次はセリフに挑戦してみまっす!
とりあえず、

msg1:ここはアリアハンの城下町です。
msg2:北には洞窟があるらしいですよ。
msg3:スライムは弱いけど、おおアリ食いには注意してください。

みたいなテキストファイルを用意しといて、
村人にしゃべりかけたときメッセージの番号で判断して
しゃべらせばいいんでしょうか?
ファイル操作とかほとんどやったことがないので、メチャてこずりそう。
0292シープラ勉強中2005/07/28(木) 20:18:17

>>289
マップエディタはとにかく自分で挑戦してみて、ダメっぽかったら
それ使ってみます。ども。

子ウィンドウとか、どうやって出すんだろ。
あー、課題がいっぱいだわ。
0293デフォルトの名無しさん2005/07/28(木) 20:47:17
>>1さん、クラスって今いくつあるの?
0294シープラ勉強中2005/07/28(木) 21:11:44
>>293
誤爆?私のことなら、今10個ぐらいですけど。
0295デフォルトの名無しさん2005/07/28(木) 22:10:39
>>291
>オブジェクト指向
>オブジェクト間のメッセージのやりとり

例えとしては、
class Player{             //プレイヤークラス
    Position m_charaPosition; //メンバ変数 キャラクタの座標)
public:
    Position getPosition(){return m_charaPosition}; //キャラクタの座標を返す
    void setPosition(Position position){m_charaPosition = position;};//メンバ変数にキャラクタの座標をセットする
}
こんな感じ
Positionはユーザー定義の座標クラス(か構造体)
set〜で外から受けて、get〜で外へ渡す
メンバ変数を直接扱うと、間違った使い方をされてもエラーを返せないから
メンバ関数にしてエラーが出にくいようにしてやろうって事
本当はちょっと違うんだけどね
0296デフォルトの名無しさんNGNG
オブジェクト指向っていうのは、データと、それに関する操作を
クラスにまとめましょうっていうことですよ。
例えば、NPCなら現在の座標、どっちを向いているか、
グラフィック、会話データなんかをまとめるわけですよ。

オブジェクト間のメッセージというのは、
例えばNPCが移動したいとするわけですよ。
そうしたときに、マップオブジェクトに問い合わせるわけですよ。
「(x,y)に行ってももいいですか?」
「はい。いいですよ。」
とか。そんな感じですよ。
0297デフォルトの名無しさん2005/07/28(木) 23:13:49
オブジェクト指向はその人間の世界観や哲学による。
>>291が世界は神がチェスのごとく物体を動かすことで構成していると思うならその手法が最も自然である。
しかし物体が意思を持って自分の判断で歩いていると思うなら>>296のようにするのがいい。
0298シープラ勉強中2005/07/29(金) 19:38:53
>>295
ご丁寧にありがとうございます。
参考にしまっす!

>>296 >>297
うーん、メッセージのやりとりはそんなに限定的にやらなくても良さげですね。

座標を変えたい場合は必要なデータだけconstで渡して、
結果を戻り値でPOINT構造体あたりに受け取ったほうが
いいのかとか思ってたんですが、そうすると無駄にプログラムが長くなるし、
どうしようかと考えてました。

とりあえず今まで通り、オブジェクト全体を参照渡しする方法で行ってみます。
毎度毎度、どうもありがとうございます m(__)m
0299デフォルトの名無しさん2005/08/01(月) 04:39:47
( ゚Д゚)y─┛~~ どうよ?
0300デフォルトの名無しさん2005/08/01(月) 12:53:48
300ゲト
0301デフォルトの名無しさん2005/08/02(火) 09:07:40
とっとと夏休み中に仕上げやがれ!
0302シープラ勉強中 ◆ryjMYLsfPA 2005/08/02(火) 14:58:42
windows再インストールしたら、なぜかメモリが壊れた orz

http://49uper.com:8080/html/img-s/69247.zip
テキストファイルから、任意の文字列を読み込むプログラムを作ってみました。

msg:00000>0です!
msg:00001>aaa
msg:00002>(*^ー゚)b

てな感じのテキストファイルを用意して、

まずテキストファイル全体をメモリ上に読み込む →
メモリ上で「:」を探す → 「:」から「>」の間の数字を読み込む →
数字が指定された数字といっしょなら「>」の後ろの文字列を表示 →
「\n」まで表示されたら関数終了

という流れになってると思うんですが、
文字を出すだけならこれでいいでしょうか?
なんか無駄にプログラムが複雑になってるような気がするのですが・・。
0303デフォルトの名無しさん2005/08/02(火) 15:02:52
おいおい、そのテキストファイルを手打ちすること考えたか?
専用ツールを作るまではエディタで手打ちすることになるわけだが、
そんなフォーマットじゃ毎回毎回面倒だと思うぞ。
ついでに言えば、csvかtsvにしておくとExcelで一覧できるし何かと便利だぞ。
#と言うわけで、仕様にダメだししたのでソースは見ないw
0304デフォルトの名無しさん2005/08/02(火) 15:59:47
>>302
Cのソースからテキストデータだけを分離するのが目的なら
それでも構わんが…全くスマートでは無いw
まぁ、イベントをハードコーディングする方向でいってみるのも
勉強になるだろw
0305シープラ勉強中2005/08/02(火) 17:35:04
>>303 >>304
ひえー、なんか、めちゃめちゃアフォプログラムって言われてる気がww

>>201みたいなのは私には無理っぽいので、
仕様が決まるまでとりあえずテキストの書式は保留ということで ^^
てゆか、永久に保留しときたい・・

エクセルは触ったことないので、使わない方向で。
どもです m(__)m
0306C++初心者2005/08/02(火) 17:37:50
class CText{
 std::vector<std::string*> messages;
 bool LoadFile(char* fname){
  std::ifstream ifs(fname);
  char line[512], buf[512];
  int idx;
  if(ifs == false)
   return false;
  while(ifs.getline(line, sizeof(line))){
   if(strstr(line, "msg:") != NULL){
    sscanf(line, "msg:%d>%s", &idx, buf);
    messages.push_back(new std::string(buf));
   }
  };
  return true;
 }
public:
 CText(char* fname){
  if(LoadFile(fname) == false){
   std::cout << "失敗" << std::endl;
   exit(1);
  }
 }
 ~CText(){
  std::vector<std::string*>::iterator it;
  for(it = messages.begin(); it != messages.end(); it++){
   delete (*it);
  }
 }
 void Draw(int idx){std::cout << messages[idx]->c_str() << std::endl;}
};
暇なんでちょっと書き換えてみたお、どうなんだろ。
0307デフォルトの名無しさん2005/08/02(火) 18:57:51
>>305
こんな感じのをお勧めする。間の改行数自由で。そんな難しくはない。

:msg0
0です!

:msg1
aaa

:msg2
(*^ー゚)b
0308デフォルトの名無しさん2005/08/02(火) 19:05:26
だからぁ、フォーマットがダメなんだからコード以前だってば。
例えば、
msg.....1.......aaa
msg.....2.......(*^ー゚)b


みたいなんでいいじゃん。
#ドットのところはタブね。
それなら、1行分の解析もsscanf(line, "%s%d%[^\n]", ...)でいいし。
>306
文字列を%sにしちゃうと空白入れられないぞ。
そもそもmsgも固定でいいなら、
3.......orz
で充分だしね。
0309デフォルトの名無しさん2005/08/02(火) 19:09:18
あーそうか、RPGなら>307も自由度高くていいね。
私は文字列中に\nがあったら改行するなんて仕様をよく作るけど。
03103072005/08/02(火) 19:18:32
暇な俺が>>307のサンプル作りましたよ。鵜呑みにはするなよ。
こういうの初めてな人には数字読取のところで「??」ってなるかもしれんが、たぶん定石なので覚えるべし。

bool get_message(const char* in,int id,char* out)
{
 const char* p=in;
 char* q=out;
 int c,n;
 //
 while(p=strstr(p,":msg")){
  //数字までシーク
  p+=4;
  //数字読取
  n=0;
  while(*p>='0' && *p<='9'){ n*=10; n+=*p-'0'; p++; }
  //メッセージ
  if(n==id){
   //メッセージ先頭までシーク
   while(*p=='\n')p++;
   //メッセージ読取
   while(*p!='\n'){
    *q++=*p++;
   }
   *q++='\0';
   //成功
   return true;
  }
 }
 //失敗
 return false;
}
03113072005/08/02(火) 19:23:14
うはwww読みにくスwwww固定幅フォントにすればまともに読めるwwwのかwうぇww

使用例

int main()
{
 char in[]=
  ":msg0\n"
  "0です!\n"
  "\n"
  ":msg01\n"
  "aaa\n"
  "\n"
  ":msg23\n"
  "(*^ー゚)b\n"
  "\n";
 int id=23;

 puts(in);
 printf("--↑抽出(ID=%d)↓--\n",id);
 char ret[256];
 if(get_message(in,id,ret)){
  puts(ret);
 }else{
  puts("Error");
 }
}
0312デフォルトの名無しさん2005/08/02(火) 19:43:14
>>310
うはwwスゴイwww
なんかいろんな技がいっぱいつまってるww
めちゃめちゃ鵜呑みにしちゃいます!
0313デフォルトの名無しさん2005/08/03(水) 02:26:54
アナクロ……

こんな小手先の技術を覚えるよりも、スタンダードな文字列操作を覚えた方がましだ罠。
0314デフォルトの名無しさん2005/08/03(水) 02:47:44
>>313にとってのスタンダードってなんだ?
0315デフォルトの名無しさん2005/08/03(水) 02:51:04
そりゃぁあんた、std::string以外に何があると?
#>313がそう想定したかはしらんが。
0316デフォルトの名無しさん2005/08/03(水) 03:03:33
正規表現だとか構文解析を想像したんだけどstd::stringってなんだよw
0317デフォルトの名無しさん2005/08/03(水) 03:09:56
だから、スタンダードなストリングだろ?
だれも構文解析なんて話はしてないと思うのだが。
0318デフォルトの名無しさん2005/08/03(水) 03:28:25
>>313
std::stringべったりな厨は使い物にならん
基本的な文字列操作のアルゴリズムは覚えておくべき
0319デフォルトの名無しさん2005/08/03(水) 06:34:59
>>318
まぁC/C++を使うなら、Cの文字列操作も覚えておくべきではあるな。
しかし、メモリ使用量や実行速度に余裕があれば std::string をおとなしく選択するべき。
std::string を必要以上に毛嫌いするような態度は無用。
0320デフォルトの名無しさん2005/08/03(水) 07:21:55
構文解析においては生の文字列のほうがずっとスマートに書けると思う。
ここで std:string を使う利点はほとんど無い気がする。std::istream ならともかく。
0321デフォルトの名無しさん2005/08/03(水) 07:29:41
>>320
> 構文解析においては生の文字列のほうがずっとスマートに書けると思う。

なんで?
0322デフォルトの名無しさん2005/08/03(水) 08:27:52
少なくとも俺は std:string では
>>310と同じ機能のものを>>310以上にスマートに書くことができない。
0323デフォルトの名無しさん2005/08/03(水) 08:34:01
少なくとも仕事なら>310は不採用だが菜。
0324デフォルトの名無しさん2005/08/03(水) 08:36:54
その理由は?(\0をチェックしてないとかは無しで。サンプルなんだから)
0325デフォルトの名無しさん2005/08/03(水) 08:58:53
サンプルだからなんて言い訳は仕事じゃできないのだが……
サンプルとしてならどうでもいいよ。
0326デフォルトの名無しさん2005/08/03(水) 09:08:57
そもそもなんで仕事が出てくるんだよ…
0327デフォルトの名無しさん2005/08/03(水) 09:16:00
>310がスマートって言うのもあれだが、
仕事で使えないとか言うのもあれだな。
ここは一つ、>323(=>325か?)が仕事で使えるコードを出してくれるってことで。
03283102005/08/03(水) 09:24:46
>>323(=325?)
>>305が混乱しちゃあかんから極力単純に組んだわけだが。「鵜呑みにするな」と書いただろ?
目的を見失う奴のほうが仕事に使えない。
(初心者向けのscanfのサンプルに厳密なチェックを入れて読者を混乱させる奴は無能だ)
0329デフォルトの名無しさん2005/08/03(水) 10:09:45
メッセージを1つのファイル(テキストファイル内の1箇所)にまとめて置いておいて、それぞれにID割り振り、使うときにIDからメッセージ抽出して何かいいことありますか?
同じメッセージを何回も使いたいときは容量削減にはなるでしょうけど、非常に特殊な場合でしか使わないとおもうんですよ。。
ここはですね、単純に、msgという命令のあとにただ文章が続くと思ったほうがよいのではないかと、ぼくはおもうんですね。
ID方式にすると、開発者がイベントを編集してメッセージを発言させる命令を記述するときにIDとメッセージとの対応を把握しないといけなくなりますから。。。
しかしながら、>>302がどういうつもりで使用するのか知らないので、何か有効な使い道があれば教えてくださいな。
0330デフォルトの名無しさん2005/08/03(水) 10:18:19
キャラ0に話し掛けるとメッセージ0が表示される、みたいな。

それにしても君の日本語はなんだか読みにくいな。
0331デフォルトの名無しさん2005/08/03(水) 10:19:59
>>330
すみません。。MSDNを読んでるうちにこうなりました。。
■ このスレッドは過去ログ倉庫に格納されています