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
366:名前は開発中のものです。
08/01/17 21:56:13 6FxDnuCV
複数ある時点でメッセージキューの仕組みが破綻すると思うのだが
367:名前は開発中のものです。
08/01/17 22:17:21 /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:名前は開発中のものです。
08/01/17 22:18:56 yQ/WXoAm
最初から人様の作ったラッパー使うのはどうかと
369:名前は開発中のものです。
08/01/17 23:32:10 HfiR7GrD
別にいいよ
>>1はゲーム作りじゃなくてC++の勉強してるんだろ
370:1
08/01/17 23:39:44 HCFfaCxW
winMain以外の関数でループさせないほうがいい、って事ですよね。
格ウインドウのgiveControl関数でループがあり、処理を投げているので
ほぼ一からやり直しになると思います。
×ボタンはつかわないでください、とコメントを添えて配布?とか思ったけど
そんなもん読む人はいないと思うので、(守らないと思うし)
苦肉の策で setKeyInputで呼び出したProcessMessage()が-1を返す時に
その場でDxLib_End()とexit()を呼び出してみました。
僕がテストした範囲内ではタイトル、移動、戦闘、全部Xボタンで正常終了することができました。
お手数ですが、興味のある方、検証お願いします。
大丈夫だったかダメだったかカキコしていただけると大変助かります。
URLリンク(sakuratan.ddo.jp)
371:名前は開発中のものです。
08/01/18 00:20:44 NZS+eY32
C++の勉強なら余計に人様のラッパー使わない方がよくない・・・?
勉強とかいうつもりがなくてただゲーム作るだけなら有り物で近道した方がいいかもしれないけど。
372:名前は開発中のものです。
08/01/18 00:35:48 Y9jpO8YC
>>371
ポリゴンで疑似スプライトから、とか?
そのほうが順番おかしいだろ
DirectXの勉強が主体になっちまう
373:1
08/01/18 00:50:54 tZf/+rJ/
371さんが言いたいのは、DxLibなしでは何もつくれなくなるようなヘたれになるぞ、って警告ですよね?
その忠告、しっかり胸に刻んでおきます。
DxLibを使うようになった経緯の一つに、そもそもライブラリとは何か、すら分っていなかったというのがありまして。
コンソールでHelloWorldを出力して、次にやろうと思ったのがこれなんです。
その程度の初心者が行き当たりばったりではじめたスレなんです。
勉強をかねて、とはいえ、やっぱり愛着もあるわけで
完成させたいんですよ。
シナリオとかも妄想をメモしてる程度ですが、書き溜めていますし。
で、これからの方向性ですが
ランタイム部分は従来どおりDxLibを使っていって
ツクール部分を作る時はDirectXも使わないで作ろうと思っています。
全部完成したら、2DアクションMORPGを作りたいとか思ってます。
これからもがんばるので、なにとぞ応援よろしくお願いします。
>>3-372
374:名前は開発中のものです。
08/01/18 02:20:52 vnoeWmB4
HellowWorldの次がこれって階段飛ばしすぎだろw
それでここまで作れるってんだから
LV1の勇者が偶然の会心の一撃ではぐれメタル倒しでもしたようなLVアップだな
その心意気は買うけどw
ゲームのプログラムやるならDxLiv使ってもいいと思うよ。
1なら大丈夫カモ知れないけど、DirectXの勉強から入る大概の奴は途中で挫折するし。
375:名前は開発中のものです。
08/01/18 05:15:51 fmL4VK0l
DirectXは初級者には難しいからな
とても素人の手には負えない代物
ラッパーライブラリから入るのは強ち間違ってないな
376:名前は開発中のものです。
08/01/18 07:02:39 cTq/87tt
SDLやopen_glを使ってくだちい<><><><>
377:名前は開発中のものです。
08/01/18 13:03:50 xQ14t5Bn
ライブラリを使いこなして組むことも勉強(経験)の一つだよ。
これができない奴は生産性が恐ろしく低い。
勉強はともかく時間とモチベーションは有限なんだから1がやりたいことをやるべきだ。
378:名前は開発中のものです。
08/01/19 12:25:38 57iRLZiD
俺はゲームのライブラリ作成で挫折した口だ。
ゲーム創るのって難しいんだよな。
特に何もかもを自分で作らないといけないC/C++言語の場合。
だから最近はRPGツクールやHSPに逃げる人が増えているのではないか?
379:名前は開発中のものです。
08/01/19 13:22:38 3gX+QM4P
何もかもを自分で作らなきゃならないと思ってるからモチベーションがもたないだけ
趣味プロは、やりたい所以外は楽してもいいんだよ
380:名前は開発中のものです。
08/01/19 13:32:47 qd03KsuI
俺はエディタや開発環境の構築で挫折したよ
381:名前は開発中のものです。
08/01/19 15:47:36 gSyG+qPE
俺はRPG用ツール(マップエディタやドット絵作成ツール)の開発に熱中して結局RPG本体は作る機会を逸しているよ
382:1
08/01/19 15:50:28 IEEE/S8f
なんか僕、ライブラリの意味が分ってないみたいです。
再利用しやすい形でまとめたプログラムの塊、って思ってたんですが、それだけじゃないのかな?
dllとか共有ライブラリとか、掘り下げれば一晩語れそうなくらい深い…?
でもOpenGLはおもしろそう。XBoxで動くらしいじゃないですか。
コンシューマで自作ゲームが動くなんて!
問題は僕の周りに僕以外にX箱もってる人がいないことですね。ねらーはPCもってるだろうし。
***************************************************************
戦闘中に呪文が使えるようになりました。
MP回復アイテムを実装しました。
URLリンク(sakuratan.ddo.jp)
つぎはルーラとか実装しようかな。
戦闘の呪文が9個以上の時の対応しなくちゃ Orz
383:名前は開発中のものです。
08/01/19 17:02:16 Z9p4bTX2
HelloWorldの次に手つけてここまでやれてるってまじかよw
しかも次なる目標2DアクションMORPGとか>>1なら本当にやれそうだし
久々に焦りを感じた。これは俺も何か形になる物を作らねば
384:名前は開発中のものです。
08/01/19 17:45:24 HocoF4ik
俺はライブラリとサンプル作りながら作業は順調に遅れてる
385:名前は開発中のものです。
08/01/19 20:31:54 M1k0mHX6
XBOXで動くのはXNAだよ
【Xbox360】 XNA Game Studio その4 【C#】
スレリンク(gamedev板)
386:名前は開発中のものです。
08/01/19 20:46:07 efIJqSsS
ゴ ゴ ゴ ゴ ゴ ゴ ゴ ゴ
/\ /|
/ /| \/ |(\ /)
/ / | \|( ゚ー゚) <全力でBCCを捨てVCに移行せよ
/ / | __〃`ヽ 〈_
/ γ´⌒´--ヾvーヽ⌒ヽ
//⌒ ィ mfc `i´cli ); `ヽ
// ノ^ 、___¥__人 |
/ ! ,,,ノ爻\_ _人 ノr;^ > )
/ ( <_ \ヘ、,, __,+、__rノ/ /
ヽ_ \ )ゝ、__,+、_ア〃 /
ヽ、___ ヽ.=┬─┬〈 ソ、
〈J .〉、| |, |ヽ-´
/"" |ATL|: |
レ :|: | リ
/ ノ|__| |
↑ /| ,, ソ ヽ )
\_/ .,ゝ ) イ ヽ ノ
y `レl 〈´ リ
/ ノ | | .
l / l;; |
〉 〈 〉 |
/ ::| (_ヽ \、
(。mnノ `ヽnm
387:名前は開発中のものです。
08/01/20 15:27:22 gNdOCc+8
~がやりたい→試しに実装してみる→せっかくだから汎用的なクラスにしよう
→せっかくここまでやったんだからどうせならこの機能も付けとこう
→ベース部分のコードばっかり増えて全然ゲームが作れない
助けてくれ
388:名前は開発中のものです。
08/01/20 17:05:47 hrOxsR47
妥協無くして形にならず
とりあえずかたちにしたいならいい加減な吶喊工事が一番さ
389:名前は開発中のものです。
08/01/20 18:23:03 WjtNncJn
>>387
>→せっかくだから汎用的なクラスにしよう
ここまでで止める
390:名前は開発中のものです。
08/01/20 18:50:59 ImQG3BnS
>~がやりたい→試しに実装してみる
いつもここで止まる俺は、何が足りないんだろうね?
391:名前は開発中のものです。
08/01/20 20:53:01 3ekNMmoB
「こういうものを作りたい」という完成形が頭に描けないことかな。
多分、ちゃんとした絵と音楽があれば、やる気が俄然違うはず。
それらがないから、ちょっとプログラムの実験をして満足、みたいな。
392:名前は開発中のものです。
08/01/20 21:23:11 6uADG+oQ
Kneel to the Emperor of Japan.
You are a Korean. It is ugly race.
393:1
08/01/21 04:26:01 VsfG21W1
>>386
BCC Developerの便利な機能をやっと把握し始めたところなのに… Orz
呪文で、一定数(8個)を超えるとページが送れる仕組みでちょっとてこずってます。
断片的に思いついた事が一つにまとまらない感じ。
紙に箇条書きと自分にしか分からない図を書いて最適解を探してます。
最適解って言っても、全然【最】適ではないんだろうけど。
【とりあえず動くもの】を作るのが楽しくやる秘訣だ、ってどっかで見ました。
自分が書いたプログラムが動くのが楽しいので
ベースのクラスからかっちりくみ上げていくとモチベーションが持たないらしいです。
ところで、ツクール部分はWinAPIで作ろうかと考えていたんですが、
面倒くさいからやめとけとか、そういうのはこのライブラリを使えとかありますか?
ちょっと先のことになりそうですが、先に聞いておきたいなー なんて思ったりして。
394:名前は開発中のものです。
08/01/21 08:18:29 Pz6N6vbp
> BCC Developerの便利な機能をやっと把握し始めたところなのに… Orz
VCを使うとBCCの糞さに気づいてVCマンセーするに100ペリカ
うだうだ言い訳する前に試しに使ってみろ
395:名前は開発中のものです。
08/01/21 11:58:46 MLczczSF
おれは、他のサンプルプログラムをDLして、コンパイルすると
リンクエラー"mfc42d.lib"が見つからん。というのをみて挫折した。
対処方法をググって見たけど、プロジェクトファイルにそんなmfc42dをリンクする設定なんてなく、
アプリケーション形式も、Win32アプリに設定しているにもかかわらずだ。
コンパイラ自体扱えない俺にはC++は無理だと悟った。
396:名前は開発中のものです。
08/01/21 12:46:36 D+puFnUV
>>395
mfc42d.libって、えらい古いライブラリだな。
たまに使っているプログラム見るけど。
mfc42d.libはちゃんと持っているのか?
プロジェクトにはライブラリまでのパス通したか?
>>393
別に無理してVCに移行することはない。
むしろ、初心者のうちにBCCあたりで苦労しておいた方がいいと思う。
俺はBCC Developer->VCへと移行したが、BCCの苦労も役に立ったぞ。
397:名前は開発中のものです。
08/01/21 13:10:26 gT2U2JAO
ツール類は普通に考えるとMFCなんだろうが有料だしな・・・
自分しか使わないならJavaでもRubyでもPythonでも何でもいいんじゃ?
自分用のツールは楽に作れる言語とライブラリでサクッと作るべき
398:名前は開発中のものです。
08/01/21 15:06:45 4uf1EjU0
普通に考えたら.NETなんじゃないの
399:名前は開発中のものです。
08/01/21 16:09:39 5xd0Lli5
>>378
逃げるって言うか現実的な妥協策だろ
400:名前は開発中のものです。
08/01/21 16:13:16 0dbr+6K/
普通とかわけわからん。
使い慣れた方法つかえばいいよ。
データだけならテキストエディタでもExcelでも作れるし。
HSPでサクッと作れるならそれでやりゃいい。
.NETってのが何を指すのかしらんがそれで作りやすいならそれでやりゃいい。
ツールだしな。
401:名前は開発中のものです。
08/01/21 16:36:37 SNqbI5o2
>>393
とりあえず、ツール類なら「バイナリデータが扱いやすい環境」が欲しいね。
バイナリデータを直感的に扱いにくいJavaやスクリプトはやめておいた方が良い。
できればC/C++、GUIの作りやすさ優先ならC#あたりか。
ツクールとして一体化させたい(今作っているシステムをツクールで作ったシナリオ
実行系に作り直したい)というのであれば、今のライブラリでいけそうならそのまま
行けばよいし、ライブラリを使う利点を感じないならAPIベースで組めばよい。
個人的には自力描画中心で描画も単純なドラクエ系RPGなら、自由度の高いAPI
(DIBSection)ベースの方が作りやすいが。
ただ、この部分も出来ればエディタ部分と同じ環境で開発しておくと「部品」を使い
まわしたり統合しやすくなるかな。
402:名前は開発中のものです。
08/01/21 20:12:37 KV4/mVtg
Javaでドラクエ風のゲーム作ってる俺から言わせてもらえば、
Javaは特にバイナリを扱いにくいということはないと思うぞ。
ただ、ツール作るには確かに向いてないかも。
javax.swingでツール作ってたら、
JDKを5から6に上げた途端動かなくなって俺涙目。
403:名前は開発中のものです。
08/01/21 20:20:55 OwrF49yn
VC#は使い易すぎる
タダだし
404:名前は開発中のものです。
08/01/21 20:23:20 NNIybW4r
好きなの使え
誰も止めない
405:1
08/01/21 20:35:30 VsfG21W1
みんないろいろありがと!
実は環境設定とかが苦手で、DxLibを使うに至ったのもDirectXをそのまま使えなかったから、でした。
みんなの意見を参考にしていろいろ試して、自分に合うものを探してみるよ。
406:名前は開発中のものです。
08/01/21 20:41:57 GWNEjOJ7
自分は逆にVC6からBCC(Developer)だな。
アカデミックで商用は作れなかったのと、
どうせWin32APISDKしか使っていなかったので。
プロジェクトファイル名前順並び替えだけツール作って行っている。
407:名前は開発中のものです。
08/01/22 02:25:51 wx3uD/aG
VCだBCCだ言う前にIDEじゃない素の環境を経験するほうが大事な気がする
そうすればリンクエラーでつまづくとかありえないから
そんな大前提の知識もなしにOOP語ってるからあきれるを通り越して笑える
408:名前は開発中のものです。
08/01/22 02:36:36 6clbrVe2
老害がここにも
409:名前は開発中のものです。
08/01/22 05:38:58 Gv4Ssyc0
GCC(MinGW)はどう? 全部フリーで商用も可能w
実際吉里吉里3はMinGWで作ってるらしいよ
URLリンク(sv.kikyou.info)
410:名前は開発中のものです。
08/01/22 08:47:44 IQmrOM9L
あまり考えすぎてモチベーション下がらないようにな
全員が完全に納得する選択なんてないし趣味の範囲の事だ
411:名前は開発中のものです。
08/01/22 09:32:24 51mKF/+V
emacsとかgnuのツールを使えるようになれば今より確実にコードの質や作業効率はあがるだろうけど、
そうなるまでにソフトが2つ3つ完成するぐらいの時間がかかるからなぁ。
「C++の勉強してたのにいつの間にかperlやlisp、シェルスクリプトの勉強してた」とか馬鹿な事になるのがオチ。
BCからC++にうつるにしても、ここまで酷くはないだろうが似たようなことになるだろうとは思う。
412:名前は開発中のものです。
08/01/22 13:20:46 wLhxzshQ
DirectX使ってる時点で移植性も糞もないが
90%近くの環境で動くから問題なし。
413:1
08/01/22 21:22:41 mOu/eEXx
確かにテキストエディタ+コマンドプロンプトで、ビルドしてみるのは重要かもしれませんねー。
どうして違うのファイルに書かれてる関数が見れるのか、最初不思議だったんですよ。
今日、ためしにやってみて、その謎が解けました。
GNUって名前は聞いたことありますね。emacsは知りません。
なにが自分に必要で、自分にあっているか分からないので、少しずつ試して見たいと思う今日この頃。
一応、作業が滞らない程度にね。
やっと呪文のページ送りの機構ができました。
URLリンク(sakuratan.ddo.jp)
これでルーラの行き先とか
持ち物を9個以上持てるようにしたりとか
フィールドの呪文もたくさん持たせられたりできます。
あとイベントフラグ系を実装してみようかな。
414:名前は開発中のものです。
08/01/22 23:25:50 5GRLbyxQ
そろそろ>>1のキャパが限界に近づいてきたヨカーソ
415:名前は開発中のものです。
08/01/23 05:52:11 wvQOC4ad
とりあえずこれが完成するか行き詰まってやめるかするまではbccのままで行ったほうが良いと思う。
と、ツールをとっかえひっかえして肝心のゲーム制作が一向に進まない俺が言ってみる。
416:名前は開発中のものです。
08/01/23 19:00:56 cgi6PhB/
VHDL → メガカミス
汗 → キロカミス
C/C++ → カミス
Java → アホス
C# → アホス
VB → キロアホス
PHP → メガアホス
Flash → ギガアホス
Web → テラアホス
417:名前は開発中のものです。
08/01/23 19:13:39 6RO0vpyg
汗って何かと思ったら
Assemblerか
418:名前は開発中のものです。
08/01/23 20:22:26 2KgUJkIZ
>>416
ワナビー乙
419:名前は開発中のものです。
08/01/23 20:57:14 LtiCnrxY
>>416
RPGツクールでおk
420:名前は開発中のものです。
08/01/23 21:46:22 Qgepck6P
>>416
URLリンク(www.geekpage.jp)
プログラミング言語ヒエラルキー
421:名前は開発中のものです。
08/01/24 00:24:18 ViAvMgFb
>>416
可哀想な子だな
422:名前は開発中のものです。
08/01/24 00:53:39 yYzSvo3e
>>416
わかりました。あなたは世界を革命するしかないでしょう。
423:1
08/01/24 21:41:55 j3/D/798
アク禁につき携帯から…
>>420
吹いたw
空気読まずに最新版投下。
******************************
ルーラが使用可能になりました。
イベントフラグを実装しました。
とびらを実装しました。
各マップオブジェクトに存在フラグを設定できるようになりました。
アリアハンを拡張しました。
URLリンク(sakuratan.ddo.jp)
424:1
08/01/25 14:01:19 UVi0ePn3
すみません、最新版アリアハン歩けませんでした。
metaMap.csvに嘘コメントが乗ってます。
家に帰ったら修正版うぷしますが、とりあえず。
× 画像ファイル名 昼 夜 通行可否
○ 画像ファイル名 通行可否 昼 夜
425:名前は開発中のものです。
08/01/26 07:51:23 6ZDIHq1v
>>423
戦闘の文字の送り方のタイミングとかドラクエっぽくなっているな。
アリアハンに入ると右側に動けない。
左側に動いて城から出ることは出来る。
426:1
08/01/26 09:15:46 3u97CoxS
いろいろ手をつけてたら、まともにアップできる状態じゃなくなってしまった… Orz
とりあえず、>>423でうpしたやつをアリアハンが歩けるようにしてうpしておきます。
URLリンク(sakuratan.ddo.jp)
427:1
08/01/26 10:36:56 3u97CoxS
平行してエディター部分も作り始めました。
WinAPIで作ってます。
C++っぽくウィンドウをクラス化しようと思って、
WNDCLASS構造体を継承したWndクラスを作りました。
WNDCLASS::lpfnWndProcにメンバ関数Wnd::WndProcのポインタを渡したいんですが
'long (__stdcall Wnd::*)(HWND__ *,unsigned int,unsigned int,long)' 型は
'long (__stdcall *)(HWND__ *,unsigned int,unsigned int,long)' 型に変換できない(関数
Wnd::Wnd() )
というコンパイルエラーがでます。
相変わらずBCCでやってます。
ソースは
URLリンク(sakuratan.ddo.jp)
です。
ボスケテ Orz
428:名前は開発中のものです。
08/01/26 10:52:11 H+OG9eM0
HellowWorldの次がこれって絶対冗談だろ?w
429:名前は開発中のものです。
08/01/26 12:32:09 pcXY3xH1
MetaCmd クラスを見ると
bool に int を代入してたり、
bool型を返却するメソッドなのに、intを返却してるケースが有るが、
>>1 の環境ではワーニングも何も出ないんか?
あと、VC++2005だけかもしれんけど、
hakase.h の small関数でエラー出まくる
どうやら、platform sdk側 の rpcndr.h で
#define small char
とか ぶっこいちゃってるのが原因みたい
430:名前は開発中のものです。
08/01/26 13:29:52 pcXY3xH1
うちは VC++2005 しか無いんだけど、
動くようになるまでに色々とイジる必要がありますな
なんつーか、本来なら警告が出る部分が目立つから
いまのうちに潰しとかないと危ないなぁ
>>427
& は要らなくね?
431:名前は開発中のものです。
08/01/26 13:30:25 n87t9W9f
>>427
URLリンク(www.m--takahashi.com)
↑ここ読め
432:名前は開発中のものです。
08/01/26 13:49:11 n87t9W9f
つか1はとても初心者とは思えんな
C++の知識は確かに貧弱だけどCかもしくは別言語はやってたんだろ
まあ、がんばってくれ
俺もゲーム作ってるからソースは参考にさせてもらうよ
433:名前は開発中のものです。
08/01/26 15:37:30 qYaFn144
c用の構造体は継承しちゃダメだよ
publicになっちゃうし…
434:名前は開発中のものです。
08/01/26 18:12:33 e3cqRtGD
small関数は別の名前に変えて欲しいところではある。
435:名前は開発中のものです。
08/01/26 19:33:43 dThAsdf4
MFCやWTLのCRectとかふつーにRECT派生してるよ。
まーそもそもAPIの薄いラッパーなんだが。
436:名前は開発中のものです。
08/01/26 21:17:54 qYaFn144
>>435
で?
CRectと同じように自由に中身いじれていいと?
どう考えてもhas関係のほうがいいだろ
437:名前は開発中のものです。
08/01/26 22:39:29 dThAsdf4
用途によると
438:名前は開発中のものです。
08/01/27 03:49:56 rwExEoOD
>>437
>>427を読んでもまだ言うかww
439:名前は開発中のものです。
08/01/27 14:29:06 T94kIYTo
>>1は当然リファクタリング中なんだよな?
こんな状態で新機能つけられても失笑をかうだけだぞ
440:名前は開発中のものです。
08/01/27 14:35:04 2lUOmqYr
リファクタリングなんか実装終わってからやればいいじゃんか
441:名前は開発中のものです。
08/01/27 17:26:00 bil4rrw2
1は明らかに本業
442:1
08/01/28 09:42:14 efejqwIm
>>429
実は、警告が一切でません。
たとえば
×
bool test(int a){
retun a;
}
○
bool test(int a){
if(a){return true;
}else{retun false;}
}
とやらないと警告がでるってことですか?
それとも他の問題?
あとsmall関数に関してはreturnSmall関数に名前を変えます。
衝突しやすい名前は避けるべきでしたね。すみませんでした。
>>431
まさしく僕の状況と同じですね、ありがとうございます。
参考にしてやってみます。
アクセス権についてはprotectedにすれば大丈夫?
でも、最悪publicになっても仕方ないと思うことにします。
443:名前は開発中のものです。
08/01/28 11:51:19 Fsa5EfdA
>>442
まあ、普通はboolをintに変換すると警告が出る。
C言語ではしょうがないが、intとboolは本来違う型だから。
BCCでは警告出ないのか……。
BCCは警告がVC++より多く出るのでデバッグしやすいと思っていたのだが。
最近のVC++が賢くなったのかも知れん。
ちなみに、このソースなら
bool test(int a)
{
return a != 0;
}
とやったほうがいいぞ。
Javaだとifにはbool型しか書けないから、このようにする必要がある。
アクセス権は正直難しいな。
無理やりprivateにしても、アクセサを作るのは面倒だし。
最小限の関数がアクセスできるように設定するのが理想。
継承してオーバーライドしたメンバ関数が参照する変数ならprotected。
そうでなければprivateが正解。
publicは構造体専用のような気がする。構造体のような基本クラスならあり。
444:名前は開発中のものです。
08/01/28 12:17:32 DJpHQP7Z
int から bool への変換で警告はないだろ。
0が偽で非0が真なんだから、警告の出しようがない気がするが。
VC++ が過剰なだけでは?
return a != 0;
としたほうが良いってのは同意だけど。でも Java は別に関係ないな。
445:名前は開発中のものです。
08/01/28 18:46:30 DSI82zKh
コンパイラだけ見ればVCのほうが標準準拠度がまし
446:名前は開発中のものです。
08/01/28 22:03:00 qDZhZR+9
intをboolに変換したらintに再変換できない。
情報が失われているから警告出してもよさそうなのだが。
しかし手元のg++でコンパイルしてみたが警告出ないな。
447:名前は開発中のものです。
08/01/29 01:30:19 M4FlFQH0
世界ランク14位おめw
URLリンク(2chcity.myminicity.com)
ランク 国名 街 人口 (前日比) 前日
--- 1 US1 LUELand 326354 (+211) 326143
--- 2 US2 GoonTown 179482 (+711) .178771
--- 3 Germany1 .isnichwahr.de 119091 (-654) 119745
--- 4 US3 CreateMyCity Forum .87380 (+1982) 85398
--- 5 Poland1 #debian.pl 79594 (+1043) .78551
--- 6 Germany2 upOTia 52443 (+399) 52044
--- 7 France1 Reze'Les Nantes .41960 (+246) 41714
--- 8 Canada1 J-C Satanas & CO .40995 (+721) 40274
--- 9 US4 retromundi .40604 (+788) 39816
--- 10 France2 FanaZ .39902 .(+1268) 38634
2↑ 11 Germany3 deluxebits 38770 .(+3199) 35571
1↓ 12 US5 .isnichwahr.at .38234 (+78) 38143
1↓ 13 France3 gravure-news .37204 .(+765) 36439
2↑ 14 Japan1 2ch_city 35637 .(+1970) 33667
1↓ 15 Spain1 Media-Vida .35205 .(+686) 34519
1↓ 16 France4 Sguy .35083 .(+1456) 33626
2↓ 17 Ireland1 .prapikilty .35067 .(+871) 34196
--- 18 Spain2 benidaver .34505 .(+914) 33591
--- 19 Germany4 directupload ..32490 .(+82) .32408
-↑ 20 Slovakia1 Legionar City 32056
448:1
08/01/29 10:11:54 owOBTCKE
>>349
今中途半端に新機能付けてる所なので、一段落したらリファクタリングしようと思ってます。
VCに移行する事も考えてます。
せっかく見てくれる人がいるんだから、殆ど使われてないBCCよりアドバイスも受けやすそうだし。
はやくアク禁とけないかなぁ…
449:1
08/01/31 08:17:54 gs4vtOjg
VC++ 2005をインスコして、コンパイルしてみたものの
吐き出されたエラーの量に愕然…。
しかも見たことないエラーだから対処法がわかんないOrz
とりあえず、このプロジェクトは最後までBCCで行ったほうがよさそうだ。
VCは次のプロジェクトでつかってみることにするよ。
いや、エディター部分で使ってみるか。
**************************************
人と物の区別をつけました。
町の中の入り口に立ってるのが【人】です。
URLリンク(sakuratan.ddo.jp)
450:名前は開発中のものです。
08/01/31 09:09:52 KWbgYovb
>>449
VC++2005っていうのはExpressEditionか?
それならWin32 SDKをインストールする必要があるぞ。
もし違うのなら、ユニコード関連のエラーじゃなかったか?
俺も最初そこではまったぞ。
VC++2005以降ではデフォルトのプロジェクト設定は
ユニコード関数になってる(当然98/Meでは実行不可)。
多分今まではANSIライブラリで開発していただろうから、
プロジェクトー>プロパティー>構成プロパティ
ー>全般ー>プロジェクトの規定値ー>文字セット
を「マルチバイト文字セットを利用する」と設定してみたらどうだ。
関数でセキュリティ警告がでたらググって消すといい
(あまり良い対処法ではないが)。
意外とVC++も面倒なんだよな。
インテリセンスは便利なんだが、そっちはVC#のほうが進化してるし。
451:名前は開発中のものです。
08/01/31 10:33:31 g4vS4NUg
windowsのAPI直接呼んでなければplatformSDKは不要
>>1のソース見てないから使ってるかは知らんが…
452:名前は開発中のものです。
08/01/31 10:43:18 9v/0NHUq
>>451
Dx_Lib使ってるなら必要だったような希ガス
453:名前は開発中のものです。
08/01/31 13:05:33 g4vS4NUg
>>452
それはおかしい
DX_libがWinAPI用のlibファイルとリンクしてないことになる
バイナリで提供されているということは、WinAPI用のlibはリンク済みなはず
454:名前は開発中のものです。
08/01/31 14:16:08 a5CfO9IL
DXLIB配布元の説明くらい読め
PlatformSDKは必須
455:名前は開発中のものです。
08/01/31 15:42:20 ZxMw62D0
必須て・・・
dll版も配布されているので可能だけど
456:名前は開発中のものです。
08/01/31 15:53:29 a5CfO9IL
ライブラリ群の話しじゃないよ
ヘッダはどうすんのよ
windows.hとか最初に読んでるし
まさかBCCの使えとか言ってる?
457:名前は開発中のものです。
08/01/31 15:57:23 ZxMw62D0
>>456
つれたwww
ライブラリ側のビルド時に依存してるだけだから、コメントアウトして問題ない。
implibとかdumpbin等等の細かいツールいくつかと、元のdxlib.hを加工すればいける
dll作成経験が恐らく無い>>1には大変かもね
458:名前は開発中のものです。
08/01/31 16:02:19 a5CfO9IL
加工かよ
じゃあ
WIN32ライブラリリンクしてるとこも加工な
がんばってくれww
459:名前は開発中のものです。
08/01/31 16:03:26 ZxMw62D0
>WIN32ライブラリリンクしてるとこも加工な
お前本当にDLL作ったことないのな・・・
単体のexeとほぼ同じ構造になってる
この意味がわかるか?
460:名前は開発中のものです。
08/01/31 16:20:07 a5CfO9IL
よく読め
俺はお前の言った
ヘッダの修正の話しをしている
それからdll版ってなんだ?
悪いが見たこともない
win32リンクされてるdll版でも配布されてんの?
461:名前は開発中のものです。
08/01/31 16:26:06 ZxMw62D0
>よく読め
>俺はお前の言った
>ヘッダの修正の話しをしている
やっぱりお前わかってないってdll作ったこと無いなら素直に質問すればいい
>それからdll版ってなんだ?
C#版アーカイブに入っている。
C#で開発する際には、同梱の.NETのクラスライブラリを使ってアクセスするというだけなので、
dxlib.dll自身はネイティブ。
462:名前は開発中のものです。
08/01/31 16:36:15 a5CfO9IL
お?
あった
納得
つかC#かよ!!
というツッコミは辞めておく
勉強になったわ
サンキュー
463:名前は開発中のものです。
08/01/31 17:58:32 ad/sWf4T
>つかC#かよ!!
>というツッコミは辞めておく
いや、そこはつっこめよw
464:名前は開発中のものです。
08/01/31 18:17:56 ZxMw62D0
>463
>C#で開発する際には、同梱の.NETのクラスライブラリを使ってアクセスするというだけなので、
>dxlib.dll自身はネイティブ。
465:名前は開発中のものです。
08/01/31 18:51:00 ad/sWf4T
1の開発環境はC#なのか?w
466:名前は開発中のものです。
08/01/31 18:54:57 ZxMw62D0
>>465
だから、dxlib.dllはネイティブだと何度(ry
467:名前は開発中のものです。
08/01/31 22:23:51 Qxg+Khni
>>452-466
お前らかっこ悪りぃwwww
468:名前は開発中のものです。
08/02/01 19:01:44 eYKdS8Iu
2008EEならPSDK付いてるだろ
同じ無料だし軽くなってるし
469:名前は開発中のものです。
08/02/01 19:19:54 tyk5s2hE
俺が初めにやったのはlibがRelease用なのにdebugでビルドしようとしたミスだ。
470:名前は開発中のものです。
08/02/02 09:02:14 IBv7+ZuZ
>>449
>吐き出されたエラーの量に愕然…。
>しかも見たことないエラーだから対処法がわかんないOrz
たぶん次プロジェクトで使おうとしても同じ部分でつまづくから
開発の合間に少しずつでいいから解決してみれ
オレもこれを VC++2005 でビルドできるようにするまでに
色々な部分をイジったから
分かんねーことがあったら全部ここで聞いてみー
あと、VC++2005 がアホだからかもしれんけど
BattleCommands クラスの giveControl メソッド内に
goto Spell;
があるんだが、Useable.h の Spellクラスと混同されてるみたいで
エラーになっている
Field.cpp の380行目で
構文エラー : ';' が '}' の前にありません
とか出てくるけど、
それ以前に Field クラスの iventProcess メソッドは
近いうちに何とかしといた方が良さそうだな
471:名前は開発中のものです。
08/02/02 14:00:18 O0xDaWr+
gotoのラベルは全て大文字が基本だね
エラー処理以外で使うべきではないが…
472:名前は開発中のものです。
08/02/02 17:38:17 I9mkDQj0
4819と4996の警告を無視するようにオプション付けると少し幸せになるかもしれん。
VC++コンパイラが文字コードを知らないバグはゲイツも認識しているらしいが修正は次期リリースを待て、
とのことだったような気がしたが、ソースは無い。
というわけで、文字コード警告は無視。
atoiは時代遅れ、という警告も無視。
無視するのはいいが、全角文字みたいにマジで認識できない文字が入っていたとしても警告出ないので注意な。
ん?
それだと警告じゃなくてエラーがちゃんと出るやもしれんが…。
どうでもいいが、コンパイラが文字コードを判別できないってアホすぎるだろ。
473:名前は開発中のものです。
08/02/02 17:39:12 I9mkDQj0
おっとsage忘れたごめんよ。
474:1
08/02/03 01:37:14 hMoICJCS
みんなありがとう ><
もうちょっとVCがんばってみるわ。
ちなみに、お察しの通り2005 Express Editionです。
gotoのラベルの文字衝突なんか 自力じゃ絶対わかんないって Orz
壁にぶつかったら質問しに来るね。
ほんとありがと。
475:名前は開発中のものです。
08/02/03 07:00:58 NH1+l1Mk
Standard Editionの俺の足元にも及ばないぜ
476:名前は開発中のものです。
08/02/03 13:23:59 FIiEId7l
>>474
2008でてるのに・・・
477:1
08/02/04 07:07:12 RaDIAkOA
2008か…
ダウソしてみる…
478:名前は開発中のものです。
08/02/04 12:10:13 Cc7CMG8W
>>477
俺はVisual C++ 2008 Express Editionを使っている。
使用頻度は高くないが……。
Visual C++ 2005 Express Editionと違って、
設定しなくてもWin32プログラミングが出来るのが強みだ。
479:名前は開発中のものです。
08/02/04 20:36:01 RaDIAkOA
2008ダウソしたらVC++9.0 って書いてあったけど、 Vc++6.0 の2005と どっちのほうが使ってる人多い?
それともどっちでも関係ない?
もしくは6.0で作っておけば9.0ならコンパイル通る?
480:名前は開発中のものです。
08/02/04 20:38:55 teV1oW9H
VC2005は8.0だよ
481:1
08/02/04 23:04:12 RaDIAkOA
とりあえず2008をダウソして使ってみたんですが、
DxLibのHPのガイドにそって設定を終わらせて、白い点を表示させるだけのプログラムは正常に動きました。
が、肝心のDQもどきのコンパイルは通らなかったです。
エラーメッセージはこんな感じです。
------ ビルド開始: プロジェクト: test, 構成: Debug Win32 ------
コンパイルしています...
CommandBattle.cpp
リンクしています...
.\Debug\BattleField.obj : fatal error LNK1107: ファイルが無効であるか、または壊れています: 0x23817 を読み取れません。
ビルドログは "file://c:\Documents and Settings\はかせ\My Documents\Visual Studio 2008\Projects\test\Debug\BuildLog.htm" に保存されました。
test - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
いろいろググって見たところ、リンカが上手く動いてないっぽい?
482:名前は開発中のものです。
08/02/04 23:22:27 PaK1bp7B
VisualC++用 のライブラリ使ってる?
483:名前は開発中のものです。
08/02/05 01:30:29 YbsfZF5u
>>482
ちゃんとVC用のを使ってます><
サンプルは一応動くんですよねぇ…。
ファイルの追加のやり方が間違ってる?
484:名前は開発中のものです。
08/02/05 01:54:57 JnBm9OcX
>>1には悪いけどはかせでワロタ
485:名前は開発中のものです。
08/02/05 01:57:31 c8iqtCfM
>>483
↓これはもう試した?
プロジェクトのプロパティから、構成→全般
文字セットの欄 → 「マルチバイト文字セットを使用する」に変更
486:名前は開発中のものです。
08/02/05 12:53:15 2IEJhn/E
>>483
リンク時のエラーということは文字セットの問題じゃないな。
Releaseモードでコンパイルしてみたらどうだ。
確か、俺はDebugモードではライブラリが入ってなくて
実行時にエラーになった覚えがある。
Releaseモードだとデバッガが使えなくなるのが難点だが。
あと、481のログは全部のソースファイルをビルドしたやつか?
ソースファイルが1つのはずはないが……。
>ファイルの追加のやり方が間違ってる?
どのように追加したのか詳しく説明してくれ。
487:名前は開発中のものです。
08/02/05 18:16:38 Ehp9HBzC
>>485
それ2008からなくなったよ
488:名前は開発中のものです。
08/02/05 18:32:15 tL3mZ0gl
>>487
あるじゃねーかww
釣られてしまった
489:名前は開発中のものです。
08/02/05 21:36:16 YoGlW1vl
流れ無視で書くけど致命的なエラーだからBattleField.objってのに
単純に出力されてないとかロックがかかっててアクセスできないとか
リンカが想定してるobjではないとかそんな感じだとおも
つーかLNK1107もちゃんとヘルプで確認しろよ
490:1
08/02/06 09:36:50 q7r4U2fq
みんなありがとう
体調不良で早く寝て、朝起きて出かける前に少しいじって、出先から携帯カキコ。
LNK1107のエラーはBCCでコンパイルしたobjファイルを削除してからビルドしたら解決した。
>>489の言うとおりヘルプ見たら解決できた。
ググるだけで、ヘルプ見るって考えが無かったよ orz
だけど、また違うエラーがでてきた。
家に帰ってからじっくりやってみる。
491:1
08/02/07 08:19:47 +l6ry8aS
Useable.obj : error LNK2005:
"public: static char * global::c" (?c@global@@2PADA) は既に BattleField.obj で定義されています。
C:\Documents and Settings\はかせ\My Documents\Visual Studio 2008\Projects\test\Debug\test.exe :
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
現状のエラーは上の感じです。LNK2005が205箇所でてます。
エラー内容はヘッダを複数回重複して読み込んでる、ってことみたいなんですが、
#ifndef _CHARACTER_H_
#define _CHARACTER_H_
本体
#endif
とやって回避したつもりでしたが、できてない様子。
ヘルプを見ると
ヘッダに
extern BOOL MyBool;
cppソースに
MyBool = false;
と記述しろ、と書いてありましたが、記入すると
error C2146: 構文エラー : ';' が、識別子 'MyBool' の前に必要です。
とエラーが出ます。
現状報告でした。
492:名前は開発中のものです。
08/02/07 08:37:14 XCIeOzX/
#ifdef _MSC_VER
#define pragma once
#endif /* _MSC_VER */
ヘッダの重複を避けるなら先頭に↑とでも書いておけば。
493:名前は開発中のものです。
08/02/07 08:37:58 XCIeOzX/
#pragma once
だったorz
494:名前は開発中のものです。
08/02/07 11:11:53 4ZyDT5RJ
>>491
> cppソースに
> MyBool = false;
> と記述しろ、と書いてありましたが、
cppの方でヘッダインクルードしてる?
ってか、ソース晒したほうが早いような
495:名前は開発中のものです。
08/02/07 12:04:04 QgLjGbkn
>エラー内容はヘッダを複数回重複して読み込んでる、ってことみたいなんですが、
>#ifndef _CHARACTER_H_
>#define _CHARACTER_H_
>
>本体
>
>#endif
>
>とやって回避したつもりでしたが、できてない様子。
これ(インクルードガードという)は全部のヘッダにやる必要があるぞ。
面倒だったら大抵のコンパイラが対応している
#pragma once
でも良い。
ヘッダファイルにグローバル変数の定義とか
記述していると重複するのでこんなエラーが出る。
>>491
> cppソースに
> MyBool = false;
> と記述しろ、と書いてありましたが、記入すると
これはBOOL MyBool = false;
の間違いじゃないか?
多分MyBoolの実体をcppソースに定義する必要があるはず。
>error C2146: 構文エラー : ';' が、識別子 'MyBool' の前に必要です。
>とエラーが出ます。
MyBool = false;
の前には何がある?
多分読み込んでいるヘッダファイルの中身がおかしい。
このエラーだと;の抜けか?
496:名前は開発中のものです。
08/02/07 13:24:18 /8kqxVw7
BOOLのtypedefしたヘッダ読んでないんだろうよ
あとBOOLはfalseじゃなくFALSEだな
497:名前は開発中のものです。
08/02/07 21:59:20 tz5rxEMj
そういやー、Usable.h の
static int amount;
static Item *itemList;
に対する
int ItemList::amount = 0;
Item * ItemList::itemList = NULL;
の部分は、上のと似たような理由でコメントアウトしたような気がするなー
そもそも静的変数って 0 で自動的に初期化されるんだっけか?
498:1
08/02/07 23:31:34 +l6ry8aS
コンパイルとおったぁぁぁああああああああああああああああ!
>>491のエラーの原因は
ヘッダファイルで関数の中身を書いてたからみたいです。
たとえば
//* const.h
class global{
public:
static char c[64];
static std::string msg;
};
char * global::c = 0;
std::string global::msg = "";
はダメで
//* const.h
class global{
public:
static char c[64];
static std::string msg;
};
//* const.cpp
char * global::c = 0;
std::string global::msg = "";
と、ファイルを分ければおk。
…仕様なのかな?
ろだの調子が悪いみたいなので、あとでファイルあげます。
みんな本当にありがとう T◇T
499:名前は開発中のものです。
08/02/08 00:51:30 8VOzPRyE
>>498
静的メンバ変数はグローバル変数と似たような扱いになる。
common.hにてグローバル変数g_varが存在し、a.cpp, b.cppがそれぞれincludeしているとする。
a.cppがコンパイルされる→a.objにg_varが存在する
b.cppがコンパイルされる→b.objにg_varが存在する
最終的にリンクするときにg_varがバッティングする。
500:名前は開発中のものです。
08/02/08 01:11:45 MoDyMZB7
某ランドでは動くのにね
501:名前は開発中のものです。
08/02/08 11:48:47 sAmmpMO4
>>498
> //* const.h
> class global{
> public:
> static char c[64];
> static std::string msg;
> };
>
> //* const.cpp
> char * global::c = 0;
> std::string global::msg = "";
こうではなくて、こちらが正しい。
//* const.h
class global{
public:
static char c[64];
static std::string msg;
};
extern char * global::c;
extern std::string global::msg;
//* const.cpp
char * global::c = 0;
std::string global::msg = "";
つまり、ヘッダファイルに記述するのは
変数や関数、クラスの宣言であって、定義ではない。
これはBorland C++でも問題が出たと思うぞ。
多分Borland C++でコンパイルした時は複数のcppファイルで
ヘッダファイルをインクルードしていなかったから問題が起こらなかったのだろう。
502:名前は開発中のものです。
08/02/08 12:50:49 l8JQSvGp
>>501
デタラメ書くなよ
コンパイルできないぞ
あと配列をポインタに変換してexternさせると長さ失うからお勧めしない
503:501
08/02/08 13:15:21 sAmmpMO4
>>502
すまん、間違えた。
クラスのstaticメンバだったんだな。
普通のグローバル変数と勘違いしていた。
クラス自体が宣言だ。
> extern char * global::c;
> extern std::string global::msg;
これはいらない。501で言ったことは忘れてくれ。
あと、確かに>>502の言うように
//* const.cpp
char global::c[64];
としたほうがいいな。
それで気づいたのだが、
char * global::c = 0;
はバグだな……。
ここで配列の初期化はできないぞ。
しかもポインタで代入してるし……。
>>1にはコンストラクタを使えといっておく。
504:名前は開発中のものです。
08/02/08 22:54:29 1LutvMl1
ぼ、ぼ、ぼくも、C++でゲーム作るんだお。
すーぱーマリおだお。
URLリンク(members2.tsukaeru.net)
さん、をつけて、ねっ。はずかしがりや、さんっ。
ぼ、ぼ、ぼくは、言語にふりまわされないんだからっ。えっへん、だお。
なんかー、言語名を冠につけるってはずかしいお。きゃっ。
すれちがっている。ミーンがすれちがっている。しゅーるだお。
ぼくね、IQ300なんだおって細君にいったら、絶対30だからっ!って言われたの。
1回転して、30になっちゃたんだね。って言ったら、ほんとに30だねって感心されたお。ぶぃっ!
なにがいいたいかってーと、まぁ、言語に振り回されんなや、ゲームなんて、たかだか、数値と画面を
更新してるだけのもんだで。まじでそんだけ。ぷっ。だよな。むずかしいことなんて、ひとつもないぜ。
まぁ、頑張れや。ぼ、ぼくは、いま、がんばれ屋さんです。がんばれ、1。
あんまりにも言語に振り回されている様が、恥ずかしかったので、まぁ、書き込んでしまた。
ぼくのオーバードライアブ(波紋)が、伝わっただろうか。夕陽のオレンジのオーバードライアブ(覚醒の波紋(あの裏側が目覚める!))
505:名前は開発中のものです。
08/02/09 00:26:46 41azRV47
C言語ぐらいわかってからゲーム作れよw
URLリンク(www.ascii.co.jp)
オススメ
506:名前は開発中のものです。
08/02/09 00:35:32 ucOS0Odn
スレリンク(gamedev板)
ここのオガワンってヤツだろ
507:名前は開発中のものです。
08/02/09 02:08:54 uWdwi6vy
ホームページに自分の画像を載せてるけどナルシストなのかな?
URLリンク(members2.tsukaeru.net)
508:名前は開発中のものです。
08/02/09 02:17:17 OEsnMtz3
>>504
あまりにも酷いソースでお茶噴いたww