[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/28 14:30 / Filesize : 293 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++でFCのドラクエっぽいRPGを作る



1 名前:名前は開発中のものです。 [2007/11/02(金) 01:53:08 ID:M/fkomaJ]
C++の勉強をかねてFCのドラクエっぽい感じのRPGを作りたいんです。

しょっぱなからつまずいています、知恵を貸してください。

<<使用しているもの>>
BorlandC++
DXライブラリ
ドラクエフォント


DXライブラリはここ
ttp://homepage2.nifty.com/natupaji/DxLib/index.html

ドラクエフォントはここ
ttp://slime4.hp.infoseek.co.jp/font/font.html






273 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 11:17:05 ID:cowMx0h2]
おまえらMeiryoKe_Consoleでソース印刷オススメ。
プリンタの設定いじれば2.5ポイントまで小さくしても識別できる。
段組4段くらいで両面印刷すると1MBくらいのソースでもA4用紙数枚に収まるぞ。
2000行どころか20000行あっても余裕

274 名前:名前は開発中のものです。 [2007/12/26(水) 15:10:48 ID:50qxxoia]
>>273
やっぱ印字して管理かぁ
極力分散化して、仕様書なしで開発してるけど、もう限界かな;

275 名前:名前は開発中のものです。 mailto:sage [2007/12/26(水) 15:46:09 ID:SCmg4E2p]
YOzFontOTWLが好き

276 名前:255 mailto:sage [2007/12/26(水) 21:36:50 ID:U+VPBuDi]
>>266
プリプロセッサの定義ってのは、簡単にいうと#defineでの定義ってこと。
_DEBUGとかのね。VisualStudio2002くらい(?)までは、同じスコープにint i
を使ったforループが二個あるとコンパイルエラーになってしまうので、
それを回避するためのマクロをソースコード外で定義してる。
最近のVCを使ってる人は問題なし。

配布されているexeはちゃんと動いてる。
ただ、俺の環境ではそうなっちゃってるんで、自分でビルドしてみたけど
同じ症状が出ちゃってる人は、こうすると、とりあえず動くよって話。

俺もリファクタリングしちゃろうかなと思ったけど、C++じゃEclipse使っても
名前の変更くらいしかできんのでアレだね。
Javaはいいぞ。IDEのリファクタリング機能が充実してるから(C#もらしい)

277 名前:名前は開発中のものです。 [2007/12/27(木) 18:56:27 ID:niNmKkqY]
Windows + EclipseでC++開発ってできるの?
できるなら俺もそうしたいが…。
Cygwin入れないと駄目だYOね…やっぱ…。

278 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 19:25:50 ID:StfaQThG]
いや普通に出来たと思ったが。>>Eclipse

でもC++ならVC++かDelphiでいいんじゃね?
VC++もExpress Editionなら唯だし。

279 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:34:33 ID:5OqnPp7P]
>>269
なんという俺ww

280 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:50:02 ID:kJ7Tc5xf]
VCEEてどとねとしか作れなくね?

281 名前:名前は開発中のものです。 mailto:sage [2007/12/27(木) 23:55:21 ID:rPpTSPbm]
>>280
お前みたいな素人でもWin32のソフトが作れるようになったから
ダウンロードしてインスコしろ
www.microsoft.com/japan/msdn/vstudio/express/

VC2005EEでもちゃんと手順を踏めば作れたが
VC2008EEは勝手にインスコしてくれる
ミクロソフト様に感謝汁




282 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 17:46:11 ID:bBukVEqP]
linuxでも動くようにSDLかirrichtでおk

283 名前:名前は開発中のものです。 mailto:sage [2007/12/28(金) 21:00:05 ID:vFKC9i1/]
>>282
釣りか?
突っ込み所満載なんだが

284 名前:名前は開発中のものです。 mailto:sage [2007/12/29(土) 00:13:30 ID:E8hFcf4X]
DXライブラリの画像置き換えとかどうすればいいんでしょうか。

285 名前:名前は開発中のものです。 [2007/12/29(土) 21:57:12 ID:Wv0RLQJj]
ほす

286 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:19:42 ID:BeUezp3c]
【目指せ】2ch_city【世界一】

■以下のURLを踏めば街が発展する

・人口 2chcity.myminicity.com
・工業 2chcity.myminicity.com/ind
・交通 2chcity.myminicity.com/tra
・治安 2chcity.myminicity.com/sec
・環境
・ビジネス

工業以降は人口の増加に比例して選べるようになる

■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう

■参照画像
www.uploda.org/uporg1178757.jpg
www.imgup.org/iup528827.png
www.vippers.org/img/uho2118.png

2chの力で世界1位を目指そう(`・ω・´)

287 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:49:10 ID:+C5YkyEz]
>>286
うぜえな
このコピペあっちこっちで見るし
よっぽど暇なんだな


288 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 00:55:37 ID:xBMBsl4k]
つか、xipとか名乗るのが来ている時点で、
このスレにもこんなのが出入りしているんだなぁと幻滅。

289 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 10:19:34 ID:D5MQ9R0C]
非2ch民乙

290 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 13:36:17 ID:FTDXJbxl]
運営が推せと言ってるわけでもないし
そもそも2ちゃん関係の街がいくつもあるだろ

291 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 13:47:05 ID:bQOjHSJq]
2ch発にこだわるバカだろ



292 名前:名前は開発中のものです。 mailto:sage [2007/12/30(日) 20:57:55 ID:vox8eoxh]
【目指せ】2ch_city【世界一】

■以下のURLを踏めば街が発展する

・人口 2chcity.myminicity.com
・工業 2chcity.myminicity.com/ind
・交通 2chcity.myminicity.com/tra
・治安 2chcity.myminicity.com/sec
・環境
・ビジネス

工業以降は人口の増加に比例して選べるようになる

■発展のコツ
単に人口だけを増やしても、街は発展しない!
失業率が増えると人口が減ってしまうので、バランスよく発展させよう

■参照画像
www.uploda.org/uporg1178757.jpg
www.imgup.org/iup528827.png
www.vippers.org/img/uho2118.png

2chの力で世界1位を目指そう(`・ω・´)


293 名前:1 [2007/12/31(月) 23:48:38 ID:FFzcA1fJ]
年末の行事に追われてなかなか作業が難航してますが、挫折したわけではないので見捨てないでください。

それでは おまいら よいお年を。

294 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 00:16:46 ID:6htQfom6]
>>1 は にげだした

295 名前:名前は開発中のものです。 [2008/01/01(火) 12:44:38 ID:bYZxBYfp]
ドラクエの逃げる効果音は秀逸

296 名前:名前は開発中のものです。 mailto:sage [2008/01/01(火) 15:44:46 ID:0nVkScXG]
久々に来たがもう二ヶ月続いてるのか
うまくいけば年内には最低限ガワくらいは出来るんじゃないの?

297 名前: [2008/01/02(水) 13:30:49 ID:MAyGlp63]
あけましておめでとうございます。

あんまり進んでないけど久しぶりのUp。
「わたす」をとりあえず実装したものの、まだ動作が変。
自分に渡すと「わたすふりをしたが…」って表示しなくちゃだったよね。

tp://sakuratan.ddo.jp/uploader/source/date65133.lzh


298 名前:1 [2008/01/04(金) 04:25:06 ID:4fMs9e5G]
フィールドのアイテム関連の実装です。
じぶんにアイテムを【わたす】と わたすふりをしたが〜 と表示されるようになりました。
【やくそう】が使えるようになりました。

tp://sakuratan.ddo.jp/uploader/source/date65379.lzh

CommandsField::giveControl()が極端に長いのが嫌です。
switch文の多様でインデントつけると逆に見づらい、みたいな現象ですが、
各コマンドごとに関数に切り分けるべきでしょうか?

アイテム使用時に
use(MsgCmd *,Character *user,Character *target,int partyState);
みたいな感じにしたかったけど、Useable.hとCharacter.hがお互いをインクルードしなくちゃいけないので無理でした。
今のところCommandsFieldクラスで無理やりやってるけど、あんまり美しくないですよねぇ…。


299 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 14:01:08 ID:aDuyr57S]
Sugeeeeeeeeeeeeeeeeeee

300 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 14:31:35 ID:OF7wpiKh]
>>298
ソース読んでないけど、互いにincludeさせられないのなら、
UserクラスとTargetクラスを作って、
CharacterクラスがUserクラスとTargetクラスを継承すれば、
Useable.hにはUser.hとTarget.hをincludeして、
Character.hにはUserable.hをincludeすればいいので、
use(MsgCmd *,User *user,Target *target,int partyState);
みたいな感じになって(゚д゚)ウマー

301 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 14:59:40 ID:0MJJiUxP]
ファイル分割と前方宣言を駆使すれば
循環インクルードは回避できるYO!



302 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 15:08:51 ID:0MJJiUxP]
あ、今回のは循環インクルード問題じゃなくて相互参照の問題だった

303 名前: [2008/01/04(金) 17:31:29 ID:4fMs9e5G]
>>300
確かに回避できますが…
HPやらNameやらを全部実装させないといけないので、あんまり意味がないような気が…
実際Characterを継承しているPCクラスがItemBoxを持っているので、ヘッダを別ければいけるんですが、
つかうと独自に設定したメッセージを表示できるアイテムとかを作れるようにしたいので
なんちゃってスクリプトの方に投げる形式にすることにしました。
static Useable::outMsg , who , to を作ってFieldクラスから命令文、使用者、対象者を見れるようにして

Field::iventPriProcess(std::string*)で
"<UserName>" とかを使用者の名前に変換して命令文を実行するようにしました。
PriProcess関数を使うと普通の村人の会話を作る時に先頭の人の名前を呼び出せたりできます。

Useableを自作スクリプトで解決する以上、
戦闘中のアイテム使用や、呪文使用も同じ方法で解決しなければいけないため
FieldとBattleFieldの上位クラスを作って継承させるか、
それぞれに独自に実装させるべきか迷ってます。
もしくは両方つかって、共用部は親クラスで、専用部は子クラスで実装すべき?
書いててわけわかんなくなってきたので 頭冷やしてきます。

tp://sakuratan.ddo.jp/uploader/source/date65423.lzh



304 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 18:14:08 ID:uTfk0Xu7]
>>298
メンバは基本ポインタのみにすれば
前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
というか実体を持たせるとそのクラスを作成したときにメンバに実体を持っている
クラスのインスタンスも作成されて複雑になってくると問題が発生しやすいので
基本的には単にデータをまとめたようなクラス以外はポインタで持つのが基本。
ゲーム作るのと平行してC++の勉強をもっとした方がいい。

305 名前:名前は開発中のものです。 mailto:sage [2008/01/04(金) 19:53:41 ID:OF7wpiKh]
>>303
まずはそれぞれ独自に実装して、共通する部分が多いなら分離してクラス化すべし。
最初から共通部分を使いまわすことを前提に作ると、かえって冗長な部分が多くなって失敗することがある。

コードの美しさが気になるなら、リファクタリングとかデザインパターンを勉強するといいかも。

306 名前: [2008/01/04(金) 20:22:51 ID:4fMs9e5G]
>>304
基本型以外のメンバ変数はなるべく作らずにするべき、という事でしょうか?
class TestClass{
public:
int x;
};

class TestMain{
 private:
  TestClass obj;
 public:

  void setObj(TestClass *obj){
   this->obj = *obj;
  }
×
  void setObj(TestClass obj){
   this->obj = obj;
  }
};
こんな感じですか?
でも、前置宣言だけで、継承元のクラス以外のファイルはincludeする必要はない。
って言うのが いまいち理解できなくて… Orz
すみません Orz

307 名前:名前は開発中のものです。 [2008/01/04(金) 20:27:35 ID:4fMs9e5G]
>>305
なるほど。確かにそんな感じがします。
個別に作っていって見ますね。
デザインパターンはGofは買ったんですが、半分くらいしか読んでねぇ。Orz
経験を重ねて、どう便利なのか理解しないと、身にならないなー、と実感してる次第でございます。

308 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 10:54:21 ID:NGmgLj5+]
Gofはひととおりどんなパターンがあるのか目を通しておくだけで、
あとは必要に応じて辞書みたいに引くんでいいと思う。
「ここはもっと綺麗に実装できなかな?」と思ったときにちょうどいいパターンがないか探す感じで。

最初からパターンどおりに作ろうとするとこういう罠にはまることがある。

「ここはコマンド機能だからCommandパターンで作ろう!」
 ↓
「あれ…? なんでこんなに面倒な構造にしなきゃいけないんだ…?」
 ↓
「せっかくデザインパターンを適用したのにちっとも効率良くならない。やっぱデザパタなんて糞だな。」

309 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 12:52:55 ID:6sNkPPyH]
>>308
でも、それができるのってある程度以上パターンを実際に見たり使ったりして
ある種のとっかかりがあればの話じゃないかなぁ?

なんというか、最低限の所は抑えておかないと部分的に”より綺麗な実装”とかって困難な作業じゃん。
下手したら、一から作ったほうが早かったりするし。


310 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 18:06:17 ID:TQ5K8a3c]
深く考えるとゲームを作るというよりも、
パターンを実装するのが目的になってゲームが作れないという。

311 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 20:47:44 ID:6fbMpELT]
>>パターンを実装するのが目的になってゲームが作れない
あるあるw



312 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 20:50:04 ID:ycLLo6O8]
パターンとゲームエンジンは危険

313 名前:名前は開発中のものです。 mailto:sage [2008/01/05(土) 23:48:21 ID:CJpqsrn9]
デザパタとかアホが参考にするもんだろ

314 名前: [2008/01/06(日) 01:17:33 ID:8z3cTay0]
今の僕がまさにその状態かもしれません。
ま、仕様も決めずにできるところからはじめたので、
詰まるだろうな、とは思ってましたが、リファクタリングってつらいですねぇ…
SEに完璧な仕様を求めるのも不可能だし
仕様書が変更されすぎてデスマーチなPGも気持ちも理解した。

本当はPartyクラスとかItemListクラスとかはSingletonパターンを使ったほうがよかったんだろうなぁ…

315 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 02:12:10 ID:7m3sm5Xq]
>本当はPartyクラスとかItemListクラスとかはSingletonパターンを使ったほうがよかったんだろうなぁ…

それ罠。
「デザパタが使いこなせるようになれば上級者になれる」というのがそもそも迷信。
デザパタは銀の弾丸じゃない。
コーディングに後悔は付き物。迷うくらいなら今の設計で進んだほうがいい。

あと、リファクタリングは本来楽しいもの。
つらいと感じるようならリファクタリングのやり方が間違ってる。
アジャイルとかextreme programmingとかxUnitについて調べてみ。

316 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 03:12:38 ID:0uUhrKJm]
さんざんガイシュツネタなんだが
デザパタはクラス設計をする上で(その当時は)頻繁に発生する設計を
うまく抽象化(これ重要。そのまま使えるわけではない)して名前をつけただけ。
主に設計者同士のコミュニケーションの役に立つ。
デザパタがそのままの形で設計に現れてくるケースは
実はそんなに多くない。大抵は状況に合わせて変形されていたりする。
またデザパタはC++に特化されたものではない
(ポインタとかテンプレートとかシラネ)ので過信は禁物。
正直言ってクラス設計の基本パターンを全てここから引いてくると
コードは酷いことになると思っている。
それよりかは熟練者のコードを読んだほうがいい。
デザパタは継承ありきの設計だが、
現在は不要な継承はできるだけ避けるべきとする設計手法もある。


もっと根本的には設計の技術は単なる道具。
重要なのは「設計思想」であって、
つまりなにがしたいのかと言う事。
例えば目的がコードを綺麗でシンプルにする事である場合、
デザパタを使った結果としてコードが複雑に読みにくくなったのなら
その道具はこの場合役に立たないということだ。

317 名前:名前は開発中のものです。 [2008/01/06(日) 15:15:00 ID:SZ5sx4fN]
ドラクエと関係ないな
実践の伴わない理論なんかどうでよい


318 名前:名前は開発中のものです。 [2008/01/06(日) 15:21:05 ID:SZ5sx4fN]
つか
ドラクエすれ
多すぎね?まとめろよ

319 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 16:43:22 ID:/HrmMcya]
既に立てられたスレをまとめるって具体的にどうすんのよ

320 名前:名前は開発中のものです。 [2008/01/06(日) 17:12:30 ID:SZ5sx4fN]
削除依頼出すなり
下げて落とすなり出来るだろ
何年かかるかは知らんが

それぞれのスレも
どうせ、この板の住人なんだろうから見てる奴も
かぶってるだろうしな


321 名前:名前は開発中のものです。 mailto:sage [2008/01/06(日) 17:57:28 ID:DM+h60cC]
最終書き込みから5年近く生存してたスレもあるわけでw



322 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 01:02:22 ID:YQu/Z7rd]
削除人はあなた方の消しゴムではありません

323 名前:1 [2008/01/07(月) 02:53:31 ID:4zheO+Ql]
とりあえず 戦闘中に薬草が使えるようになりました。
攻撃のダメージ計算の結果がマイナスの時にHPが回復するという間抜けなバグを修正しました。

tp://sakuratan.ddo.jp/uploader/source/date65782.lzh

アイテムを増やしていろいろ実験してみなくちゃな。破損率とか。
次は装備を実装してみたいと思います。


324 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 20:59:30 ID:yiUETlQX]
すげーよ、がんばれ

325 名前: [2008/01/08(火) 08:00:58 ID:28otzPtg]
装備実装とか言っておきながら、戦闘順番の修正をしてました。
すばやさを−25%〜25%の補正をかけて、補正後の値の大きい順番で行動します。
ただのバブルソートです。

tp://sakuratan.ddo.jp/uploader/source/date65958.lzh

326 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 09:52:24 ID:D3pjyDXl]
テスト

327 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 17:10:35 ID:JvrNAlpQ]
あぷろだにアクセスできないな
ddo.jp/には行けるんだけど…

328 名前:名前は開発中のものです。 mailto:sage [2008/01/08(火) 17:55:44 ID:Y5Es8nAh]
sakuratan時々アクセスできなくなる。
しばらくすると復旧するからしばし待てばよし

329 名前:名前は開発中のものです。 mailto:sage [2008/01/09(水) 03:23:20 ID:yeQM8ZEN]
濁点が<
なのがなんか泣ける
でもそんなの関係ねぇ〜

がんばれ

330 名前:1 [2008/01/09(水) 08:13:12 ID:HAK5lZLN]
とりあえず 装備しているものに E がつくようになりました。
でも、攻撃力とかは上がってません。
戦闘時にすばやさで行動順がかわるようになりました。

tp://sakuratan.ddo.jp/uploader/source/date66027.lzh

331 名前:名前は開発中のものです。 mailto:sage [2008/01/10(木) 22:36:10 ID:1zT0fMGD]
ここのスレを見て、
>>1の晒したEXEを実行してみた。

 コマンド部分はまだ完成度は低いのかな…?
コマンド>つよさ>じょうたい と選んでいったときに、
「MetaCmd::getWidth()が適当な実装です」と出てくるが、OKボタンを押しても
しつこく出てくるのだけは勘弁…(ノд`
(未実装なら、エラーメッセージを出して強制終了 ぐらいはしてもいいかな…?と思うけどw)

それでも、形になっているみたいなので、負けてられんなと思ったよ。
>>1よ、がんがってくれ!


自分も、昔VBで作ったRPGをVCとDirectXでリメイク中だが
勉強の為にライブラリから自作しとるので、何にも形になっとらん…orz







332 名前:1 [2008/01/10(木) 22:59:37 ID:kdi+SJlD]
装備品の能力上昇を実装しました。
ドラクエフォントをインストールしていない場合に警告が出るようになりました。
つよさをみる のステータス詳細画面に装備品が表示されるようになりました。
IventScriptに【Goto】と【Label】と【If】(HasItem)と【Div】を実装しました。
これによってアイテムフラグで進む簡単なストーリーなら作れます。
破損率99%以下の物の破損時「おともなくくずれさった…」と表示するようになりました。

とりあえず、ストーリーはおわりです、というメッセージが表示されるまでの
ミニストーリーを作ってみました。
ちょっとテストのつもりなので、おもしろいとか面白くないとか言わないでくださいね。

メモ帳でEditしたんですが、このスクリプト結構見づらいです。(インデントつけられないし
がんばって専用のエディターも作らなくっちゃ、ですね。

tp://sakuratan.ddo.jp/uploader/source/date66194.lzh
次は戦闘中の武器持ち替え対応か
→ はい
   いいえ
の選択窓か
あと呪文?

の前にフィールドでそうびコマンドの実装だな Orz


333 名前: [2008/01/10(木) 23:07:07 ID:kdi+SJlD]
>>331
あれ?ほんとだ(汗
いままでちゃんと表示されてたはずなのにOrz
332でUpしたやつも同じ症状に陥るので、修正版を出すまで【つよさをみる】をしないでください。
未実装の部分は、選択してもなにもおこらないようにしてあるつもりなので(強制終了すると、僕も困る)
つっこみサンクスです。


334 名前: [2008/01/10(木) 23:10:21 ID:kdi+SJlD]
バグが出るのは【つよさをみる】じゃなくて【じょうたい】でした。
そういえば、実装しようとして、中途半端なまま忘れてたんだ Orz
実装してきます。Orz


335 名前:1 [2008/01/11(金) 00:06:11 ID:Jjm7Zu81]
つよさ->じょうたい のバグっていうか、放置プレイだった箇所を修正しました。
そういえば、「うんのよさ」の使い道ってなにもなし、だったかしら?
雰囲気だけでつけたとかって話を聞いたことがあるんですが…
でも、それじゃアレなので、なにかつけたいと思います。
何か利用方法ある?
宝箱のドロップ率アップくらいしか思いつかないや。

あ… 宝箱おとすとかも実装しないとな…

tp://sakuratan.ddo.jp/uploader/source/date66205.lzh

336 名前:名前は開発中のものです。 [2008/01/11(金) 22:37:41 ID:8z4xaIl1]
すげーことやってんなw

337 名前:1 [2008/01/12(土) 00:28:36 ID:WDlhVTgQ]
どうぐ->そうび から装備できるようにしました。
普通の装備コマンドはまだ未実装です。
戦闘中に攻撃用アイテムが使えるようになりました。
複数攻撃できるようになったのは、かなり興奮しました。

もうちょっとしたら じゅもん の実装に取り掛かろうと思うのですが
じゅもんの並べ方をどうしようか迷ってます。
案@DQ3方式
職業ごとに呪文テーブルを用意する。
転職などをして、他の職業の呪文を覚えたら
じゅもん->しょくぎょう->呪文選択
という流れで選択する。
○空白が埋まらないイライラがなくなる
×手間がかかる。 DQ6方式の転職には対応できない。

案ADQ6方式
全呪文を網羅したテーブルを用意しておく。
○ 用意するテーブルが一つで済む。
× 人によっては埋まらない空白ができてしまう。

説明のしかたがへたくそだなぁ… Orz
tp://sakuratan.ddo.jp/uploader/source/date66269.lzh

338 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 09:13:21 ID:nuc01uN3]
おまいが作りたい方で作れ。
やっていることはFCドラクエの移植じゃなく、スレタイのように
「ドラクエっぽいRPGを作ること」だろうから。

339 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 09:53:41 ID:b7SQU1lN]
じゅもんに番号つけて前から順番に並べるっていうのじゃあかんの?

340 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 19:40:34 ID:84T2Ztwg]
うpは週一くらいにしとけよ
こんな過疎板のスレで誰もいちいち落として見てねえだろ
はっきりいってろだスペースの無駄遣い

341 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 20:09:55 ID:VCz2GVdS]
差分うpでもいい気がするけど、モチベ維持にいいだろうしペースはうp主次第でいいんじゃね?



342 名前:名前は開発中のものです。 mailto:sage [2008/01/12(土) 21:00:00 ID:PD5xMP0i]
過去40万年の気温変化
ttp://www.teamrenzan.com/archives/writer/nagai/human_innovation2.png

343 名前:名前は開発中のものです。 mailto:sage [2008/01/13(日) 21:47:31 ID:CoopjDr1]
時間かかってもちゃんとやれてるってのが偉いな
俺もこういう事やろうとはしたがすぐ飽きて挫折してばかりだ。

それはそうと、配布zipにobjファイルは別にいらんと思うんだが
exe作った後に消すか別フォルダに作るよう設定した方がいいんじゃないか。

344 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 03:31:18 ID:SVRk/AgR]
俺は作りながら見せるってのがすごいと思ったよ
俺はβ的な所まで形になってから公開する予定…

345 名前: [2008/01/14(月) 06:17:05 ID:aSQurjHs]
【そうび】コマンドを実装しました。
思ったよりはすんなりできたかもしれない。

tp://sakuratan.ddo.jp/uploader/source/date66552.lzh

>>338,339
 呪文に番号をつけて並べることにします。れすさんくす><

>>340,341
 自分的にひと段落のところでUpしていかないとモチベーションが… Orz
 でも、ろだの無駄遣いは、おっしゃるとおりかもなので、次回から更新ごとに削除することにします。
 え?OpenSVN? 英語が読めなくて結局使い方が… Orz

>>343
 たしかに、objはいらないですねぇ…
 サイズ減らすためにも消すことにします。(忘れたらごめんなさい。
>>344
 誰かにレスつけてもらうと、モチベーションあがってくるんです。
 多分、僕みたいなタイプが一人でやろうとすると、形になる前に終わってしまう気がするので


346 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 18:09:01 ID:PQcWfF1X]
>>345
簡単な配布用サイトを作って、このスレで逐一更新報告するのは駄目なの?
ろだの無駄遣いを気にせず、モチベーションも維持出来るぞ

347 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 19:50:06 ID:UuCFVpAj]
>>344
それが普通だと思うよ

348 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 22:32:53 ID:G0SwQqXv]
この板の普通といえば逃亡だろ

349 名前: [2008/01/15(火) 00:38:48 ID:V3xzM7xj]
俗に言うまとめサイトですか…
作ったことないんだよなぁ…
いざ作るとなると、そっちに全力費やして、本来のものがおろそかになりそう…

350 名前:名前は開発中のものです。 [2008/01/15(火) 00:43:14 ID:C2FoLMEe]
そんなもの完成するまで作る必要なし

351 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 00:43:26 ID:AtQAfnor]
管理きにしないでやるならどっかのブログスペース借りればいいけど
気にしないでやりたいようにやればいいと思うよ



352 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 11:48:24 ID:tFhP1thC]
変にまとめサイトとか作ったとたん放置されるのが基本だから
現状維持OK

353 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 19:17:28 ID:TKI/oqBM]
>>1が頑張っている様なので、
俺もソース読んでアドバイスしてみる。
長文なので、長いと思ったら適当に読み飛ばしてくれ。

1.
Character.hとかで使われているフラグはbool型を用いたほうがいいな。
C言語ならintで代用するのは分かるが、せっかくC++を使っているんだから。

2.
C++ならポインタより参照(&)を出来るだけ使うべきだ。
ただし全てのポインタを置き換えられるわけじゃない。念のため。
だが、ソースコードも結構な量があるから大変だろう。
勉強して、置き換えたいなと思ってからやればいい。

3.
引数にポインタや参照を用いる場合、
引数にもconstをできるだけ付けるように気をつけたほうがいいと思う。
変数の入出力がよく分かるようになるから。

4.
クラスのメンバ変数名が大文字だったり、小文字だったり統一されていないようだけど、
普通は定数を大文字にするよね?
混乱するので書き直したほうがいいと思う。


354 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 19:18:51 ID:TKI/oqBM]
続き

5.
int Character::decreaseHP(unsigned int i)
とか、妙なところでunsigned intを使っているけど、
できればintに統一したほうがいいと思う。
怖いのはunsigned int とintが混ざって値がおかしくなることだから。

6.
所々でvoid *を見かけるけど、普通は使わないと思う。
あまりソース見てないから、絶対必要だという理由があれば教えてくれ。

7.
方向を0や1や2で管理しているけど、できればenum(もしくはconst)を使って欲しいなあ。

8.
.hにもgetter/setter程度なら定義を書いたほうがいいと思う。
どうしてもという理由があるなら別にいいが。
.hに書いた関数はinline展開されるから簡単な関数なら実行速度が上がるぞ。


355 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 19:22:55 ID:TKI/oqBM]
悪かったところばかり挙げていると、
>>1がへこんでしまうだろうから、最後に良かったところを挙げる。

1.
DXLibを使っているとはいえ、
数ヶ月でここまでのRPGを作ったことは素直に凄い。

2.
ゲームプログラミングだと、描画関連で苦労するので、
ライブラリを使用したのはある意味正解。

3.
C++経験が少ない割には
ソースがそれほど汚くはない。

4.
クラス分けが継承を使って、きちんと出来ている。

以上、長文スマソ。
昔からRPGを作りたかったが、結局作れなかった俺は>>1を応援しているよ。

ついでに報告しておくと、DragonQuestImitation,
俺の環境ではXボタン押して終了したのにプロセスが残っていたぞ。
多分リソースをリークしている。確認したほうがいいのでは?

356 名前:名前は開発中のものです。 mailto:sage [2008/01/15(火) 23:48:33 ID:UO44uzzc]
Window閉じたけどpostpuitしてないって奴か?

357 名前: [2008/01/16(水) 08:09:07 ID:aNkfkNcc]
>>350-352
 たしかに、まとめサイト作った瞬間に半端な達成感で放置しちゃいそうですね。
 現状維持で逝きたいと思います。

>>353
 レスありがとうございます。
どれも気をつけるべきことばっかりなので、とても参考になります。
void * についてですが
MetaCmdクラスでつかってます。
MetaCmd::type で受け取った文字列によって void *valuableが
PlayerParty* だったり MonsterParty * だったりItemBox * だったりするので
それぞれ専用のポインタ変数を用意しなくてもいいようにしたかったんです
でも、エラーを避ける、という意味ではなるべく使うべきではないんでしょうね。
なんか便利そう、使って見たい! って思ったのもあったんです(ぉぃ

Xボタンで終了に関してですが、僕のPCでは確認できなかったので
どの場所で押したか教えてもらってもいいですか?

>>356
postpuitってなんでしょうか? すみません、ググってもでてこなかったんです Orz

358 名前: [2008/01/16(水) 08:15:36 ID:aNkfkNcc]
つよさ -> ならびかえ を実装しました。
職業による装備判定を実装しました。
いまのところ てつのたて と てつかぶと は
ゆうしゃ は装備できますが そうりょ は装備不可です。

tp://sakuratan.ddo.jp/uploader/source/date66751.lzh

次にすべきは353さんの言ってたことを中心にリファクタリングかなぁ…

359 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 08:16:39 ID:9K3RdyGz]
ごめ、post"q"uit w

360 名前:353 mailto:sage [2008/01/16(水) 13:42:54 ID:StPDBBfO]
postquitとは多分PostQuitMessage()のことだろう。
ただ、ソースを見たところ、ウインドウプロシージャを使わずに、
DxLib_End()とかを呼び出しているようなので関係ないのかな。

ちなみに最新版でもう一度やってみたが、
戦闘中でXボタンで強制終了させるとリソースリークが起こるようだ。
移動中やタイトルでは起こらなかった。

361 名前:名前は開発中のものです。 mailto:sage [2008/01/16(水) 17:11:20 ID:dnCNkhgK]
>>360
ソース見てないから、適当な発言だが

それって、単にDXlib側の終了命令の時に
終らせるべきモノを終らせないで、普通に終らせちゃうから
リソースリークしてるだけでは?
どっかで、なにか取得または確保したのを自動開放してくれないのに
そのまま落としてるとかさぁ



362 名前: [2008/01/17(木) 08:14:24 ID:HCFfaCxW]
多分PostQuiMassageの代わりがDxLib_End()だと思います。
無限ループは、キー入力待ちの状態のはずで
キー入力はPlayerPartyクラスのsetInputKeyで行われていて
setInputKey関数内で、ProcessMessage()を呼び出していて
×ボタンを押すとProcessMessage()が-1を返すんだと思います。
-1が返ってくる時はsetInputKeyは0を返してループを抜けるようにしてあります。
最終的にWinMainの最後まで行くはず…?

DxLibはフルスクリーンを前提としているらしいので、×を押された時の対応が曖昧なのかも知れませんが、
どっかで取得あるいは確保した何か、をリリースし忘れている可能性が 大 で す 。




363 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 09:41:19 ID:/oeOIVqW]
なんだろうなあ。
DxLibでユーザが解放しなきゃならないものはほとんどなかったと思うけど。
そもそも解放するしないにかかわらず、プロセスが残るってのは変な気がする。

364 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 09:53:05 ID:/oeOIVqW]
ソース見たが、
Field::Draw()でProcessMessage()使ってる。
しかも戻り値チェックしてない。

ProcessMessage()やScreenFlip()はあまりソース中に散在させるものではないと思うよ。
人それぞれかもしれんが。

365 名前:1 [2008/01/17(木) 21:23:10 ID:HCFfaCxW]
あ、本当だ… Orz
右も左も分からない時に書いた箇所だ…

ProcessMessageは全二箇所で、一箇所にまとめるのは、僕の頭じゃ無理そうです。
ScreenFlipも同様で、こっちは19個もありました。
ProcessMessageもScreenFlipも最小限に抑えるべきだと、僕もそう思います。
完全に設計ミスですね Orz
でも、今、修正すると心が折れそうなのでやめておきます。
次回作を作る時は、もう少しまともな設計ができそうです。
…いや、そうならないとこのスレの意味が…

Xボタンの件は、タイトル画面で症状を確認できました。
Escで終了した場合はおこりませんでした。
原因はやっぱり不明です。
もうちょっと自分でいじってみてダメそうならDxLibの掲示板に行ってみます。

方向を定数に変えました。
すこしずつconst関数に変えていってます。
呪文を実装しています。フィールドで使用が可能になっています。

tp://sakuratan.ddo.jp/uploader/source/date66885.lzh
削除パス設定し忘れた… Orz



366 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 21:56:13 ID:6FxDnuCV]
複数ある時点でメッセージキューの仕組みが破綻すると思うのだが

367 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 22:17:21 ID:/oeOIVqW]
>>365
タイトル画面の処理って、下のループかな?

> int TitleCount = 0;
> while(!party.setInputKey()){

ここでウィンドウ閉じるとループは抜けるだろうけど、DxLib_End()までは遠いね。
やはり、party.setInputKey()が分散≒ProcessMessage()が分散してるところが怪しい。

DXライブラリは自分も使ってるけど、以下のような感じでやっている。
メインループは一つ。ProcessMessage()やScreenFlip()は毎フレームに一回だけ呼ぶ。

DxLib_Init();
その他の初期化
while(ProcessMessage()) {
キー入力
switch(state) {
case STATE_TITLE:
title_exec(); title_draw();
case STATE_GAME:
game_exec(); game_draw();
}
ScreenFlip();
}
DxLib_End();

実際は、もっとオブジェクト指向っぽくしたり、ステートが階層構造になっているけどね。

368 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 22:18:56 ID:yQ/WXoAm]
最初から人様の作ったラッパー使うのはどうかと

369 名前:名前は開発中のものです。 mailto:sage [2008/01/17(木) 23:32:10 ID:HfiR7GrD]
別にいいよ
>>1はゲーム作りじゃなくてC++の勉強してるんだろ

370 名前:1 [2008/01/17(木) 23:39:44 ID:HCFfaCxW]
winMain以外の関数でループさせないほうがいい、って事ですよね。
格ウインドウのgiveControl関数でループがあり、処理を投げているので
ほぼ一からやり直しになると思います。

×ボタンはつかわないでください、とコメントを添えて配布?とか思ったけど
そんなもん読む人はいないと思うので、(守らないと思うし)
苦肉の策で setKeyInputで呼び出したProcessMessage()が-1を返す時に
その場でDxLib_End()とexit()を呼び出してみました。

僕がテストした範囲内ではタイトル、移動、戦闘、全部Xボタンで正常終了することができました。
お手数ですが、興味のある方、検証お願いします。

大丈夫だったかダメだったかカキコしていただけると大変助かります。

tp://sakuratan.ddo.jp/uploader/source/date66915.lzh

371 名前:名前は開発中のものです。 mailto:sage [2008/01/18(金) 00:20:44 ID:NZS+eY32]
C++の勉強なら余計に人様のラッパー使わない方がよくない・・・?
勉強とかいうつもりがなくてただゲーム作るだけなら有り物で近道した方がいいかもしれないけど。



372 名前:名前は開発中のものです。 mailto:sage [2008/01/18(金) 00:35:48 ID:Y9jpO8YC]
>>371
ポリゴンで疑似スプライトから、とか?
そのほうが順番おかしいだろ
DirectXの勉強が主体になっちまう

373 名前: [2008/01/18(金) 00:50:54 ID:tZf/+rJ/]
371さんが言いたいのは、DxLibなしでは何もつくれなくなるようなヘたれになるぞ、って警告ですよね?
その忠告、しっかり胸に刻んでおきます。
DxLibを使うようになった経緯の一つに、そもそもライブラリとは何か、すら分っていなかったというのがありまして。
コンソールでHelloWorldを出力して、次にやろうと思ったのがこれなんです。
その程度の初心者が行き当たりばったりではじめたスレなんです。
勉強をかねて、とはいえ、やっぱり愛着もあるわけで
完成させたいんですよ。
シナリオとかも妄想をメモしてる程度ですが、書き溜めていますし。

で、これからの方向性ですが
ランタイム部分は従来どおりDxLibを使っていって
ツクール部分を作る時はDirectXも使わないで作ろうと思っています。

全部完成したら、2DアクションMORPGを作りたいとか思ってます。

これからもがんばるので、なにとぞ応援よろしくお願いします。
>>3-372






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<293KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef