- 1 名前:名前は開発中のものです。 [2008/12/21(日) 10:01:44 ID:XeH+Z5e9]
- 入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ 入門書おわた ↓ コンソールでゲーム製作 ↓ DXライブラリでも使ってゲーム製作 こういう順番で段階的にやって行きたい 基本は 1.詳しい人がコンソールのゲームでお題を出す 2.初心者が作る 3.できるまで自分で調べて頑張る 4.どうしても無理ならソース晒して教えてもらう 5.完成したらソース晒して、他の製作者のものと比べてウマー とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
- 209 名前:名前は開発中のものです。 mailto:sage [2009/09/08(火) 11:29:49 ID:6MhMNrx0]
- 自分が作りたいゲームで作れそうなの作れば
- 210 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 12:09:38 ID:eLuVrXen]
- >>200
>C++だと、カードっていうスーパークラスがあって、 ここの所もうちょい詳しく そういうクラスが標準で用意されてるのかと思ってググってみたんだけど、全然ヒットしないです これは基底クラスを自前で作ってそこから派生させろという話?
- 211 名前:名前は開発中のものです。 [2009/09/09(水) 14:17:10 ID:vKyxO6xF]
- >>210
自分で作るんだよ。 たとえば「戦士は敵Aを攻撃」「魔法使いは呪文で全体攻撃」とか、行動の記録を構造体の配列なんかで持たせて 全部出揃ってから素早さ順なんかでソートする。 200のやり方はこのカードからプレイヤーや敵のクラスを継承させるみたいだけど 俺はキャラデータからカードを完全に分離させて、カードの仕事は行動解釈だけに絞るほうが好み。
- 212 名前:名前は開発中のものです。 mailto:sage [2009/09/09(水) 21:51:16 ID:UMpltBwW]
- >>211
ありがとうございます >>200は「カードっていうスーパークラスを作って」の意味でしたか
- 213 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 05:17:35 ID:kGLDkUja]
- C言語でちょっと数値計算できる程度の実力ですがC++でゲーム制作に挑戦することにしました。
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ ひとまず次頑張ってみます
- 214 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 05:56:42 ID:tenDfojw]
- 標準関数のisdigit使えば何とかならん?
- 215 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 08:18:06 ID:kGLDkUja]
- aとかaaaとかは抜けれるようにできましたが1aとかがまだでした
一回寝てからもう少し頑張ります
- 216 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 13:45:22 ID:/Wz8dUNK]
- atoiの存在に今気付いた
isdigitなんか使う必要ねーじゃん
- 217 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 13:59:20 ID:yWA5tZHN]
- kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9961.zip
けっこう連続入力とか嵌るんだよな
- 218 名前:名前は開発中のものです。 mailto:sage [2009/09/29(火) 16:08:36 ID:ryAGnP+G]
- ご丁寧にありがとうございます
とても参考になりました
- 219 名前:名前は開発中のものです。 [2009/10/12(月) 09:30:46 ID:fQgZRfDp]
- C言語暦約一ヵ月半、winapi暦2週間の初心者ですが、練習のために>>7に挑戦してみました。
www1.axfc.net/uploader/Sc/so/44791.zip ソースはあまりにもぐちゃぐちゃなので恥ずかしいので載せてません。 載せたほうがいいですか? いちおうそれっぽいのはできたんですが、一点うまくいってないところがあって、敵の動きがうまくいきません。 敵位置を配列にしてるんですけど、for文で、敵[i]をまず消して、敵[i]の位置情報を変えて、敵[i]を再描画する、という順序なんですが、 敵[i-n]が移動した先が敵[i]の移動前の位置だとするじゃないですか。 すると、敵[i]の移動に伴って、敵[i-n]が消えちゃうんですよね。 かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。 どうやって解決したらいいんだろう?
- 220 名前:名前は開発中のものです。 mailto:sage [2009/10/12(月) 10:41:42 ID:PNg7pEvy]
- >>219
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。 ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。 ダブルバッファリングとかオフスクリーン描画とかで調べるといい。 C系のWindowsでゲーム作るなら必須の知識になる。 しかし1ヵ月半でここまでできるのはすごいな。
- 221 名前:名前は開発中のものです。 mailto:sage [2009/10/15(木) 06:26:55 ID:5kHMShZk]
- >>220
ありがとうございます。 www1.axfc.net/uploader/Sc/so/45746 こうなりました。 どうでしょうかね? もとがぐちゃぐちゃなので直すのに結構苦労しました。 ついでに、敵に当たっても移動できてしまうのを直しました。
- 222 名前:名前は開発中のものです。 mailto:s [2009/10/23(金) 09:54:20 ID:r4hfvq6d]
- カソル
- 223 名前:名前は開発中のものです。 mailto:sage [2009/12/07(月) 01:50:47 ID:cfqCdEHC]
- あのさ、ActionScript3で質問なんだが、
FLASHってゲームループの概念なし? それともEnterFrameとかタイマーイベント使ってやるのか? イマイチピンとくる説明が検索でけんかった。
- 224 名前:名前は開発中のものです。 [2009/12/08(火) 17:07:56 ID:cuTUnnQj]
- 空気を読まずにお題を出してみる。
下記のデータ(ソース)がある。 const int max_choice_num = 3; /* シーン */ struct Scene { const char* const message; /* メッセージ文 */ int choice_num; /* 選択肢の数(0= 終了, 1= 強制移動, 2> 選択) */ int next[max_choice_num]; /* 次のシーンID */ }; /* シーンデータ(添え字がID) */ const Scene scene_data[] = { { "よくきた、勇者よ\n", 1, 1, }, { "魔物を退治してくれんか?\n0: 任せてください\n1: いやです\n", 2, 2, 3, }, { "では、行ってまいれ!勇者よ!\n", 0, }, { "そんなこと言わずに・・・\n", 1, 1, }, };
- 225 名前:224 [2009/12/08(火) 17:09:39 ID:cuTUnnQj]
- 実行すると
よくきた、勇者よ 魔物を退治してくれんか? 0: 任せてください 1: いやです > 1 <- 入力待ち そんなこと言わずに・・・ よくきた、勇者よ 魔物を退治してくれんか? 0: 任せてください 1: いやです > 0 <- 入力待ち では、行ってまいれ!勇者よ! となるようなプログラムを書け。
- 226 名前:名前は開発中のものです。 mailto:sage [2009/12/08(火) 21:47:41 ID:dR/37Ta8]
- プログラムつうより普通スクリプトでやる処理だわな
- 227 名前:224 [2009/12/08(火) 23:54:51 ID:LCrDR7+W]
- >226
これができたら、データを外部ファイルに出して処理してみるとか ステップアップしていくと勉強になるかなと思ったんだけどね。 少しがんばればコンソールで簡単なテキストADVが作れるってのが 分かればモチベーションも上がるかなと思ったんだ… つか過疎ってるから模範解答を出すタイミングが難しいな。
- 228 名前:224 [2009/12/12(土) 16:11:25 ID:W7i0pvEF]
- 模範解答。エラー処理とか一切してません。
int main() { const Scene* active = NULL; const Scene* next = &scene_data[0]; do { active = next; printf("%s", active->message); if(active->choice_num == 1) { next = &scene_data[active->next[0]]; } else if(active->choice_num >= 2) { int index; printf("> "); scanf("%d", &index); next = &scene_data[active->next[index]]; } } while(active->choice_num != 0); return 0; }
- 229 名前:名前は開発中のものです。 [2010/05/27(木) 17:19:08 ID:cXVnDiqT]
- 保守age
|

|