[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 12:10 / Filesize : 83 KB / Number-of Response : 230
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【入門書クリア前提】初心者用段階的ゲーム製作スレ



1 名前:名前は開発中のものです。 [2008/12/21(日) 10:01:44 ID:XeH+Z5e9]
入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ

入門書おわた
    ↓
コンソールでゲーム製作
    ↓
DXライブラリでも使ってゲーム製作

こういう順番で段階的にやって行きたい

基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー

とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです

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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<83KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef