- 1 名前:名前は開発中のものです。 [2008/12/21(日) 10:01:44 ID:XeH+Z5e9]
- 入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ 入門書おわた ↓ コンソールでゲーム製作 ↓ DXライブラリでも使ってゲーム製作 こういう順番で段階的にやって行きたい 基本は 1.詳しい人がコンソールのゲームでお題を出す 2.初心者が作る 3.できるまで自分で調べて頑張る 4.どうしても無理ならソース晒して教えてもらう 5.完成したらソース晒して、他の製作者のものと比べてウマー とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
- 187 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 03:39:55 ID:+gOec/oi]
- 初心者こそ2chじゃなくて、ぐぐる方に粘着力を発揮するべきなんだけどな
ぐぐって出て来ないのが続くと不安になっちまうのかしらねw
- 188 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 18:17:32 ID:bFiw377J]
- ゲームのループのところまで整えたけど何作ればいいかわからない
とりあえず画面に文字表示した
- 189 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 18:49:22 ID:8qPbFVnr]
- >>188
これなんてどう? ゲーム名:ナベアツゲーム ルール: マウスをクリックするたびに数字が増える 3の倍数と3のつく数字の時には右クリック、それ以外は左クリックを正解とする 不正解の時には何らかのペナルティ(方法は自由) 制限時間内にできるだけ数字を増やす 課題の目的:マウス入力や時間処理の基礎を学ぶ
- 190 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 21:44:02 ID:TTfreMdG]
- なかなか面白そうw
- 191 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 22:28:31 ID:bFiw377J]
- そういうのってポトペタ出来るやつで作った方が明らかに効率的だよね
何か疑問抱き始めたんだけどwww
- 192 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 22:47:23 ID:TTfreMdG]
- ポトペタってなに?
- 193 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 23:07:11 ID:07Sg+bJ8]
- >>191
作るのが目的じゃなくて作り方を勉強するのが目的だからな 他の言語でやったほうが効率がいいとかの議論は無意味、 というかそれ以前に言語は指定していない(>>188の環境とか知らんし) どんな言語でも画面に文字を表示できたら次の段階は入力で表示を変えることだ
- 194 名前:名前は開発中のものです。 mailto:sage [2009/01/07(水) 15:57:35 ID:wOTyk9Ws]
- >>192
ポットペッター 色んなお店のクーポンがいっぱい付いてるやつ
- 195 名前:名前は開発中のものです。 [2009/01/16(金) 11:49:40 ID:yiTw/vGB]
- dixq.net/g/#29
↑の跳ね返りの考え方1っていうところのソースを解説できる人いる?? 主に if(flag==1){ time2 = GetNowCount() ; // 現在経過時間を得る t = (double)(time2 - time1) / 1000.000; v0= sqrt ( 2.000 * g * y_max); //初速度を計算 for(i=0;i<j;i++) //j回跳ね返った時の初速度 v0*=e; //eは反発係数 y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max); if(y>=0) DrawGraph( 320 , 480-32-y , image[8] , TRUE ); else{ DrawGraph( 320 , 480-32 , image[8] , TRUE ); time1=GetNowCount(); j++; } } このあたりとか意味不明すぎ
- 196 名前:名前は開発中のものです。 mailto:sage [2009/01/16(金) 13:44:50 ID:eKNbfSz5]
- >>195
基本的には物理でよくある問題 「初速度v0, 加速度-g, の物体のt秒後の位置を求めなさい」 を地で解いてる if ( flag==1 ){ // 今は何秒後? time2 = GetNowCount(); t = (double)(time2 - time1) / 1000.000; // 初速度v0 の計算 v0= sqrt ( 2.000 * g * y_max); //(ジャンプの考え方1を参照 dixq.net/g/#27 ) for ( i=0; i<j; i++ ) { v0*=e; } // 現在の高さy を計算 y = (int)((v0 * t - 0.500 * g * t * t ) * 480.000 / y_max); if ( y>=0 ) { // 着地してなければ、順調に落ちる DrawGraph( 320 , 480-32-y , image[8] , TRUE ); } else{ // 着地したなら…… DrawGraph( 320 , 480-32 , image[8] , TRUE ); // 画面下端にキャラクタを表示 time1=GetNowCount(); // 時間をリセット j++; // 跳ね返った回数を1増やす } }
- 197 名前:名前は開発中のものです。 mailto:sage [2009/01/16(金) 15:05:07 ID:yiTw/vGB]
- なるほど!
v0*=e;の部分に{}がなかったからそこ以下が全部forの繰り返し処理にふくまれてるのかと思ってめちゃくちゃ複雑に考え込んでた
- 198 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 12:09:23 ID:CHnPFsm9]
- 質問ですが、RPGの戦闘はif文を使っているんですか?
それだと多人数vs多人数の場合は処理を書くのがかなり大変だと思うのですが・・・ 教えていただけたら幸いです。
- 199 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 14:32:01 ID:nMkjmCv8]
- >>195
参考にするにはちょっと…なソースだな マジックナンバーだらけ コメントで察しろというのは乱暴で嫌いだ
- 200 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 15:22:57 ID:0Ylj0E2s]
- >>198
ターン制の戦闘を想定する場合、 敵、プレイヤのデータをカードに書いて置いて、 「プレイヤのコマンド入力」→「敵のコマンド入力」→「攻撃順にカードを並べる」→ 「カードの順番にカードに対応する各キャラクタが行動する」→「最初にもどる」 みたいな感じでどうよ。 敵が100人だろうと1000人だろうと問題ないね。 C++だと、カードっていうスーパークラスがあって、 プレイヤや敵はそのクラスを継承して、ポリモーフィズムを形成してうんたらかんたら
- 201 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 16:19:05 ID:p3BsxAdP]
- >>198
if文を使っているか使っていないかといわれれば使っているが 当然それだけで制御しているわけじゃない あと、人数が増えてもキャラにIDをつけてforで回せばいいので大変さは変わらない 参考(javaのRPG戦闘ソース) ttp://www.geocities.co.jp/SiliconValley-Cupertino/9261/source/index.html C++でもアルゴリズムは同じ
- 202 名前:名前は開発中のものです。 [2009/01/29(木) 07:20:21 ID:ETfSP+cE]
- dixq.net/g/#33
↑のs2. サウンドノベル風文字列表示法1にあるプログラムの for(j=0;j<256;j++){ if(oldKey[j]==0 && Key[j]==1) Key[j]=2; oldKey[j]=Key[j]; } って何を意味してるの?
- 203 名前:名前は開発中のものです。 mailto:sage [2009/01/29(木) 10:03:40 ID:xirprjZ5]
- >>202
キー入力状態に変化があったかどうかを調べてる。 特に、「押してない状態(0)」→「押してる状態(1)」に変化しているなら、 「今押された(2)」ってことにしてる。 てかリンク先間違ってるだろそれ。
- 204 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 00:05:49 ID:YuEFv8kY]
- 2Dのアクションゲームを作ってるんですが、斜め方向のマップの当たり判定はどうやったらいいんでしょうか
今までマップチップ単位でキャラとマップの当たり判定をやってたんですがこれだと傾斜のあるマップに対応できないです。 マップチップとは独立してドット単位で当たり判定のデータを用意するくらいしかないでしょうか
- 205 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 09:04:49 ID:CC1OIocp]
- >>204
難しいこと考えてるなあと。 マップチップでは管理しきれないと思う。ドット単位というのも無茶な話。 キャラ(オブジェクト)単位での当たり判定になるね。 「14歳からはじめるC言語ゲームプログラミング」 www.rutles.net/books/217.html この本のサンプルが、そのものずばりで解決してくれると思う。 ソース無しのサンプルゲームはDLできるので、これ見て役に立ちそうならどうぞ。
- 206 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 23:33:49 ID:PR8N99oV]
- 段階スレのまとめって今はどこなの?
- 207 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 01:02:00 ID:dkvBYAOU]
- gamedevは新しくなってる
ttp://wiki.game-develop.com/
- 208 名前:名前は開発中のものです。 [2009/09/08(火) 11:21:57 ID:yapzJvXF]
- 初学者にやさしいゲームってどういう順番で作るのがいい?
○1.○×ゲーム ○2.15パズル 敵が無い、思考ルーチン考えないでいいぶん2のほうが楽かな。 ○3.マインスイーパー 4.ブロック崩し 5.倉庫番 6.テトリス : : ○は作った。次は倉庫番かと思ってたけど、DXライブラリがバージョンアップして 描画改善に伴いマウスの反応が良くなったからブロック崩しに行こうかと。 7以降とか2.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
|

|