C++でFCのドラクエっぽいRPGを作るat GAMEDEV
C++でFCのドラクエっぽいRPGを作る - 暇つぶし2ch49:名前は開発中のものです。
07/11/15 04:35:50 aSBFCf/S
>>46-48
・getStringとgetLineでローカル変数へのポインタを返している
・ポインタ(int String::pointer)を初期化する方法がない(0に戻せない)<いらないのかな
・「pointer > strlen(str)」の部分でintとunsigned intの比較をしている
・定数直打ちは止めといたほうが・・(1024=>STR_MAX 0x0a=>STR_LFなど)

50:名前は開発中のものです。
07/11/15 09:30:13 /bSoxToM
ヒント
new,std::string

51:名前は開発中のものです。
07/11/15 10:15:05 Dxr/BWiM
ポインタじゃないものにpointerなんて名前つけるのは微妙
それはインデックスだ

52:名前は開発中のものです。
07/11/16 06:33:32 OV+uJg1d
>>50
だな

53:1
07/11/16 21:46:02 UXZ5zvB8
>>49 >>51

ご指摘ありがとうございます!
早速修正をしますた!
ローカル変数のポインタは危険ですのぉ… うっかりしてますた。

>>50 >>52

        ぇ…?

      ,-、     ,,,,_       ,.-、
     ./:::::\   /,'3 `っ  .../::::::ヽ
    /::::::::::::;ゝ--`‐‐‐'´- 、._/::::::::::::::|
    /,.-‐''"´          \:::::::::::|  
  /                ヽ、::::|  
 /                   ヽ|
 l                         l
. |    ●                 |
 l  , , ,           ●      l
 ` 、      (__人__丿    、、、   /
   `ー 、__               /
      /`'''ー‐‐─‐‐‐┬'''""´
      / ,,,,    ,,,  .... . |
     ,//ミ⑬ミ   ミ⑬ミ |  |
     (_/ ""    ""  ヽ、_)
  .  、ゞ'"'ッ,、... ゞ'"'ッ,、 .. ゞ'"'ッ,、 .. ∩
 ....... ミ ,'3 彡ミ ,'3 彡ミ ,'3 彡 ..ノ |
..... ...... シ,, ,;; ヾ` シ,, ,;; ヾ` シ,, ,;; ヾ二 ノ
 ................... `ー‐' ...... `ー‐'


54:1
07/11/16 21:49:14 UXZ5zvB8
便利なstringを知り、手当たり次第に修正しようとしたらめちゃくちゃになってしまった。。。
バックアップを使ってやり直しです Orz

いやー string便利だー
便利すぎて泣けてくる。

今までの苦労はポインタの勉強をした、と思うことにしよう。

55:1
07/11/16 22:59:12 UXZ5zvB8
コンパイラに怒られながらというかなり非効率なやり方ながら半分くらいstringになったかな?

はなす を実装しました。

MapObjectMap.txtで設定したオブジェクトのうち一番最後のものだけ、EOFがEOFノ とかEOF4 とか出てきます。
char型配列の呪いみたいな臭いがして、穴が開くほどコードをみたんですが、お手上げです。
誰かボスケテ Orz

URLリンク(sakuratan.ddo.jp)

56:名前は開発中のものです。
07/11/17 03:29:57 NtE6efWM
>>55
どうやら問題はデータが一番最後かどうかではなくデータそのものに依存するらしいところまでは分かった。
例えば「ようやく はなしが できるようになった。」の部分を""で囲ったり、
「ようやく はなしができるようになった。」とするとエラーは出なくなる。
逆にエラーが出るオブジェクトの順番を変えてやってもやっぱり同じ部分でエラーが起こる。

てかVC++だとエラーでまくりでビルドできない。
少しくらいなら直してもいいんだが最初見えてるの直すと30くらい来るから無理w
俺の為に直せとは言わないけどint型の関数なのに値を返さないとか
初歩的ミスも結構あるからそういうのは直しといた方がいいと思う。
というかBCCだとあれでもコンパイル通るんだな。

57:名前は開発中のものです。
07/11/17 04:27:22 3LkIon8X
今の技量で続けたら挫折しそうな予感…
上手くデバッガを使えるか知らないけど、実行時の原因不明なバグ調べてて嫌にならないか?


58:名前は開発中のものです。
07/11/17 10:22:23 DAW7rWYI
>>56
BCCだと通ってしまうんです。
BCCが初めてのCコンパイラで、それ以外使ったことがないのです。
returnをつけてみました。

>>57
原因不明なバグに挫けそうです Orz
技術不足も知識不足もそのとおりなのです。
なにせstringすら知らなかったど素人ですし。
そしてその素人はデバッガの存在をしらなかったのです。

さっそく使ってみようとググってDLしようとしたらサーバが落ちてるっぽい Orz



59:1
07/11/17 10:25:11 DAW7rWYI
URL書く前に間違えて送信ボタンおしちゃいました Orz


URLリンク(sakuratan.ddo.jp)

60:1
07/11/17 10:33:35 DAW7rWYI
DXライブラリが BCC用と VC用とがあったのを思い出しました。
VC用のDXライブラリにつけかえました。
よろしくお願いします m(__ __)m

61:1
07/11/17 10:35:08 DAW7rWYI
あ、またURL載せ忘れた Orz
だめだ、落ち着け僕。

URLリンク(sakuratan.ddo.jp)

62:名前は開発中のものです。
07/11/17 10:57:40 d7I0LgHR
ある程度ゲーム作りに慣れてればドラクエはそれほど難しくないと思う
しかしウィンドウ、キャラクタ、戦闘、イベントなどなどやらなければ
いけない事が膨大で、そのへんのゲームより作業量が非常に多くなるという罠

以上、同じようなことやってて途中で放置プレイしている人間のチラ裏

63:名前は開発中のものです。
07/11/17 16:57:44 rLUooNoc
>>61
取り合えず そこのあぷろだにログをあげてみた
URLリンク(sakuratan.ddo.jp)

BCCだとコンパイル通るんだな、意外だ

64:1
07/11/18 12:14:03 Y/pTO1mo
>>62
モンスターのデータをつくったりとか、イベントの会話データとか、ゲームを作るのは結構時間がかかると思います。
でもシステム自体を作るのは簡単…  なのかな?
僕には難しくつまずいているわけですが。
とりあえず、これを完成する頃には初心者じゃないと言えるくらいにはなるのかな、と思ってみたり。

>>63
BCCだと問題なく通っちゃうんですよねぇ…
enumにint型をそのままいれられたりとか。
関数の戻り値の型が入ってないのは純然たる入れ忘れです。
よくコンパイル通ったな…

URLリンク(sakuratan.ddo.jp)

65:名前は開発中のものです。
07/11/20 05:28:57 17MvCz5h
処理系依存なんじゃないの? 

66:名前は開発中のものです。
07/11/20 11:42:07 w3lrBuf0
ドラクエ作るんなら
最初にツクール作った方がいいよ

意味わかる?

つまりマップエディタとかキャラエディタとか
管理や汎用がラク

67:名前は開発中のものです。
07/11/20 11:56:19 OVlMufIS
>C++の勉強をかねて

68:1
07/11/20 19:46:36 xyOjqPZC
またもや アク禁です (;・д・)

>>66
最初からツクールを作るつもりだったんですが、
なにせ仕様がかたまってなくて…(汗

マップやキャラはこれ以上増やさずにシステム部を固めて
ある程度仕様がみえてきてからツクールを作ろうと思ってます。
何枚ものbmpファイルと設定用のtxtファイルを一つのファイルにまとめたり、
使い回しが楽になるような、そんな感じにしたいなぁ…。


デバッガが落とせなくてBolandにメール送ってしまった。
早くデバッガ使ってみたいなぁ…

濁点と半濁点の文字を力技で表示できるようにしました。
43さんのやり方にするためにはBMPを用意しなくちゃいけないので、もうちょっと時間が… Orz

会話のカーソルを上手く点滅させられなくて困っています。

BCC用
URLリンク(sakuratan.ddo.jp)
VC用
URLリンク(sakuratan.ddo.jp)


69:名前は開発中のものです。
07/11/20 19:58:55 EuIapzs3
余計かもしれないけど、ある程度仕様を固めてから作らないと、あとでデータ構造で困る可能性があるよ。
そうじゃないとデータ構造のせいで仕様に制限が生まれてしまう。

70:1
07/11/21 19:27:04 H4c55rmu
>>69
仕様を考えてみました。
大まかに分けて5つのデータを作ります。

マップデータ
モンスターデータ
職業データ
アイテムデータ
呪文データ

それぞれのデータはお互いの中身を知っていることにして、
お互いを文字列を使って呼び出せるとします。

詳細
・マップデータ
マップサイズ
マップのタイルのデータ
グラフィック
移動判定
モンスターの出現率
タイルのデータを使った実際のマップのデータ
マップに配置するオブジェクトの元になるデータ
グラフィック
タイプ(物、生き物)
移動判定
オブジェクトの中身のデータ
モンスターの配置データ
出現するモンスターのパターン =>モンスターデータを参照する
パターンをセットしたデータ

71:1
07/11/21 19:27:57 H4c55rmu
・モンスターデータ
モンスターのグラフィック
強さ(Lv,HP,Mp,攻撃力、守備力、すばやさ、経験値)
攻撃方法 =>呪文データも参照する
耐性
落とすアイテム => アイテムデータを参照する

・職業のデータ
グラフィック(4方向*2パターン)
成長データ
取得呪文リスト =>呪文リストを参照する

・アイテムリスト
アイテム名
タイプ(武器、兜、鎧、盾、装飾品、消耗品、貴重品)
使用可能な職業 =>職業リストを参照する
効果

・呪文リスト
呪文名
消費MP
対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
タイミング(移動中、戦闘中、両方)
効果

つっこみお願いします。


72:名前は開発中のものです。
07/11/21 20:53:38 +bb6+Uy/
>>71
>対象(敵一匹、敵グループ、敵全体、味方一人、味方全員、自分)
これだとパルプンテみたいに効果によって対象が変わる呪文が実装できない。
パルプンテ作る気ないならいいけど。

73:名前は開発中のものです。
07/11/21 23:25:21 QAMIESYX
モンスターデータなどは
パラメータ等を格納したマスターデータと
今戦闘しているモンスターのみが必要なサブデータは分けて考えた方がいい。
クラスとインスタンスの関係のような感じ。

74:名前は開発中のものです。
07/11/22 00:00:20 YnWGqx+/
いちお、うちは、ドラクエオンラインを目指してるのだw
ドラクエの上位版な。力ある奴こい

CreateGameー陸海空オンラインー
URLリンク(www112.sakura.ne.jp)

うちは、背景がぐいぐい動くゲームを想定しておりまする。

イメージ3D
URLリンク(www112.sakura.ne.jp)
URLリンク(www112.sakura.ne.jp)

よろすくw


75:名前は開発中のものです。
07/11/22 00:17:26 Gx1wHKMf
物理エンジン「フェニックス」日本名『 鳳 凰 』を
開発できる者いたら来るのだ。
URLリンク(www112.sakura.ne.jp)

76:1
07/11/22 13:36:00 1nrzvj+v
>>72
なるほど…
パルプンテか…
あとラナルータとかアバカムとかトヘロスとかあるな…
対象に「空間」を加えてみよう。
パルプンテの実装はかなりめんどくさそうだ…

>>73
ですね~
とりあえずマスターデータに必要なものをあげていきたいと思います。

あと、セーブデータの使用も考えないとだ(汗


77:名前は開発中のものです。
07/11/23 07:48:06 aIwuXGYs
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん
と思ったんだが、
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ

78:名前は開発中のものです。
07/11/23 07:49:13 aIwuXGYs
>グラフィック(4方向*2パターン)

横向きのグラフィックは反転すれば2種類で済むじゃん と思いきや
ドラクエ3って、右向きと左向きでグラフィック違うんだな
初めて知ったわ

79:名前は開発中のものです。
07/11/23 07:50:08 aIwuXGYs
ゴメン、2回書いてしまった

80:1
07/11/23 21:19:47 EqvVctbz
>>77
そうなんすよ。
モンスターの中にはグラを反転させてるのもいるみたいですね。


性別のデータはどこに入れるべき? キャラクタの中にするか、職業に そうりょ・おんな みたいな感じにするか、

…両方やった方がいいのかな?

81:名前は開発中のものです。
07/11/23 22:07:20 bo2lQ7Oe
>>1って何を見てC++の基礎的な部分を学んだの?

82:1
07/11/24 00:52:56 MS8gIJ0s
>>81

URLリンク(wisdom.sakura.ne.jp)
↑ここ

あとは気になる単語をひとつづつググっていって… っていう感じですかね。
まだまだ分からないことだらけです。 Orz

83:1
07/11/24 01:22:41 MS8gIJ0s
仕様がにつまらないまま、とりあえず四人PTが動くような感じにしました。
wを押すと移動モードが変わります。

URLリンク(sakuratan.ddo.jp)

壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし

横方向に一周すると二人目以降が一瞬消え、
縦方向に一周すると、なぜか背景がずれる。

問題は山済みだぁ…



84:名前は開発中のものです。
07/11/24 06:15:15 LF10ZKGk
>>83
>>壁に当たった状態で向きをかえ、そのまま動くと二人目以降が変な動きをし
移動できなかった時の処理を修正すれば解決するから、何とかしれ

あと、int型の関数なのに 値を返さないヤツは
VC++だとエラー吐きまくりだから、何とかした方がいいかもね

85:1
07/11/24 13:06:36 tttKXuAd
>>84
壁に当たって移動できないときの向きを保存しておくしかなさそうですねぇ…
VC++もインストールした方がよさそうかしら?
ってかBCCってあんまり使われてない!?

86:名前は開発中のものです。
07/11/24 16:17:37 28bRJwv0
>>85
VSEEが登場してから確かにBorlandを進める入門書も激減したね。
どっちでもいいと思うけど、VSEEにはヘルプが充実してるから無料だし
入れておいても損は無い。

学生ならAcademic 2005が4500円ほどで買えるし

87:名前は開発中のものです。
07/11/24 21:15:26 mZLg9kAb
bccでも
「関数は値を返すべき(Function should return a value)」
という警告が出るはずだが。

88:名前は開発中のものです。
07/11/25 08:54:44 dvwP3UD3
BCCから始めてVSseに移った漏れは早いうちにVC++に移ったほうがいいと思う
API使うにつれ構造体が多くなるから、あのIDEはかなり強力

89:名前は開発中のものです。
07/11/26 21:41:21 kVJVN9m4
>>86
ぢつは 学生ではないです、。Orz

>>88
VC++を落としたのですがXP SP2じゃないと使えないみたいですね。
メインで使っているPCが二台あって、うち一台はSP1のままで
勝手にSP2にできないので、このままBCCを使う方向で。
ちょっと使ってみたけど、VCEEの方が便利そう…

>>87
よくよくIDEをいじってみたら、警告を返さない設定になっていました Orz
できる限りなおしてきます。 Orz

90:1
07/11/27 00:47:00 d34z+KuU
ファイルを読み出すときに fgetcをchar型で受け取っていたのをint型に直しました。
↑かなりバグの原因になっていた気がします。

壁に当たった際の移動処理の修正をしました。
横方向に回るときに63⇔0の時に二人目以降が消えるバグを修正しました。
キーの入力の処理をちょっと修正しました。
今まで押されている状態と押されていない状態しか判別できなくて困っていましたが
ちゃんと4つの状態を取り出せるようになりました。
(押されていない、押した瞬間、押している、離した瞬間)

縦方向に方向に世界一周する時ずれるバグの原因が不明です。
デバッガの使い方が良く分かってないのが悪いよなぁ…

URLリンク(sakuratan.ddo.jp)

91:名前は開発中のものです。
07/11/27 15:53:32 XifSZqNn
関係ないけどDXライブラリで
#include <iostream>
するとエラーが出まくるんだけど何でだろう・・・

92:名前は開発中のものです。
07/11/27 16:08:10 uGSxxWdB
STLを使うときはDxLib.hを見て
「STLを使うときはここのコメントアウトをはずしてください」
ってところがあるからそのとおりにしてみる

93:名前は開発中のものです。
07/11/27 17:28:56 XifSZqNn
>>92さんありがとう。
でもなんでデフォルトをこれにしなかったんだろう・・・。
高速化のためかな

94:1
07/11/28 15:34:05 zLkvDFFj
>>91 さん
僕は警告が止まりません。
STDの意味も分らなかったり Orz
ちょっとヘッダー見てきます

>>90
でfgetcをchar型で受け取っていたのが悪いとかいってたけど
int型で受け取っても問題なかったみたいですね Orz


95:名前は開発中のものです。
07/11/28 22:13:35 u4wU15z0
がんばれ

96:1
07/11/29 07:49:09 8WyJyauK
>>95
がんばります!


ぼちぼち戦闘を作りたいと思ってます。
二回目以降の戦闘で
メッセージが二回表示されちゃうバグの原因が分りません。なんでだろ?
URLリンク(sakuratan.ddo.jp)

97:名前は開発中のものです。
07/12/02 15:23:38 86yI1zZh
>>1に触発されて、俺もRPGの土台作ってるわ
こりゃぁたしかにC++の勉強になるわな

98:1
07/12/03 08:16:10 TADfcfNf
煮詰まってぜんぜん進んでないんですが、とりあえず生存報告。

URLリンク(sakuratan.ddo.jp)

>>97

おたがいがんばりませう。
あんまり人が書いたソース見たことないので
よかったら97さんのソースもうpしてくれると嬉しいかも。

99:名前は開発中のものです。
07/12/03 08:43:22 3su1LaOd
WaitVSync(1) ;

メインループのなかにいれてみたら?

100:97
07/12/03 19:02:30 b9C0qSJp
>>98
>>1のと比べたら、見せられるほど効率的なプログラムじゃないよ・・・

101:1
07/12/03 21:11:55 TADfcfNf
>>97
ぜんぜん効率よくないっすよ…
デバッグも力技だし。
メモリとかめちゃくちゃ無駄遣いしてるし
すでにスパゲッティ化してて自分でも訳分らなくなったりしてるし Orz

102:97
07/12/03 22:05:34 b9C0qSJp
メインとかまだぐちゃぐちゃだし、容量も大きいぜ・・・
ハズイのでそのうち消すわ

URLリンク(sakurachan.dip.jp)

103:名前は開発中のものです。
07/12/03 22:07:54 tyrMCse6
参考にさせてもらいます

104:1
07/12/04 07:55:53 gS+kwsGk
>>97
わーい うpだ うpだ。
グラフィックを一枚にして分割して読み込んでるんですね。
たしかにこの方がわかりやすい!
まねしてみよっと。



105:名前は開発中のものです。
07/12/04 13:14:06 tD4LtuOS
URLリンク(ayusya.hp.infoseek.co.jp)
便利だよ

106:名前は開発中のものです。
07/12/06 20:10:16 5cqYyHrM
 スレはよくみてたのになかなかソース見る機会なかったが、
試験前日だってのに今見た。
しかしまぁよく書いたな。お疲れ。そしてこれからもがんばれ。
とりあえず>>1応援ノ

107:1
07/12/07 03:38:39 TqKt9CYS
>>105
便利そうだけど、今から使うとCharとstringとStringがごちゃごちゃになって収集つかなくなるのでやめておきます。
今度、また新しく作るときに使ってみます。

>>106
汚いソース見てくれてありがとです。
試験前日は勉強以外のことがしたくなりますよね。。。
試験がんばってください。
なんか、応援されると涙でるくらい嬉しいな。

とりあえず現状こんな感じ。
URLリンク(sakuratan.ddo.jp)

戦闘に入ると、にげるを選ぶまでずっとコマンドを選び続けることになります。
攻撃とかの処理はまだ入れてません。
パーティアタックの要素もいれるつもりですが、まだ全然ですね。

BattleFieldに敵味方含めて全部のキャラクタのポインタを持たせ
すばやさ順に並び替えて
キャラクタが保持しているCommand,subCommand,Targetを元に行動させてみたいと思います。


108:名前は開発中のものです。
07/12/07 05:13:38 G3CHG+0v
煮詰まる・・・・

109:裕釐@106
07/12/07 07:07:51 9GENbEd8
>>107の最新版bだがウィンドウが表示されたと思うと消えてしまう。。。

110:名前は開発中のものです。
07/12/07 11:04:20 ZFkfzkEg
URLリンク(fatalita.sakura.ne.jp)
こんなん作ってたんですけど、ソースとかアップしてもいいですか?
全然開発進んでないんで多分見ても面白くなさそうですけど

111:名前は開発中のものです。
07/12/07 11:27:46 SfdXkRE6
どうぞ

112:名前は開発中のものです。
07/12/07 21:41:34 ZPLhqQBz
なんか餅ベーションあがってきた
俺もRPG作る!

目標年内で、初期FC程度の遊べるレベルまで


しかし、DQドット絵って、どこかで流れてるの?
みんな、自分で手打ちしてるの?

113:1
07/12/07 22:02:06 TqKt9CYS
>>108
僕も煮詰まってます。
挫折しそうな時に、このスレを見てがんばってます。

>>109
DLありがとうございます。
今Upしたやつ試してもらってもいいですか?

>>110
ぜひUpしてください。
見た目DQ1なのに、台詞が3で宝箱が4だw


敵味方全部のポインターをBattleFieldクラスに持たせるようにしようとしたけど
なかなか上手くいかずにずっと悩んでました。
デストラクタが呼び出されるタイミングについて質問があったんですが
どこだったか忘れました Orz

URLリンク(sakuratan.ddo.jp)


114:裕釐
07/12/07 22:30:50 9GENbEd8
かわりませんね。。

VC++で再コンパイルを試みているんだがコンパイルできない。。
・KeyTest.cppは何? 関数らしき宣言が見当たらないのだが。。

115:裕釐
07/12/07 23:11:43 9GENbEd8
連レスすまん。 起動できた
どうやらDQフォントに問題が。。tk別のほうのをインストールしてた

//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
これうまく作動してないかと。
何故Error関数じゃないのか気になるね

116:1
07/12/10 08:14:42 P9jsj/2m
>>114-115

KeyTest.cpp はキー入力のテストで作ったファイルで、今はもう必要なかったです。
//フォント変更
if(ChangeFont("DragonQuestFCIntact") == -1){
DMsg("できればドラクエフォントをインストールしてください。");
}
↑は確かに思うように動作してないですね… Orz
Error関数じゃないのは、 で き れ ば インストールしてください ってことで。
僕の汚いコードを見てくれるのにわざわざフォントのインストールまで強制するのはどうかと思ったので。

あんまり進んでないけど最新版
****のこうげき!
****は **のダメージをうけた!
と表示されます。
今度は実際にダメージ計算をして
HP計算をして、死亡判定、戦闘の勝利判定までやりたいと思います。

URLリンク(sakuratan.ddo.jp)

117:もつ ◆3hrQ9eL3.Q
07/12/10 21:47:12 8T67gjbd
コンソールゲームスレで途中でやめたDQ1
コンソールなんですべてキャラクタ(文字)
URLリンク(sakuratan.ddo.jp)
一応、人、会話、戦闘、復活の呪文等を実装。
魔法はつかえん。バグたくさん。
↑、↓、←、→、スペース、BS が操作キー

118:名前は開発中のものです。
07/12/11 13:12:14 i04hax3Y
ドラクエふぉんとのないパソコンで起動すると
DrawStringDQ関数呼んだときに強制終了くらうよ。


対戦中の敵のパラメータは構造体で管理するとして、
対戦全体を管理するのにもクラス作ったほうが楽な気がする。 

119:名前は開発中のものです。
07/12/11 16:54:54 xDs0NYc0
>>2

int hn2fn(char c)
{
 return c + ('0' - '0');
}

120:1
07/12/11 19:12:31 ANDKxxZg
>>118
僕のPCだとDQフォント無しで動いちゃってるんですよねぇ…
でもChangeFont("DragonQuestFCIntact")が-1を返しているわけではないみたいです。
ちょっとDxライブラリの掲示板に質問ぶつけてこようかな。

対戦全体を管理するのがBattleFieldクラスです。

…のつもりだったんですが、いまいち機能が中途半端なんですよねぇ…。
どんな機能をどこに持たせるべきなのかっていう判断が初心者には難しい…。
っていうか、それがそのままPGの力量に直結するんだろうなぁ…

      BattleField
    ↓       ↓
 PlayerParty MonsterParty
    ↓       ↓
    PC    MonsterGroup
            ↓
          Monster

あれ?矢印の向き逆?


>>119
レスありがとうございます。
今のところ
char c[2];
char[0] = 0x82; //
char[1] = 0x
みたいな感じで無理やりやってましたw

char型を取ってint型を返すのか…
なんか目からうろこだな。

121:1
07/12/11 19:21:33 ANDKxxZg
現状UPです。

敵を倒すと戦闘終了するようになりましたが、
経験値やゴールドの増減はありません。

ステータス表示がパーティの人数で伸び縮みするようになりました。

モンスターの行動パターンとかどうしようか悩んでます。
今のところ攻撃一辺倒で、勇者一行の先頭キャラしか攻撃しません。
経験値とゴールドを解決したら、いちおう遊べるのかな?


URLリンク(sakuratan.ddo.jp)

122:裕釐
07/12/11 21:00:59 31kIAbMQ
BattleFieldね。おk。
敵数と敵の情報をまとめればいいかな、と℃素人は思ってしまう。。。あとで必要だと思うときに
付け足せるような形にまとめておくのがいいと思うよ。

戦闘中、複数種の敵がいる場合、たたかうを選んだときに
どれに攻撃するか選ぶよね。あの敵リスト?を更新するようにしないと。
倒してもリストからは消えないのは問題。



123:名前は開発中のものです。
07/12/11 22:50:31 FZGhBsSs
>>119

return c + '0';

でよくね?ちなみにマルチバイトだと…

124:名前は開発中のものです。
07/12/11 22:54:54 FZGhBsSs
おっとこの場合数値から全角文字か

125:名前は開発中のものです。
07/12/12 07:39:59 J/TJHZ+a
全角文字を' 'で囲むな

126:名前は開発中のものです。
07/12/12 08:37:22 7RFZk29b
ドラクエフォントを入れなくても動くように、
ドラクエフォントを画像データにしたほうが良いのでは?
字数知れているし。

127:名前は開発中のものです。
07/12/12 13:27:41 DWQ3Q4UI
>>126
サイズetcの変更はどうする


128:名前は開発中のものです。
07/12/12 15:32:17 DfKtb5wZ
>>125
C#ならOK

129:名前は開発中のものです。
07/12/12 16:09:05 9ySxVkow
サイズ変更なら、StretchBiltなりDrawExtendGraphなりでできるだろ。

130:名前は多分開発中のものです。
07/12/12 16:17:11 m1CVZqe+
>>128
残念ながらココはC++のスレ。


ストレッチは1ブロックあたりがでかく汚くなる。

131:名前は開発中のものです。
07/12/12 20:51:46 DYTuCNrB
ドット絵ベースなゲームに、TTフォントを使うこと自体間違っている。

132:名前は開発中のものです。
07/12/12 22:58:46 VmmQnXXX
WCHARでいいんじゃね

133:名前は開発中のものです。
07/12/12 22:59:54 M90VuyCU
いっそC++/CLIで

134:名前は開発中のものです。
07/12/13 00:45:36 6EdETOic
>>132
むしろwcharでないとvistaで問題出るんじゃないかね
使ってるライブラリがwchar対応してるか知らないから黙っていたが…

135:名前は開発中のものです。
07/12/13 00:52:37 8oxft27H
0~9が並んでる保障ってあるの?

136:名前は開発中のものです。
07/12/13 01:39:26 oHtWeYhI
>>135
URLリンク(ja.wikipedia.org)

137:1
07/12/13 07:33:43 xfGpgGHW
そのうち画像を表示に切り替えるかも知れないと思いDrawStringDQを使ってました。
実はWCharって言うのがよくわからないんですよね…
使わなくても問題ないなら全角はChar二つ分でやりたいと思います。
あ、でも練習のためにも使っていたほうがいいのか。
勉強してこよう。。。。

フォントの画像は8x8でつくり
自分で拡張したDrawGraphWで二倍に引き伸ばして使う予定です。
Vistaに関しては。。。。 シラネ。

敵選択で倒したグループが非表示になりました。
経験値をゴールドが取得できるようになりました。
でもレベルはあがりません。

職業関連を実装しようと思ったら、パーティのグラが消えちゃいました。
Jobクラスにグラフィックを実装しようと思ってます。

URLリンク(sakuratan.ddo.jp)



138:名前は開発中のものです。
07/12/13 09:30:11 nRgEBkW0
マルチバイトのほうが面倒だと思うんだが
最近のwindowsだと標準じゃないし。

139:名前は開発中のものです。
07/12/13 13:35:23 6EdETOic
TCHARで切り替えられる作り方をするのが普通

140:名前は開発中のものです。
07/12/13 16:40:58 wG78UTwH
そうだな
俺もTCHARをお勧めする
Borlandにもちゃんとtchar.hあるじゃないか

141:名前は開発中のものです。
07/12/13 16:49:11 wG78UTwH
といっても全角使うのは明らかなんだからWCHARでいいか
とにかくchar2個とかはやめといた方がいい
時代の流れなんだから勉強しておいて損はない

142:名前は開発中のものです。
07/12/13 17:30:26 c4nhYvvc
従来の方法を学ぶのも大事。
とりあえず今回はchar[2]でいこか

143:名前は開発中のものです。
07/12/13 19:17:40 BdT1avie
マルチバイトが従来の方法(笑)

144:名前は開発中のものです。
07/12/13 19:50:19 AkmNVLfQ
>>142
>>1乙。それぐらい面倒くさがらずにやれよwwww
てめぇみたいなクズの公開オナニー見てもらえてるだけありがたいと思え。
わかったら黙って言うこと聞いて動けボケが

145:名前は開発中のものです。
07/12/13 20:05:44 qfpSXaMi
いや初心者らしいからそれはないだろw
どう考えてもUNICODE使う方が簡単に書けるし

146:1
07/12/13 22:54:41 xfGpgGHW
tcharとwcharについて調べてみました。
Unicodeに対応することを考えるとWCharよりはtcharのほうがいいんですね。
でもUnicodeに対応させる、っていうのがどういうことなのかいまいち分かってなかったりします。
UnicodeってUTF-8とかSJISとか文字コードの一種?…じゃないですよね?
string型から直接一文字ずつ取り出せればChar型自体を使わなくて済むような気もするんですが
そんなに単純じゃないのかな?

文字の画像データ化に関しては
文字の色を変更する必要があるためだめそうです。
ビットマップフォントを作ったほうがきれいに表示されそうなんですが
それを作る方法を探してる途中です。

とりあえずLvUPするようになりました。
Lvが上がった時にExpTable.csvから必要経験値を引っ張ってくるようにしました。
でもLvがあがっても強くなりません。

URLリンク(sakuratan.ddo.jp)


147:名前は開発中のものです。
07/12/13 23:33:02 PIfEmrrG
まーstringが使えるならそれで良いかもね。

148:名前は開発中のものです。
07/12/14 00:58:40 zCqlLrTu
必要経験値って公式で出ないのかな

149:名前は開発中のものです。
07/12/14 01:01:14 6SckcvZt
>>146
×tchar
○TCHAR
×Char
○char

wchar_tをwcharと書くのは別にいいけど…
TCHARはマクロだから全て大文字、charはプリミティブだから全て小文字になってる。
意味を大きく変えるような俺表記は控えるべき。

ソースの一貫性の無さをレスに滲ませてしまうと
レビューしてくれる人が減るよ


150:名前は開発中のものです。
07/12/14 01:47:46 0FCOwon9
>>149
たしかに、マにあるまじき行為ですた。以後気をつけます。。。Orz

経験値の公式… DQ3はあるらしいけど、詳しくは知らない。他のはまったく知らない。
確かに必要経験値とか自分で決めるのかなり面倒くさいかも。



151:名前は開発中のものです。
07/12/14 09:18:05 zCqlLrTu
テキトーに増加率決めて毎回かけてやれば勝手にインフレするんじゃないかな

152:名前は開発中のものです。
07/12/14 11:14:06 RH7bHxg6
lv = 1 + floor(sqrt(sqrt(exp * 2)));

とか


153:名前は開発中のものです。
07/12/14 11:38:29 OjqwAalp
string使うにしてもwstringがあるよ

154:名前は開発中のものです。
07/12/14 13:43:31 nzb/etqw
ひらがなしか使わないなら
ka = か
とかしてワイド文字使わなくてもいいんじゃないの。2バイトで同じだし

155:名前は開発中のものです。
07/12/14 14:09:47 kCvfmPHq
初心者自慢大会開催ですか?

156:名前は開発中のものです。
07/12/14 23:11:45 PVHuBi0D
ところで>>1の素材って使ってもいいの?

157:名前は開発中のものです。
07/12/15 06:07:38 bFTHAKDO
おまえら>>1を妬み過ぎw

158:1
07/12/16 00:08:59 ErKldHRa
wstringなんてものまであるんですか…。
Cってcharとの戦いなんだなぁ…。
あとカタカナは使います。
メラゾーマ が めらぞーま になってしまう。
経験値のアレはまだ直してないんですが
レベルアップした時にステータスが伸びるようになりました。
それを確認するための画面もつくりました。
つよさ>つよさをみる>
で確認できます。

ドラクエって実装しなきゃいけないコマンドの数がかなり多い気がします。
全部実装することを考えたら気が遠くなってきました。

バトルからフィールドの開発に戻ってきたら、最初の頃のやり方と、今のやり方がかなり違うことに気がつきました。
今のほうが分りやすいソースをかける気がしますが、一貫性がないのはまずいですね。
次は道具を追加したいですね。

URLリンク(sakuratan.ddo.jp)

159:名前は開発中のものです。
07/12/16 01:42:40 3vNRwpYs
俺も造ってみようと思ったけどVCしか持ってないんだよね

160:名前は開発中のものです。
07/12/16 10:55:45 XAAKi2bo
オレはvcで作ってる


161:名前は開発中のものです。
07/12/16 10:57:24 XAAKi2bo
まちがた。c#

162:名前は開発中のものです。
07/12/16 11:23:18 en60zWi1
ファミコンレベルならハードウェア性能が今と段違いだから好きな言語でいいさね
携帯Javaでドラクエが作られる時代なんだし

163:裕釐
07/12/16 12:46:38 QZxSJZzR
モンスターと遭遇すると
 Gamedata/MonsterData/.bmpのモンスターのグラフィックがよみこめてませんが?
  ↓
 サイズの表記が間違っています
とエラーmsgがでるんだが。
Gamedata/MonsterDataには「.bmp」なんてファイルなかったんで とりあえずファイルを置いたら
 サイズの(略
が永遠とでてくる。

164:名前は開発中のものです。
07/12/16 15:20:09 PiXzjAgu
ソース見たがベタ書きし杉だろ

165:名前は開発中のものです。
07/12/16 15:35:46 EnxQUxiD
C++でFCのドラクエっぽいRPGを作るための上手な書き方について考察するスレになりましたよみなさんだいじょうぶですか?

166:名前は開発中のものです。
07/12/16 16:03:55 DoKPbT8s
某ランド使いのコードが汚いのは定説

167:1
07/12/16 16:09:32 ErKldHRa
>>165
おk
>>164 >>166
ソース書いてるときに理性が飛ぶ瞬間があって、冷静になって見直すと手がつけられない状態だったりします。
関数の行数が多すぎとか、引数が長すぎて見づらいとか。
エディターの所為にして逃げてもよい?(責任転嫁
>>163
もしかして、海で敵と戦うときにそのメッセージがでませんか?
海のモンスターは未設定だったので、グラフィックもモンスターのパラメータも用意してないので、エラーになります。
エラーならエラーで、ちゃんとError関数を使うべきでした。 Orz
海でしびれくらげが出るようにしました。(色が変なのは勘弁してください。

URLリンク(sakuratan.ddo.jp)

168:名前は開発中のものです。
07/12/16 20:25:32 Ty2sbBpB
>>167
今後のためにも一度キレイにしたほうがいいよ、
キミのスキルが上がってドンドン規模が大きくなった時に、
過去に作った基底クラスの改修のリスクが大きくなる。

169:名前は開発中のものです。
07/12/17 00:17:39 5U7KFETp
>>1の才能に嫉妬

170:名前は開発中のものです。
07/12/18 14:29:15 k2BEnLXI
>>169
>>1自演乙

この程度カスでも作れるからw
初心者が一生懸命やってると思って暖かく見守ってやってんだから調子に乗るなよ

171:名前は開発中のものです。
07/12/18 16:12:05 u7lRE18e
>170
zipでくれ

172:名前は開発中のものです。
07/12/18 18:36:06 2np8Lr6Q
>>170
こっちにもいんのかよw
単に作ってる奴叩きたいだけか?

173:名前は開発中のものです。
07/12/19 13:33:05 bDHcUzyc
ドラクエフォントを手に入れたが、どうやって使えばいいのかわかりません

174:名前は開発中のものです。
07/12/19 14:20:48 Pj6CyBbs
いちはとうぼうした

175:名前は開発中のものです。
07/12/19 14:55:35 F/n53iWq
>>1の技量であのコードをリファクタリングするんだもの
そりゃ時間かかるさ

176:名前は開発中のものです。
07/12/19 15:48:07 wxkJalN4
いちはメモリリークをたおした!
けいけんち4ポイントかくとく!
3ゴールドをてにいれた!


177:名前は開発中のものです。
07/12/19 16:05:30 qljgkazn
ソースを公開するからチンカスが住み着く
もうソースは出さん方がいいんじゃね

178:名前は開発中のものです。
07/12/19 16:37:07 Rgtwr7BZ
sambaやapacheのソース見て綺麗だと思う奴はいないが
世界中で役に立っている。それでいいじゃないか。

179:名前は開発中のものです。
07/12/19 16:46:25 K1qNY7pS
>>177
禿同だな

貶される程のコードならオープンにしても役にたつとは思えないしな
現にオープンソースにして>>1に何のメリットがあった?
基地外に煽られてるだけだろww

180:名前は開発中のものです。
07/12/19 17:27:15 WU61vHzY
日本語でおk

181:名前は開発中のものです。
07/12/19 17:49:51 UFtlHy+Q
別にソースを出さないといけないってワケでもないだろうし、
1に得るものがなければ、ソース無しで構わないでしょ。
見やすいコードを書かせようと必死になってる奴が
いるみたいだけど、ハッキリ言って流用されて乙なだけですよw

182:名前は開発中のものです。
07/12/19 17:55:16 G/oyIi8C
>>181そんなヤツいないだろwww
流用って、普通にフリーでオープンソースなRPGなんていくらでもあるし
そういうのは、多くの人の手がはいってるから結構なにげに凄い処理とかをさらっと描いてたりする。
>>1のがんばりは認めるけど、やっぱりまだまだ駆け出しだしねぇ・・・


正直、わざわざ>>1のソースをどうにかして使おう!!とか思ってるヤツは、(居ると仮定すればだが)
どう頑張っても、そいつは流用できるLvに達してないと思うが。

183:名前は開発中のものです。
07/12/19 18:00:41 WU61vHzY
1より下の奴が参考になるならそれはそれでやらしとけばおk
上の奴はスルーしとくか自分がソースだせばおk

どっちにしろ>>1の人気に嫉妬

184:名前は開発中のものです。
07/12/19 18:12:21 UFtlHy+Q
>>1
これで分かっただろ?w
なんだかんだ文句を言いつつソースを出してほしくてもう必死

あとは>>181ね。

185:名前は開発中のものです。
07/12/19 18:29:45 EcJVxUlm
2chなんて口だけのチンカスの集まりだからな

186:名前は開発中のものです。
07/12/19 18:31:39 gSqu12Dg
URLリンク(ossan.fam.cx)

ドラクエ5,6のフォントは、これだな。

187:名前は開発中のものです。
07/12/19 21:08:33 dUxlLljR
ここって1以外が作品出してもいいの?

188:名前は開発中のものです。
07/12/19 21:16:55 cCY2VP4H
パソを買おうとおもう高校生なんですが、最近のRPGツクールでどれくらいきれいな画面つくれるのか教えてください

189:名前は開発中のものです。
07/12/19 21:19:24 EcJVxUlm
お。早くも>1のパクリ作品がうpされるのかな ワクワク

190:名前は開発中のものです。
07/12/19 21:54:24 Mguefe/2
パクられると騒ぐ奴はC++でプログラム組んだこと無い奴だな。
三日前の自分は他人って言葉も知らないんだろう。

そもそも素人の設計じゃいくら可読性をあげても他人が再利用なんて非現実的。
>>1がうらやましいなら勉強しろ。

191:名前は開発中のものです。
07/12/19 22:08:25 qtVSPlwl
いきなり素人が素人煽りだしたけどなんで?

192:名前は開発中のものです。
07/12/19 22:12:00 Mr+WVqhZ
>>191
>>185


193:名前は開発中のものです。
07/12/19 22:21:05 k6t6Eu11
おまいらスレタイと>>1をちゃんと読んだのか?

194:名前は開発中のものです。
07/12/19 23:37:31 mTRZ4/8Q
知恵を貸してください、ってんだからソース出しとくのはいいんじゃね?
それで叩かれるのがイヤだって言われると困るけど、
叩くな言ってるのは他人なんだろ?
本人はけっこう素直に聞く耳持ってがんばってるようじゃないか。
ここは温かい目で、叩いてやれよ。

オレはミジンコだから、>>1のソースが解読できないけどさ。


ところで。ウィンドウの×押しで正常終了できないプログラムって嫌いなんだが。。。

195:1
07/12/20 00:01:13 jkXoOCi4
ちょっとスレが伸びてると思ったら、なんだかお騒がせして申し訳ないです。
今までぐっちゃぐっちゃだったソースを、ぐちゃ、位のソースにしようと悪戦苦闘で、アップできる状態じゃないです。
これからもソースと一緒に出すつもりでいます。
叩かれるのは100も承知です。
99は「ソース汚い」だけの無意味な叩きでも
1つは「ここがこう汚いからこうすべき」というアドバイスがもらえるかも知れませんし。

それからもし再利用したいという奇特な方がいらっしゃれば、どうぞ使ってやってください。(画像データ以外の話ですが
どのみち完成したらFCドラクエもどきツクールとしてオープンソースで配布するつもりなので。(ツクールも作成予定
ま、汚いソースをがんばって読んで再利用しようとするより、一から作ったほうが早いと思いますが。

あと、ここでソース公開したいっていう人はぜひ公開してください。
あんまり人のソースを読んだことがないので、人のソースを読む練習にもなるし。
でも、当然流用されることを前提の上でお願いします。

196:名前は開発中のものです。
07/12/20 00:17:31 55uWllby
別に汚くなんかないよ

197:名前は開発中のものです。
07/12/20 00:40:35 c2k1kUtz
他のスレでも制作者叩いてる奴だから気にするな

198:名前は開発中のものです。
07/12/20 14:49:58 E0vkwHlc
とにかく、1頑張れ。叩かれてもいいじゃないかぁ

199:名前は開発中のものです。
07/12/20 15:00:36 BoVdQ1SP
よくわからないけど>>1はホモに好かれるタイプ
現におれが>>1のこと好きだもん

200:名前は開発中のものです。
07/12/20 21:08:01 hPf6ENX3
なんというウホスレ

201:名前は開発中のものです。
07/12/20 22:38:17 tLt8cR7R
1は女性かもしれないぞ!

202:名前は開発中のものです。
07/12/21 08:09:06 JJIaTGjL
>>201you′re the dreamer

203:名前は開発中のものです。
07/12/21 11:59:28 CIW9ZWZn
>>1
前途多難かもしれませんが頑張ってください。
自分は挫折した。
夢の続きをあなたが担ってください。
応援してます。

204:名前は開発中のものです。
07/12/21 15:15:47 qNfTgitS
>>1
俺も能無しのうんこだから挫折した。
改造してパクるくらいしかできそうにないから早く完成させてくれ。
利用するだけ利用させてもらいます。

205:名前は開発中のものです。
07/12/21 22:40:13 +ezETTlV
パクってでも完成させられるなら、それはそれでいい腕だと思うがな。
少なくとも同じようなものを作れるだけの力量がないと、他人のソース読むなんて無理。

ドラクエとは関係ないが、俺もやろうとしたことあるからよくわかる。

206:名前は開発中のものです。
07/12/21 22:45:03 sZQMdwXf
自分で作れないうちは切り貼りでもなんか失敗するもんだしね

207:名前は開発中のものです。
07/12/21 23:20:35 pcz7fB4f
どれだけ無知なんだよw

208:名前は開発中のものです。
07/12/21 23:35:41 nR6ECJXi
ソース丸々コピればいいんじゃないの?

209:名前は開発中のものです。
07/12/22 01:36:50 NqisS1wp
無知じゃない奴ならいくらでもパクれるだろうが、
そんな奴はパクっても、自分が楽をするくらいの意味しかないだろ。

>>208
ソース丸々コピーしても、
その後どこを動かせばどうなるのかがきちんと分かってないと、
結局自分のしたいようにはできないんだよな。

210:名前は開発中のものです。
07/12/22 01:55:30 wzivk57h
俺はパクるからどうでもいいよ

211:1
07/12/22 16:57:59 GupsOJNk
プログラムって再利用の積み重ねで成り立っているものだと思ってました。
どこまでが再利用でどこまでがぱくりかの線引きは人それぞれなんでしょうが。
自分で書いたものを他人が、「俺が書いたんだぜー」見たいにいわれるとさすがにそれは違うだろ、と思いますが
でも、ソースを公開している以上、利用者の良識にまかせるしかないですよね。

直りきってない状態ですが、とりあえずUpします。
エンカウント時に生成されていないモンスターが現れるバグがあります。
名前が初期化時の【ななし】になっていてsizeが【0】だから多分。
原因は不明です。

あと敵がいくら殴っても倒れません。
ダメージ量が想定しているより少ないです。

ダメージが思うように出ない問題解決のために、ステータス表示ウインドウを作ってみます。

URLリンク(sakuratan.ddo.jp)

212:名前は開発中のものです。
07/12/22 18:06:58 RJx1d8cq
色々弄ったらVC2005でもコンパイルできた

213:名前は開発中のものです。
07/12/22 22:13:12 76aqh1yL
DirectXつかわないのでもOK?

214:名前は開発中のものです。
07/12/22 23:42:56 dee/YD/W
この掲示板における悪辣ないわゆる「叩き」による
ゲーム開発の業務妨害行為(刑233/234)に対する
情報提供をお待ちしております
有料で販売していたソフトを公開中止に追い込まれました
現在も無料ですが広告収入を得ており業務は継続し
民事上の損害額は発生していると考えています
よろしくお願いします
URLリンク(darkhouse.milan.jp)
hogehogent@hotmail.co.jp


215:↑
07/12/22 23:50:21 jgGcqNY9
叩きたくて必死で己の低脳丸出しな書き込みに気づいてないのかなw

216:名前は開発中のものです。
07/12/22 23:59:13 dee/YD/W
>>215
それは具体的にどういうことですか?

217:1
07/12/23 03:15:11 YeyPpYCN
>>212
多分、VC用のDXライブラリに入れ替えるだけで大丈夫だと思います。
もしダメだったら、ここをこうしないとダメだよ、等のアドバイスがあるとかなり嬉しいです。

>>213
全然おkです。

>>211 のバグはなんとか直ったみたいです。
モンスターが倒れないのは、勇者一行をロードする時に攻撃力、守備力がちゃんと設定できてなかったからでした。
ななしがでるのは、モンスターのグループの数を設定し、
モンスターの総数を決定した時にサイズオーバーでグループごと切り捨てた時に起こるバグでした。

ステータスの詳細が見れるウインドウを追加しました。
モンスターがダメージを受けたときに点滅します。
モンスターを倒した時のグラが消えるタイミングを修正しました。
ダメージを受けた時のメッセージを 味方だと うけた! 敵だと あたえた!になる様になりました。

あと戦闘後のResult画面とパーティアタックを実装すれば修正作業完了です。
途方にくれていた修正作業が年内におわりそうでよかった。

URLリンク(sakuratan.ddo.jp)

218:名前は開発中のものです。
07/12/23 11:05:23 1h86Cx8E
eclipse+gcc(cygwin)でビルドしようとしたらだめだった。

とりあえず、itoaは処理系依存のようなので、
char * itoa(int number,char *s,int figure){
if(figure != 10){
msgBox(std::String("itoaの引数違反"));
return NULL;
}
sprintf(s,"%d",number);
}
の関数で代用。

219:名前は開発中のものです。
07/12/23 11:06:03 1h86Cx8E
続き。

問題はconst。
constオブジェクトからはconst以外のメンバ関数の呼び出しはエラー
になるし、当然、const関数ではメンバ変数への代入がエラーになる。
具体的に、
MetaStatus * Job::getGrowth(void)
をconst Jobから呼ぼうとすると、
const MetaStatus * Job::getGrowth(void) const
にする必要があり、この戻り値はjobのメンバ変数で、
この関数ではそのメンバ変数に代入して返そうとするのでエラー。
参照渡しにして、
void Job::getGrowth(MetaStatus &metaStatus) const{
metaStatus.setSTR(GetRand(status.getSTR()));
metaStatus.setCON(GetRand(status.getCON()));
metaStatus.setDEX(GetRand(status.getDEX()));
metaStatus.setINT(GetRand(status.getINT()));
metaStatus.setLUC(GetRand(status.getLUC()));
}
呼び出し側で、
MetaStatus growth;
party->getMember(i)->getJob()->getGrowth(growth);
とするとOK。
長くなったけど、まだ他にもたくさんconst関連のエラーが出てる。
あとは>1が自分でやってちょ。

220:1
07/12/23 12:06:32 YeyPpYCN
>>218
itoaって処理系によっては使えなかったんですか…。
てっきりANSI Cとかで定められてると思ってますた Orz
ここまでやってきて実はsprintf関数の存在を知らなかったりします。
実はずっとあればいいのに、って思っていた関数だったので感謝。

>>219
constに関しては意味を勘違いしていました。
警告はでてたけど、無視してました。
const MonsterParty * mp = *((MonsterParty **)valuable)
とかやってステートメントが長くなって括弧が多くなって読解不能になるのを回避するべく
マクロみたいに、コンパイル時に置き換えられるのかとばっかり思っていて
そうじゃなかったらしいことは うすうす気がついていたんですが、気づかない振りをしてしまいました。
ま、動くならいいか、と。

参照渡しについては要勉強ですね Orz
まだconst関係のエラーを直していない、リザルト画面追加Ver
URLリンク(sakuratan.ddo.jp)

221:名前は開発中のものです。
07/12/23 12:43:02 91qXaWQF
>>217
入れ替える他適当にプロジェクトの設定を変えないと駄目だったけど、
それはVC固有の問題なので置いておくとして

class foo {
void func() {}
};

const foo f;
f.func(); // <- error

主にget***()のような函数でこういうのが問題になってたかな
get***のような函数では恐らくメンバの値を変更しないのでconstつけた方がいいかも

222:名前は開発中のものです。
07/12/23 12:43:33 91qXaWQF
被った・・・

223:1
07/12/23 13:11:26 YeyPpYCN
const の問題を解決しました。
MetaCmdでconstメンバ変数をただの変数に変えただけ。
本来は全部手打ちする奴を手抜きするための変数だったからと思って。

でも単に値を返すためのget**()は全てconstをつけるべきですよね。
ただ、ポインタを返すget*()はconstにしちゃうとダメ。
getMember(i)->setHP(100);
みたいな使い方をして、メンバ変数を変更したいから。

メモリの効率的な使い方が分らないので、
とりあえず、と思ってなるだけクラスを作るのを避けてきたんですが、
(そのためにデコンストラクタが呼ばれた時にメッセージがでる);
そういうのもあんまりよくないんだろうなぁ…

URLリンク(sakuratan.ddo.jp)

224:名前は開発中のものです。
07/12/23 16:23:12 puPpIEyb
そもそもDXライブラリはcygwinでの利用を想定していない

225:名前は開発中のものです。
07/12/23 19:29:09 1h86Cx8E
>>224
というわけで、VC6でビルドしてみた。
VCでビルドするにはいくつか注意が必要。
まず、forループのintの再定義でエラーが出るので、
プロジェクトのプリプロセッサの定義に
for="if (false) ; else for"
を入れる。これでエラーが出なくなる。

226:名前は開発中のものです。
07/12/23 19:29:51 1h86Cx8E
続き
DxLibはサイトからVC用の2.24をダウンロードしてくる。
次に、これは俺の環境でだけかもしれんが、DxLibのバージョンのせいか
(2.24使用)ウインドウ化してからDxLibを初期化するとうまく動かない。
ので、
ChangeWindowMode(TRUE); //ウインドウモードで起動
SetGraphMode(512,480,16) ; //ファミコンの画面サイズの二倍
この二行を、
if( DxLib_Init() == -1 ){
Error("DXライブラリの初期化に失敗しました。");
return -1;
}
のあとに持ってくる。

227:名前は開発中のものです。
07/12/23 19:30:19 1h86Cx8E
さらに続き
さらに、このプログラムでは、読み込むセーブデータの形式が
デバッグモードの場合csvで、そうじゃない場合savとなっているが、
VCではデバッグ用の定義がDEBUGではなく、_DEBUGなせいで
セーブデータが読み込めない。
OpeningCommands::openSaveData
OpeningCommands::getFileAmount
の中の、
#ifdef DEBUG

#ifdef _DEBUG
にする。

とりあえずこれで動いた。

228:名前は開発中のものです。
07/12/23 19:34:20 1h86Cx8E
で、だ。
敵とエンカウントしたら、落ちた。
MsgCmd::Draw()の中に
msgRecord[lineIndex] += c;
とあるが、
lineIndexが初期化されていない(-52が入ってた)ので
コンストラクタでlineIndex=0とやったら落ちなくなった。


229:名前は開発中のものです。
07/12/23 19:44:05 tnd2Kzyl
VC2005で開く方法はわかります?

230:名前は開発中のものです。
07/12/23 21:04:00 jakAnU/i
なんだかんだ言いつつパクり候補だらけで吹いたw


231:名前は開発中のものです。
07/12/24 02:26:02 sxR7bqmX
古代イスラエルのペテン乞食の誕生日を祝う義理なんかないね。

232:名前は開発中のものです。
07/12/24 04:20:15 Qqp4Qc85
いつもzipでupしてて大変そうな>>1
openSVNでググってみ

upの手間解消以外にもいいことあるから

233:名前は開発中のものです。
07/12/24 12:25:44 W6Vnta1P
sourceforge以外にもこんなのがあったのか
しかもtracつきとは…
至れり尽くせりですな

234:名前は開発中のものです。
07/12/24 13:28:12 tyHiXGGL
>>232
なにこのオレオレ証明書
怖くてアクセスできません

235:名前は開発中のものです。
07/12/24 13:52:28 Qqp4Qc85
>>234
>>1のアーカイブ内に盗聴されてマズイものなんか明らかに含まれてないわけで。

そもそもソースが公開されてるわけだし。
何を怖がるの?

236:名前は開発中のものです。
07/12/24 13:59:49 QMo/K7QW
2ch的には、zipでくれ
でOK

237:名前は開発中のものです。
07/12/24 14:02:37 tyHiXGGL
>>235
>>1がオレオレ証明書の危険性とリスクを正しく理解して使うかどうか分からないので、
あえて警鐘を鳴らしてみただけ。

238:名前は開発中のものです。
07/12/24 14:11:31 Qqp4Qc85
>危険性とリスク
背伸びしてることはよくわかった

239:名前は開発中のものです。
07/12/24 14:25:18 tyHiXGGL
>>238
善意でいい場所教えてたところに水をさして悪かったね。

240:名前は開発中のものです。
07/12/24 14:34:02 mDb7ohkP
オープンソースコミュニティから認証されていれば
俺俺証明書といえどもそこらの企業が発行するよりよほど信用に値する。

241:名前は開発中のものです。
07/12/24 14:56:27 VZkDqfyR
ID:Qqp4Qc85
これがゆとりか・・・あはっ

242:名前は開発中のものです。
07/12/24 15:41:17 GMWXNbta
オペラだと証明書の警告出るからビビる事がある

243:名前は開発中のものです。
07/12/24 15:42:27 kLIOmkDP
cygwinってitoaは駄目なのか…。へー。

17時間かけて書いたソースを一瞬で17時間前の状態に戻してしまい、即svnを導入した俺が来ましたよ。

244:名前は開発中のものです。
07/12/24 15:45:19 GMWXNbta
TortoiseSVNが素晴らしすぎです

245:名前は開発中のものです。
07/12/24 16:15:18 jsxGAw5D
VSSでいいや

246:1
07/12/24 16:35:47 dQ2B5wP/
とりあえずなんか証明書が出たのはびびりましたw
オレオレ証明書って、そういう意味か。ちょっと吹いた。

とりあえず登録はしてみたものの、英語が得意ではないので、使い方がわかんない。
日本語で解説してくれるところも見つからないし
うpロダを使うよりもどういう風に良くなるのかさっぱりなんですが、
とりあえず使ってみよう、と思った次第です。

っていうか そもそもSVNってなんだ?ってレベルなので Orz
いろいろ勉強になるなぁ。。。
初心者ながらにスレ立ててよかったよ。
おまいら 本当にありがとう。


247:名前は開発中のものです。
07/12/24 19:18:12 eeQyTJgH
俺もあんまり詳しくないけどCVSとかSubversionとかでググって見ると良いかも
要するにソースを差分更新できるって奴じゃないかな。
で、バージョン戻したりとかブランチ切ったりする時に管理が楽になるんだと思う。

なんか勘違いしてたらごめん。

248:名前は開発中のものです。
07/12/24 22:15:23 vSGEO8zs
で、VC2005での開き方おね

249:名前は開発中のものです。
07/12/25 01:26:04 EFT5OR5C
おねがいします

250:名前は開発中のものです。
07/12/25 07:21:53 3AGd3eRU
空のプロジェクト作って、その中にインポートすればいいんじゃない?
試してないけど。


バックアップということを考えて、ローカルにsvn環境入れるのが吉。

251:名前は開発中のものです。
07/12/25 09:04:51 bD/x789M
無能が必死になっててワラタw

252:名前は開発中のものです。
07/12/25 09:28:03 3AGd3eRU
URLリンク(homepage2.nifty.com)
ここからVC用のを落として、 >>1のソースフォルダ中に上書き。
空のプロジェクト作って、プロジェクトフォルダに>>1の中に入ってるファイルをコピー。
最後に既存項目の追加。


でもGetColorなんちゃらが未定義だってエラーが出る。
何のこっちゃ。

253:名前は開発中のものです。
07/12/25 09:33:38 /Ih03gre
VCでコンパイルするには
DxLib.hの#define DX_USE_VISUALC_MEM_DEBUGのコメントを解除した上で
その周辺に書いてあるようにランタイムライブラリをスタティック(/MT,/MTd)にする

254:名前は開発中のものです。
07/12/25 09:58:55 3AGd3eRU
>>253
そうだった忘れてたorz


コンソールアプリケーションにしちゃってたwww
なんかもうね…。

255:名前は開発中のものです。
07/12/25 10:21:58 3AGd3eRU
win32で作り直してみたらビルドできた。わーい。


でもキーが反応しねぇ…。
最初の画面から先に進まねぇぞ。

256:名前は開発中のものです。
07/12/25 10:25:27 3AGd3eRU
>>225
>>226
>>227
>>228
をやってみた。

めんどくせぇwwww

257:名前は開発中のものです。
07/12/25 10:45:33 yp96yKtz
なんだこの無能集団はw
ソース晒すと乞食が集まってくるのな

258:名前は開発中のものです。
07/12/25 11:55:44 EFT5OR5C
ありがとう 開けた
しかしC++って本当にコード量多いんだな
別にVBでRPGを作って、今も拡張してるんだが
その3倍はあるわ


259:名前は開発中のものです。
07/12/25 11:57:43 EFT5OR5C
ちょ;しかもよく見ると未実装部分が多いな~~
動かんはずだわ;;

260:名前は開発中のものです。
07/12/25 12:55:54 QQlPLUh8
ATLかCLR使ったのでもOK?

261:名前は開発中のものです。
07/12/25 15:01:31 cauaNc1L
C++ってライブラリ面倒だよねぇ。
JavaでドラクエっぽいRPGつくってる俺は勝ち組w
ビットマップもサウンドもスレッドまで「標準」装備だから、楽だよ。

一度書けば、WindowsにMac、Linuxはもちろんちょっと書き変えて携帯でも動かせるしね。


262:名前は開発中のものです。
07/12/25 15:13:58 /Ih03gre
最近見たアクションゲームのコードはC++で3600行弱
それをほとんど分割せずに一つのファイルに書いてた
管理できる作者が凄いと思った


263:名前は開発中のものです。
07/12/25 15:14:09 iHzefklh
多様性というか宗教がね

264:名前は開発中のものです。
07/12/25 15:24:50 EFT5OR5C
今、手持ちのVB製RPGのコードを数えてみたが
システム部が530行しかないぞ?
Win標準のコントロールは多用してるが・・


265:名前は開発中のものです。
07/12/25 17:44:19 HsCI0IW/
そもそもC++とかwindows以外日陰言語じゃね?

266:1
07/12/25 19:00:35 y+e7ShHG
いろいろお騒がせしてすみません。
>>255
最初の画面で なにかぼたんをおしてください と出てますが
反応するのはじつは【X】だけです。
ちゃんとわかるように修正しました。ごめんなさい。

>>225-
>>225
 プリプロセッサが良くわかんないので、ごめんなさい。
>>226
 僕がコンパイルしたやつが上手く起動できるか教えていただけますか?
 Init()の前に書くと、最大で表示されてから、ウインドウに戻るのがなんかかっこ悪くて、もたつくので避けたいです。
>>227
 定数を設定しているconst.hに
#ifdef _DEBUG //VCのDEBUG定義用
#define DEBUG
#endif
 と追加してみました。 これで多分動くと思います。
>>228
直しました。リファクタリングが完璧じゃなかったですね。ほんとごめんなさい。

225さん、マジ感謝です。

267:1 続き
07/12/25 19:01:04 y+e7ShHG

>>229
 ごめんなさい、わかりません。

>>232
 openSVNは英語でさっぱり分かりませんでした。
 使い方が理解できるようになるまでは今までどおりでいくのでお願いします。

>>258-
ソースが長いのは僕の力量不足が原因だと思います。
初心者なんであんまり激しく叩かないでね(はぁと


MsgBox::lineIndex が初期化されていなかったバグを修正しました。
パーティアタックができるようになりました。
戦闘のコマンドのカーソル位置が前回の位置のままだったのを、常に一番上になるように修正しました。
フィールドのコマンドで、何を選んでも一応反応はするようになりました。
「しらべる」を実装しました。
なんちゃってスクリプトにGetItemを実装。でも、持ちきれなかった時の処理はまだやってません。

ちゃんと何を持っているかを表示して、選択して使えるようにしたいです。
URLリンク(sakuratan.ddo.jp)

268:名前は開発中のものです。
07/12/25 22:07:35 YDMhjtcq
>>262
まぁ、3600ぐらいなら稀にいるよなwww
保守なんかでぶち当たると、担当者をおもいっくそぶん殴りたくなるけど。

269:名前は開発中のものです。
07/12/25 23:06:27 a/8xYA/E
ワシのコードは20000行まであるぞ

移動手段は主にCTRL+F。

270:名前は開発中のものです。
07/12/25 23:20:42 ag668EB8
イタリアンなスレでした。ごちそうさま。

271:1
07/12/26 02:57:21 1u83AD+Q
>>270
関係ないけど、僕チーズ苦手なんだ。
今、克服しようとがんばってるんだけど、なにかいい克服方法ないかな?


戦闘中に表示されるメッセージがとりあえず変になる不具合を修正しました。
アイテムコマンドが開けて、アイテムを捨てられるようになりました。
【つかう】と【わたす】も一応開いて、相手を選べるけど何もおこりません。

はやく使えるようにして、あと そうびもできるようにしたいなぁ…
URLリンク(sakuratan.ddo.jp)

272:名前は開発中のものです。
07/12/26 10:56:47 7EU3RgUI
2000行のRPG(VC++)だと、こんな感じみたい。

URLリンク(www.sm.rim.or.jp)


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

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

275:名前は開発中のものです。
07/12/26 15:46:09 SCmg4E2p
YOzFontOTWLが好き

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

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

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

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

278:名前は開発中のものです。
07/12/27 19:25:50 StfaQThG
いや普通に出来たと思ったが。>>Eclipse

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

279:名前は開発中のものです。
07/12/27 23:34:33 5OqnPp7P
>>269
なんという俺ww

280:名前は開発中のものです。
07/12/27 23:50:02 kJ7Tc5xf
VCEEてどとねとしか作れなくね?

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

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


282:名前は開発中のものです。
07/12/28 17:46:11 bBukVEqP
linuxでも動くようにSDLかirrichtでおk

283:名前は開発中のものです。
07/12/28 21:00:05 vFKC9i1/
>>282
釣りか?
突っ込み所満載なんだが

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

285:名前は開発中のものです。
07/12/29 21:57:12 Wv0RLQJj
ほす

286:名前は開発中のものです。
07/12/30 00:19:42 BeUezp3c
【目指せ】2ch_city【世界一】

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

・人口 URLリンク(2chcity.myminicity.com)<)
・交通 URLリンク(2chcity.myminicity.com)
・治安 URLリンク(2chcity.myminicity.com)
・環境
・ビジネス

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

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

■参照画像
URLリンク(www.uploda.org)
URLリンク(www.imgup.org)
URLリンク(www.vippers.org)

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

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


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

289:名前は開発中のものです。
07/12/30 10:19:34 D5MQ9R0C
非2ch民乙

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

291:名前は開発中のものです。
07/12/30 13:47:05 bQOjHSJq
2ch発にこだわるバカだろ

292:名前は開発中のものです。
07/12/30 20:57:55 vox8eoxh
【目指せ】2ch_city【世界一】

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

・人口 URLリンク(2chcity.myminicity.com)<)
・交通 URLリンク(2chcity.myminicity.com)
・治安 URLリンク(2chcity.myminicity.com)
・環境
・ビジネス

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

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

■参照画像
URLリンク(www.uploda.org)
URLリンク(www.imgup.org)
URLリンク(www.vippers.org)

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


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

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

294:名前は開発中のものです。
08/01/01 00:16:46 6htQfom6
>>1 は にげだした

295:名前は開発中のものです。
08/01/01 12:44:38 bYZxBYfp
ドラクエの逃げる効果音は秀逸

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

297:1
08/01/02 13:30:49 MAyGlp63
あけましておめでとうございます。

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

URLリンク(sakuratan.ddo.jp)


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

URLリンク(sakuratan.ddo.jp)

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

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


299:名前は開発中のものです。
08/01/04 14:01:08 aDuyr57S
Sugeeeeeeeeeeeeeeeeeee

300:名前は開発中のものです。
08/01/04 14:31:35 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:名前は開発中のものです。
08/01/04 14:59:40 0MJJiUxP
ファイル分割と前方宣言を駆使すれば
循環インクルードは回避できるYO!

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

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

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

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

URLリンク(sakuratan.ddo.jp)



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

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

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

306:1
08/01/04 20:22:51 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:名前は開発中のものです。
08/01/04 20:27:35 4fMs9e5G
>>305
なるほど。確かにそんな感じがします。
個別に作っていって見ますね。
デザインパターンはGofは買ったんですが、半分くらいしか読んでねぇ。Orz
経験を重ねて、どう便利なのか理解しないと、身にならないなー、と実感してる次第でございます。

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

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

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

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

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


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

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

312:名前は開発中のものです。
08/01/05 20:50:04 ycLLo6O8
パターンとゲームエンジンは危険

313:名前は開発中のものです。
08/01/05 23:48:21 CJpqsrn9
デザパタとかアホが参考にするもんだろ

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

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

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

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

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

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


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

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


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

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

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

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


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

322:名前は開発中のものです。
08/01/07 01:02:22 YQu/Z7rd
削除人はあなた方の消しゴムではありません

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

URLリンク(sakuratan.ddo.jp)

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


324:名前は開発中のものです。
08/01/07 20:59:30 yiUETlQX
すげーよ、がんばれ

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

URLリンク(sakuratan.ddo.jp)

326:名前は開発中のものです。
08/01/08 09:52:24 D3pjyDXl
テスト

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

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

329:名前は開発中のものです。
08/01/09 03:23:20 yeQM8ZEN
濁点が<
なのがなんか泣ける
でもそんなの関係ねぇ~

がんばれ

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

URLリンク(sakuratan.ddo.jp)

331:名前は開発中のものです。
08/01/10 22:36:10 1zT0fMGD
ここのスレを見て、
>>1の晒したEXEを実行してみた。

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

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


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





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

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

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

URLリンク(sakuratan.ddo.jp)
次は戦闘中の武器持ち替え対応か
→ はい
   いいえ
の選択窓か
あと呪文?

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


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


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


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

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

URLリンク(sakuratan.ddo.jp)

336:名前は開発中のものです。
08/01/11 22:37:41 8z4xaIl1
すげーことやってんなw

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

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

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

説明のしかたがへたくそだなぁ… Orz
URLリンク(sakuratan.ddo.jp)

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

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

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

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

342:名前は開発中のものです。
08/01/12 21:00:00 PD5xMP0i
過去40万年の気温変化
URLリンク(www.teamrenzan.com)

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

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

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

345:1
08/01/14 06:17:05 aSQurjHs
【そうび】コマンドを実装しました。
思ったよりはすんなりできたかもしれない。

URLリンク(sakuratan.ddo.jp)

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

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

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


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

347:名前は開発中のものです。
08/01/14 19:50:06 UuCFVpAj
>>344
それが普通だと思うよ

348:名前は開発中のものです。
08/01/14 22:32:53 G0SwQqXv
この板の普通といえば逃亡だろ

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

350:名前は開発中のものです。
08/01/15 00:43:14 C2FoLMEe
そんなもの完成するまで作る必要なし

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

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

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

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

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

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

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


354:名前は開発中のものです。
08/01/15 19:18:51 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:名前は開発中のものです。
08/01/15 19:22:55 TKI/oqBM
悪かったところばかり挙げていると、
>>1がへこんでしまうだろうから、最後に良かったところを挙げる。

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

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

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

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

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

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

356:名前は開発中のものです。
08/01/15 23:48:33 UO44uzzc
Window閉じたけどpostpuitしてないって奴か?

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

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

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

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

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

URLリンク(sakuratan.ddo.jp)

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

359:名前は開発中のものです。
08/01/16 08:16:39 9K3RdyGz
ごめ、post"q"uit w

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

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

361:名前は開発中のものです。
08/01/16 17:11:20 dnCNkhgK
>>360
ソース見てないから、適当な発言だが

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

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

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




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

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

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

365:1
08/01/17 21:23:10 HCFfaCxW
あ、本当だ… Orz
右も左も分からない時に書いた箇所だ…

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

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

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

URLリンク(sakuratan.ddo.jp)
削除パス設定し忘れた… Orz




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch