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

このエントリーをはてなブックマークに追加
934名前は開発中のものです。:2008/04/28(月) 09:27:50 ID:1byUW4+2
携帯はC言語だろ
935名前は開発中のものです。:2008/04/28(月) 09:47:38 ID:+ItDL5tD
このスレも終焉を迎えているようだな
この板の流れはいつもこうだ
936名前は開発中のものです。:2008/04/28(月) 10:23:22 ID:Teb0uPLP
>>933
おいおい。
いつの時代の話だw

今の携帯は、jarも100KBが最低線、MBアプリが標準の一角に入り込もうとしている状況だよ。
携帯/PC両用のJavaライブラリ(DoJa/MIDP2.0/Java2SE対象)だって、十分現実的(実際、やってみたことがある)。
937名前は開発中のものです。:2008/04/28(月) 11:38:16 ID:6/mav3Ok
>>936
どんなしょぼいアプリなの?
仕事でやってたら普通にキツキツ
938名前は開発中のものです。:2008/04/28(月) 11:58:42 ID:whTKnOvF
>>936
似非オブジェクト指向乙
939名前は開発中のものです。:2008/04/28(月) 17:21:33 ID:hbTwTj/G
どんだけプログラムができる連中なのかは知らないが
スレ違いの話題で馬鹿みたいに盛り上がってるのを見ると
人間的には・・・だな
傍から見ててみっともない
940名前は開発中のものです。:2008/04/28(月) 17:30:17 ID:whTKnOvF
>>939
まぁもちつけ。
スレの頭から読み直せ
941名前は開発中のものです。:2008/04/28(月) 17:56:39 ID:9cIDDrog
1ってもう一週間くらい来てないのか?俺もゲーム作るの遅いけど頑張ろうぜ!!
942名前は開発中のものです。:2008/04/28(月) 18:26:31 ID:YSHpPx0n
はなす >>1
へんじがない。ただのしかばねのようだ。
943名前は開発中のものです。:2008/04/28(月) 18:31:33 ID:4prTFfqn
選ぶのはC++でいいんじゃない?
どのみち色んな言語渡り歩くんだろうし。

スレ違いとも言われないしなw
944:2008/04/29(火) 03:38:37 ID:+dE29e3P
なかなか修正が終わりません。
作業時間が減ったのも要因ですが、やっぱり力不足と作った関数の流れを忘れていて作業効率が落ちている感じです。

フィールドのFlipScreenを一つにまとめる、ということで修正してますが
メッセージコマンドの扱いで悩んでます。
扱いというか、文字の表示の仕方、っていうんですかね?

それとクラス構造で迷ってます。
シーンはオープニングと移動と戦闘の三つ。
FieldクラスとBattleFieldクラスの親クラスとして抽象的なクラスを作り、それを継承したOpeningFieldクラスを追加。
それぞれに対応したAgregateCommandクラスを持ち、
キー入力を受け付けるcontrol()関数と、描写を行うdraw()関数を実装する。

なんかよく分からない文章になってます。通訳が必要かもしれません。Orz

今までの今までの成果物上げておきます。
あと極端な脱線はスルーしますが、今まで位の脱線は好きです。
書き込みが無いのは分からない単語を少しずつ調べて飲み込もうとしてるからです。

へたれな1ですが、まだまだ続けます。よろしくです。
tp://sakuratan.ddo.jp/uploader/source/date80026.lzh
945931:2008/04/29(火) 04:44:17 ID:Xk4jJJyO
>>932
thx

>>933
これから趣味でやるなら何がいいかなと思っただけなので
946名前は開発中のものです。:2008/04/29(火) 08:51:47 ID:/lmprzCX
タスクシステムやっとけ
947名前は開発中のものです。:2008/04/29(火) 16:01:07 ID:jsqLnRsc
>>945
全くの初心者ならHSPでも便利と感じてしまうし、
初心者でないならかえって不便に感じるし…
どの程度できるのか知りたいっていうのはそういう意味

旬は動的言語と.NETだけれども、初心者&ユーザー視点では抵抗あるだろうね
948名前は開発中のものです。:2008/04/30(水) 00:35:27 ID:YVwxJ37t
>>944
なんか、ファイルが開けないと出て
遊べないんだよね
俺の環境のせい?
ファイルパスのマルチバイト文字とか
そこら辺が問題の予感
949名前は開発中のものです。:2008/04/30(水) 02:14:25 ID:dm94fi1G
>>948
Cの直下に置いてみた?
950名前は開発中のものです。:2008/04/30(水) 20:01:46 ID:m5kTmUDX
オブジェクト指向がよく分からん
1のコードをVBに移植しようと思うんだが
クラスに入力情報を受ける関数をぽんと作ればいいのかな
951名前は開発中のものです。:2008/04/30(水) 20:03:11 ID:m5kTmUDX
>>947
それはいえてる
俺たちおっさんは.NETすげーだけど
初心者は案外そうは思わないようだ
952名前は開発中のものです。:2008/04/30(水) 22:26:32 ID:m5kTmUDX
まず冒険の書とか選ぶ部分は
バイトリード+コモンコントロール・・・を使うのがセオリーだって
僕なんかは思うんだが

↑のソースではループしながら入力を検知するみたいで
なんか・・よく分からん
結局元のコードは無視して冒険の書は1から作り直した。
まぁVBだから早い。1日で出来た

他にもある
戦闘シーンが出てきて全体攻撃などでAI振り分け処理があるんだが
そのもともとのデータをポインタ参照で取得しているが
VBにはポインタがなくてよー分からんw

だれかフォローおね
953名前は開発中のものです。:2008/04/30(水) 22:52:28 ID:m5kTmUDX
まだまだある
キャラクターの基底クラス?とかあるけど、変数データが山のように
だらだらと・・・パラメータをまとめるヘッダファイルとかもあるが
VBだったらこれは多重継承に書き換えてOKだよね?

別に非難している訳じゃない
Field.cppとかよく出来てる
ここら辺は参考になった・・・けど、手元で別に開発している
ゲームプログラムとそっくりだ
結局マップチップの処理は愚直に場合分けする
しかないという結論になるのかな

954名前は開発中のものです。:2008/04/30(水) 23:07:17 ID:tyYl+BZ6
>>949
ソース見てたら、ただ単に未実装なだけの気もしてきた
すまん
955名前は開発中のものです。:2008/04/30(水) 23:21:14 ID:V/TwBdKB
>>950-953
久々に触って熱くなってるのか知らんが少し落ち着いてくれ
いじるのも設計見直すのも勝手だが、連4レスとかがっつきすぎだろう
ポインタと同等な機能の実装はググったら参照渡しとか出てくるよ
956:2008/05/01(木) 23:14:17 ID:7qrsvu5o
>>950
僕ごときのソースを改変しようとか言われてちょっと嬉しかったりします。

冒険の書選択画面もフィールド移動も戦闘も、なるべく同じように扱おう、という考えでこんな感じになってます。
ちなみにバイトリードって何ですか?コモンコントロールはぐぐったらなんとなくは理解できました。

キャラクタの基底クラスの変数郡は… 
今のところ力、素早さ… 等のパラメータはMetaStatusクラスとしてまとめて持たせてますが、
どうやってまとめたらすっきりしますか?アドバイスいただけたら嬉しいです。

そういえばそろそろ次スレ立てた方がいいのかしら?
957名前は開発中のものです。:2008/05/02(金) 00:05:36 ID:0Fx+UNNq
>>956
VBですとクラスの多重継承の間にモジュール構造体をそのまま
取り込んだりも出来るんで、クラス数を抑えながら非常に複雑な
プログラミングが出来るんです

すいませんがC++は詳しくは知りません
多分お作りの内容で最善に近いまとめかたではないでしょうか
958名前は開発中のものです。:2008/05/02(金) 00:07:22 ID:0Fx+UNNq
要するに移植するにあたってのこっちの都合ってことです;
せっかく手間をかけて作業するんだから↑のようなVBの
メリットを生かして、ついでに元のコード量を大幅に
削減したいなということです

それだけです。すいません
959名前は開発中のものです。:2008/05/02(金) 02:40:01 ID:+Vg7G+ZR
>>957
は?VBで多重継承なんかできないでしょ?
960名前は開発中のものです。:2008/05/02(金) 04:53:59 ID:W+spjiUa
FCのドラクエなんてアセンブラでしょ。 多重継承は使ってませんよ。
961名前は開発中のものです。:2008/05/02(金) 08:31:40 ID:+Vg7G+ZR
>>960
とりあえず黙っててくれないか
962名前は開発中のものです。:2008/05/05(月) 18:21:24 ID:mspxDfm7
見事にスレを止めた>>961
963名前は開発中のものです。:2008/05/05(月) 21:03:29 ID:bM7ttr2Y
960gj
俺たちは1の動きを待ってるぜ。
964名前は開発中のものです。:2008/05/05(月) 23:34:41 ID:dnPAwGNu
FCのドラクエといえば会話中、ウインドウ表示中は一切他のオブジェクトが動いてないから
C言語+DXライブラリでいうところの for(i=0;i<60;i++)ScreenFlip();
みたいな処理がいたるところにあるんだろうな・・・
色んな処理を各関数内で完結できそうで楽そう
965名前は開発中のものです。:2008/05/06(火) 01:30:32 ID:EviW9RDm
モンスターの行動が【たたかう】以外もできるようになりました。
スライムべスがこうげきとメラを3:1の割合で使ってきます。

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

Flipの一元化ですが、挫折しそうです。 Orz
メッセージの表示で挫折。
イベント実行中で挫折、です。
よく考えたら、これってマルチスレッド処理にした方が楽なんじゃないか、というか
マルチスレッドっぽいものを自力で実装をするのに他ならないんじゃないか、という事に気がつきました。

いままでちまちまやってきたことが無駄になりそうですが
これはそのままにしておこうと思いました。
必要が出てきたら直します。

p.s.
またもやアク禁です。
次スレ立てられないけど、過疎スレだしなんとかなりますよね、きっと。
966名前は開発中のものです。:2008/05/06(火) 02:39:06 ID:WOM/spyE
はじめてきたが、お前はだれだ?
967名前は開発中のものです。:2008/05/06(火) 02:43:10 ID:8rS0+5WG
次スレは有志が立ててくれるさ

ところで、描画は一つのクラスに纏めた方がいいかもね
Flip云々より、複数のクラスに描画処理があるのが問題だと思う
実際流れが把握できてないみたいだしw
968名前は開発中のものです。:2008/05/06(火) 02:43:43 ID:8rS0+5WG
はかせ名前名前ー!
969名前は開発中のものです。:2008/05/06(火) 02:53:26 ID:KlSvD65Q
思うままにマルチスレッド使おうぜ
970名前は開発中のものです。:2008/05/06(火) 03:16:57 ID:KUBYYhJx
>>963
何がgjなのかわからん

>>960って、詭弁の定義にモロあてはまってるから
そもそも何を言いたいのか俺にはわからねえ…
971名前は開発中のものです。:2008/05/06(火) 08:02:43 ID:5MeL008e
>>967

最適の手法なんてものは時と共に変化するよ
972名前は開発中のものです。:2008/05/06(火) 09:22:43 ID:Mjb5jGkE
俺なんかはウィンドウズプログラミング始めるときに描画処理とゲーム処理で完全に分けるスタイルに変更したから
エミュレータとかにあるようなターボモードとかスローモーションとかも実装できたよ。
おかげでめんどいとこは飛ばせるぜ
973名前は開発中のものです。:2008/05/06(火) 10:24:27 ID:GzFpALvZ
描画処理はコールバックに、
ゲーム処理はメッセージループに書くとか?
974名前は開発中のものです。:2008/05/06(火) 10:32:39 ID:7NG3eqmK
ドット絵に足踏みさせないの?w
975名前は開発中のものです。:2008/05/06(火) 12:29:43 ID:o5unedUS
>>971
それはそうかもしれないが、
この場合は纏めるとこから始めた方がいいと思うんだよね
基礎勉強の意味でも
976名前は開発中のものです。:2008/05/06(火) 16:19:38 ID:KUBYYhJx
>>967
描画を1つのクラスまとめるってどういうこと?
ゲーム内オブジェクトをPaintクラスが全て追跡して描画とか?
そんな極悪な設計は考えられん…
977名前は開発中のものです。:2008/05/06(火) 16:58:35 ID:GABAW0Yk
>>976
確かに一つのクラスてのは言い過ぎだったかも
でも、描画を分離することに意味はあるはず
978名前は開発中のものです。:2008/05/06(火) 19:41:47 ID:IfzoUQfN
ゲームプログラミングにおいては>>972のやり方が普通だね
描画と状態の更新は分ける、コレ基本
で、全てのゲームオブジェクトに更新メソッドと描画メソッドを追加する
そしてメインとなるクラスから
メインループ {
更新();
if (フレームスキップするか?) {
描画();
ScreenFlip();
}
}
とするだけ、あとは各メソッドが芋づる式に呼ばれる。
979名前は開発中のものです。:2008/05/06(火) 20:38:09 ID:i9CaJWKJ
愛はいつだっていもづる式さ
980名前は開発中のものです。:2008/05/10(土) 15:08:28 ID:sh7lMsdw
恋はいつでもオブジェクト指向〜♪
981名前は開発中のものです。:2008/05/10(土) 16:15:25 ID:DKWlwNux
別スレッドにするって意味だと思ってた。
>>978さんのやり方だと処理落ちしそうなときに描画をスキップするだけ。
前回描画から17msより多く経過してたら描画スキップ。
982名前は開発中のものです。:2008/05/10(土) 17:10:17 ID:Fd+wQ6fZ
てかDXライブラリなのか。
普通に書く場合はメッセージループで一定時間経過したらゲーム処理+描画呼び出し
コールバックでWM_PAINTが来たら現在の状態を表示だな。ライブラリはどうなのか知らんが、
こうしないとウィンドウの一部に無効領域(だっけ?)ができた時にそこが真っ黒になっちゃうからな

メインクラスの描画関数が呼ばれたら、そこから更にキャラの描画関数を呼び出すって感じで
芋づるすれば、各クラス内で完結した形になる。
983名前は開発中のものです。
>>979
テラナツカシス