入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ
入門書おわた
↓
コンソールでゲーム製作
↓
DXライブラリでも使ってゲーム製作
こういう順番で段階的にやって行きたい
基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー
とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
【入門書クリア前提】初心者用段階的ゲーム製作スレ
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/12/21(日) 10:01:44ID:XeH+Z5e9212名前は開発中のものです。
2009/09/09(水) 21:51:16ID:UMpltBwW213名前は開発中のものです。
2009/09/29(火) 05:17:35ID:kGLDkUja C言語でちょっと数値計算できる程度の実力ですがC++でゲーム制作に挑戦することにしました。
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ
ひとまず次頑張ってみます
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ
ひとまず次頑張ってみます
214名前は開発中のものです。
2009/09/29(火) 05:56:42ID:tenDfojw 標準関数のisdigit使えば何とかならん?
215名前は開発中のものです。
2009/09/29(火) 08:18:06ID:kGLDkUja aとかaaaとかは抜けれるようにできましたが1aとかがまだでした
一回寝てからもう少し頑張ります
一回寝てからもう少し頑張ります
216名前は開発中のものです。
2009/09/29(火) 13:45:22ID:/Wz8dUNK atoiの存在に今気付いた
isdigitなんか使う必要ねーじゃん
isdigitなんか使う必要ねーじゃん
217名前は開発中のものです。
2009/09/29(火) 13:59:20ID:yWA5tZHN218名前は開発中のものです。
2009/09/29(火) 16:08:36ID:ryAGnP+G ご丁寧にありがとうございます
とても参考になりました
とても参考になりました
219名前は開発中のものです。
2009/10/12(月) 09:30:46ID:fQgZRfDp C言語暦約一ヵ月半、winapi暦2週間の初心者ですが、練習のために>>7に挑戦してみました。
http://www1.axfc.net/uploader/Sc/so/44791.zip
ソースはあまりにもぐちゃぐちゃなので恥ずかしいので載せてません。
載せたほうがいいですか?
いちおうそれっぽいのはできたんですが、一点うまくいってないところがあって、敵の動きがうまくいきません。
敵位置を配列にしてるんですけど、for文で、敵[i]をまず消して、敵[i]の位置情報を変えて、敵[i]を再描画する、という順序なんですが、
敵[i-n]が移動した先が敵[i]の移動前の位置だとするじゃないですか。
すると、敵[i]の移動に伴って、敵[i-n]が消えちゃうんですよね。
かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。
どうやって解決したらいいんだろう?
http://www1.axfc.net/uploader/Sc/so/44791.zip
ソースはあまりにもぐちゃぐちゃなので恥ずかしいので載せてません。
載せたほうがいいですか?
いちおうそれっぽいのはできたんですが、一点うまくいってないところがあって、敵の動きがうまくいきません。
敵位置を配列にしてるんですけど、for文で、敵[i]をまず消して、敵[i]の位置情報を変えて、敵[i]を再描画する、という順序なんですが、
敵[i-n]が移動した先が敵[i]の移動前の位置だとするじゃないですか。
すると、敵[i]の移動に伴って、敵[i-n]が消えちゃうんですよね。
かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。
どうやって解決したらいいんだろう?
220名前は開発中のものです。
2009/10/12(月) 10:41:42ID:PNg7pEvy >>219
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。
ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。
ダブルバッファリングとかオフスクリーン描画とかで調べるといい。
C系のWindowsでゲーム作るなら必須の知識になる。
しかし1ヵ月半でここまでできるのはすごいな。
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。
ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。
ダブルバッファリングとかオフスクリーン描画とかで調べるといい。
C系のWindowsでゲーム作るなら必須の知識になる。
しかし1ヵ月半でここまでできるのはすごいな。
221名前は開発中のものです。
2009/10/15(木) 06:26:55ID:5kHMShZk >>220
ありがとうございます。
http://www1.axfc.net/uploader/Sc/so/45746
こうなりました。
どうでしょうかね?
もとがぐちゃぐちゃなので直すのに結構苦労しました。
ついでに、敵に当たっても移動できてしまうのを直しました。
ありがとうございます。
http://www1.axfc.net/uploader/Sc/so/45746
こうなりました。
どうでしょうかね?
もとがぐちゃぐちゃなので直すのに結構苦労しました。
ついでに、敵に当たっても移動できてしまうのを直しました。
222名前は開発中のものです。
2009/10/23(金) 09:54:20ID:r4hfvq6d カソル
223名前は開発中のものです。
2009/12/07(月) 01:50:47ID:cfqCdEHC あのさ、ActionScript3で質問なんだが、
FLASHってゲームループの概念なし?
それともEnterFrameとかタイマーイベント使ってやるのか?
イマイチピンとくる説明が検索でけんかった。
FLASHってゲームループの概念なし?
それともEnterFrameとかタイマーイベント使ってやるのか?
イマイチピンとくる説明が検索でけんかった。
224名前は開発中のものです。
2009/12/08(火) 17:07:56ID: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, },
};
下記のデータ(ソース)がある。
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, },
};
225224
2009/12/08(火) 17:09:39ID:cuTUnnQj 実行すると
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 1 <- 入力待ち
そんなこと言わずに・・・
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 0 <- 入力待ち
では、行ってまいれ!勇者よ!
となるようなプログラムを書け。
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 1 <- 入力待ち
そんなこと言わずに・・・
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 0 <- 入力待ち
では、行ってまいれ!勇者よ!
となるようなプログラムを書け。
226名前は開発中のものです。
2009/12/08(火) 21:47:41ID:dR/37Ta8 プログラムつうより普通スクリプトでやる処理だわな
227224
2009/12/08(火) 23:54:51ID:LCrDR7+W >226
これができたら、データを外部ファイルに出して処理してみるとか
ステップアップしていくと勉強になるかなと思ったんだけどね。
少しがんばればコンソールで簡単なテキストADVが作れるってのが
分かればモチベーションも上がるかなと思ったんだ…
つか過疎ってるから模範解答を出すタイミングが難しいな。
これができたら、データを外部ファイルに出して処理してみるとか
ステップアップしていくと勉強になるかなと思ったんだけどね。
少しがんばればコンソールで簡単なテキストADVが作れるってのが
分かればモチベーションも上がるかなと思ったんだ…
つか過疎ってるから模範解答を出すタイミングが難しいな。
228224
2009/12/12(土) 16:11:25ID: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;
}
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:08ID:cXVnDiqT 保守age
230練習 ◆UzmAAu.XVo
2012/09/12(水) 14:21:04.39ID:7I5dbz7q XNAでの3Dゲーム製作を目標に少しずつ勉強していきます。
余裕があればモデリングやwebの勉強等も。
新スレを立てるようなことでもないので、こちらのスレを使わせて頂きます。
余裕があればモデリングやwebの勉強等も。
新スレを立てるようなことでもないので、こちらのスレを使わせて頂きます。
231練習 ◆UzmAAu.XVo
2012/09/12(水) 14:49:34.24ID:7I5dbz7q 何もない本拠地
http://www7b.biglobe.ne.jp/~gamedev_2ch/index.html
http://www7b.biglobe.ne.jp/~gamedev_2ch/index.html
232名前は開発中のものです。
2012/09/16(日) 20:25:36.62ID:3z6vfuIt 本当に何もなかった
233名前は開発中のものです。
2013/10/09(水) 07:12:23.02ID:kPwojNB+ 段階的にタワーディフェンスでも作るか
234名前は開発中のものです。
2013/10/09(水) 12:58:31.56ID:86SiIj69 もうちっとゴールが明確というかシンプルな方がいいと思うが
235名前は開発中のものです。
2014/04/20(日) 09:17:28.53ID:mdGDETTa236名前は開発中のものです。
2014/04/20(日) 09:53:20.16ID:j9BN4KOd >>235
>>202はリンク先の例文の一部だから、>>202のレスだけみてもわからないよ。
まず>>202の正しいリンク先はここ。
C言語〜ゲームプログラミングの館〜
http://dixq.net/g/50.html
>while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
key配列はGetHitKeyStateAll関数の戻り値を格納するために使われている。
GetHitKeyStateAllとは何かググってみると、
DXライブラリ置き場 リファレンスページ
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html
>概略 キーボードのすべてのキーの押下状態を取得する
>使うにはまず char 型変数 256 個の配列を宣言します。必ず char 型で、数は 256 個でないといけません。
>そしてその配列のポインタをおもむろに GetHitKeyStateAll 関数 に渡します。
>そうすると GetHitKeyStateAll 関数は char 型配列に すべてのキーの押下状態を格納してくれます。
jはkey配列を走査するための変数。256になったら走査が終わる。
>>202はリンク先の例文の一部だから、>>202のレスだけみてもわからないよ。
まず>>202の正しいリンク先はここ。
C言語〜ゲームプログラミングの館〜
http://dixq.net/g/50.html
>while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){
key配列はGetHitKeyStateAll関数の戻り値を格納するために使われている。
GetHitKeyStateAllとは何かググってみると、
DXライブラリ置き場 リファレンスページ
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html
>概略 キーボードのすべてのキーの押下状態を取得する
>使うにはまず char 型変数 256 個の配列を宣言します。必ず char 型で、数は 256 個でないといけません。
>そしてその配列のポインタをおもむろに GetHitKeyStateAll 関数 に渡します。
>そうすると GetHitKeyStateAll 関数は char 型配列に すべてのキーの押下状態を格納してくれます。
jはkey配列を走査するための変数。256になったら走査が終わる。
237名前は開発中のものです。
2014/04/20(日) 14:38:12.60ID:mdGDETTa >>236
ありがとうございます。
256の意味、わかりました。
決まっているんですね。
それから256になったら終了するのもわかりました。
最初のfor文を理解できていなかったようです。
説明が足りなかったようですみません。
プログラミングの館を見ていて、わからなかったので
ググったらこのスレを見つけて書き込んだ
という次第です。
丁寧に教えてくださってありがとうございました。
ありがとうございます。
256の意味、わかりました。
決まっているんですね。
それから256になったら終了するのもわかりました。
最初のfor文を理解できていなかったようです。
説明が足りなかったようですみません。
プログラミングの館を見ていて、わからなかったので
ググったらこのスレを見つけて書き込んだ
という次第です。
丁寧に教えてくださってありがとうございました。
238名前は開発中のものです。
2017/02/05(日) 08:29:33.10ID:Nf8rlIXS そうかそうか
239名前は開発中のものです。
2017/12/31(日) 20:30:57.08ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
9Z81E76WK7
グーグル検索⇒『来島のモノノリウエ』
9Z81E76WK7
■ このスレッドは過去ログ倉庫に格納されています
