トップページgamedev
229コメント109KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/12/21(日) 10:01:44ID:XeH+Z5e9
入門書一冊終わったけどこれでどうやってゲーム作んだゴラー
って人のためのスレ

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

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

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

とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
0201名前は開発中のものです。2009/01/18(日) 16:19:05ID:p3BsxAdP
>>198
if文を使っているか使っていないかといわれれば使っているが
当然それだけで制御しているわけじゃない
あと、人数が増えてもキャラにIDをつけてforで回せばいいので大変さは変わらない

参考(javaのRPG戦闘ソース)
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9261/source/index.html
C++でもアルゴリズムは同じ
0202名前は開発中のものです。2009/01/29(木) 07:20:21ID:ETfSP+cE
http://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];
}

って何を意味してるの?
0203名前は開発中のものです。2009/01/29(木) 10:03:40ID:xirprjZ5
>>202
キー入力状態に変化があったかどうかを調べてる。
特に、「押してない状態(0)」→「押してる状態(1)」に変化しているなら、
「今押された(2)」ってことにしてる。

てかリンク先間違ってるだろそれ。
0204名前は開発中のものです。2009/02/19(木) 00:05:49ID:YuEFv8kY
2Dのアクションゲームを作ってるんですが、斜め方向のマップの当たり判定はどうやったらいいんでしょうか
今までマップチップ単位でキャラとマップの当たり判定をやってたんですがこれだと傾斜のあるマップに対応できないです。
マップチップとは独立してドット単位で当たり判定のデータを用意するくらいしかないでしょうか
0205名前は開発中のものです。2009/02/19(木) 09:04:49ID:CC1OIocp
>>204
難しいこと考えてるなあと。
マップチップでは管理しきれないと思う。ドット単位というのも無茶な話。
キャラ(オブジェクト)単位での当たり判定になるね。

「14歳からはじめるC言語ゲームプログラミング」
http://www.rutles.net/books/217.html
この本のサンプルが、そのものずばりで解決してくれると思う。
ソース無しのサンプルゲームはDLできるので、これ見て役に立ちそうならどうぞ。
0206名前は開発中のものです。2009/06/22(月) 23:33:49ID:PR8N99oV
段階スレのまとめって今はどこなの?
0207名前は開発中のものです。2009/06/23(火) 01:02:00ID:dkvBYAOU
gamedevは新しくなってる
ttp://wiki.game-develop.com/
0208名前は開発中のものです。2009/09/08(火) 11:21:57ID:yapzJvXF
初学者にやさしいゲームってどういう順番で作るのがいい?

○1.○×ゲーム
○2.15パズル

敵が無い、思考ルーチン考えないでいいぶん2のほうが楽かな。

○3.マインスイーパー
  4.ブロック崩し
  5.倉庫番
  6.テトリス
    :
    :

○は作った。次は倉庫番かと思ってたけど、DXライブラリがバージョンアップして
描画改善に伴いマウスの反応が良くなったからブロック崩しに行こうかと。

7以降とか2.5相当とか、追加あったら応援おねがいしたい。
0209名前は開発中のものです。2009/09/08(火) 11:29:49ID:6MhMNrx0
自分が作りたいゲームで作れそうなの作れば
0210名前は開発中のものです。2009/09/09(水) 12:09:38ID:eLuVrXen
>>200
>C++だと、カードっていうスーパークラスがあって、
ここの所もうちょい詳しく
そういうクラスが標準で用意されてるのかと思ってググってみたんだけど、全然ヒットしないです
これは基底クラスを自前で作ってそこから派生させろという話?
0211名前は開発中のものです。2009/09/09(水) 14:17:10ID:vKyxO6xF
>>210
自分で作るんだよ。

たとえば「戦士は敵Aを攻撃」「魔法使いは呪文で全体攻撃」とか、行動の記録を構造体の配列なんかで持たせて
全部出揃ってから素早さ順なんかでソートする。

200のやり方はこのカードからプレイヤーや敵のクラスを継承させるみたいだけど
俺はキャラデータからカードを完全に分離させて、カードの仕事は行動解釈だけに絞るほうが好み。
0212名前は開発中のものです。2009/09/09(水) 21:51:16ID:UMpltBwW
>>211
ありがとうございます
>>200は「カードっていうスーパークラスを作って」の意味でしたか
0213名前は開発中のものです。2009/09/29(火) 05:17:35ID:kGLDkUja
C言語でちょっと数値計算できる程度の実力ですがC++でゲーム制作に挑戦することにしました。
とりあえず数当てゲーム作ったけど、数字じゃなくて文字が入力された場合の例外処理がよくわからなくて棚上げ
ひとまず次頑張ってみます
0214名前は開発中のものです。2009/09/29(火) 05:56:42ID:tenDfojw
標準関数のisdigit使えば何とかならん?
0215名前は開発中のものです。2009/09/29(火) 08:18:06ID:kGLDkUja
aとかaaaとかは抜けれるようにできましたが1aとかがまだでした
一回寝てからもう少し頑張ります
0216名前は開発中のものです。2009/09/29(火) 13:45:22ID:/Wz8dUNK
atoiの存在に今気付いた
isdigitなんか使う必要ねーじゃん
0217名前は開発中のものです。2009/09/29(火) 13:59:20ID:yWA5tZHN
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9961.zip

けっこう連続入力とか嵌るんだよな
0218名前は開発中のものです。2009/09/29(火) 16:08:36ID:ryAGnP+G
ご丁寧にありがとうございます
とても参考になりました
0219名前は開発中のものです。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]が消えちゃうんですよね。
かといって、まず全部敵を消してから位置情報を変えて、改めて全部の敵を表示するようにすると、こんどは敵が消えている時間帯が多く発生するので、画面がなんかちかちかするんですよ。

どうやって解決したらいいんだろう?

0220名前は開発中のものです。2009/10/12(月) 10:41:42ID:PNg7pEvy
>>219
後者のやりかたの発展になるけど、裏画面に画像を用意してWM_PAINTのタイミングで入れ替える。
ホワイトボードの裏側に回って絵を描いて、合図がきたら裏返すイメージ。

ダブルバッファリングとかオフスクリーン描画とかで調べるといい。
C系のWindowsでゲーム作るなら必須の知識になる。
しかし1ヵ月半でここまでできるのはすごいな。
0221名前は開発中のものです。2009/10/15(木) 06:26:55ID:5kHMShZk
>>220
ありがとうございます。
http://www1.axfc.net/uploader/Sc/so/45746
こうなりました。
どうでしょうかね?
もとがぐちゃぐちゃなので直すのに結構苦労しました。
ついでに、敵に当たっても移動できてしまうのを直しました。

0222名前は開発中のものです。2009/10/23(金) 09:54:20ID:r4hfvq6d
カソル
0223名前は開発中のものです。2009/12/07(月) 01:50:47ID:cfqCdEHC
あのさ、ActionScript3で質問なんだが、
FLASHってゲームループの概念なし?
それともEnterFrameとかタイマーイベント使ってやるのか?
イマイチピンとくる説明が検索でけんかった。
0224名前は開発中のものです。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, },
};
02252242009/12/08(火) 17:09:39ID:cuTUnnQj
実行すると

よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 1 <- 入力待ち
そんなこと言わずに・・・
よくきた、勇者よ
魔物を退治してくれんか?
0: 任せてください
1: いやです
> 0 <- 入力待ち
では、行ってまいれ!勇者よ!

となるようなプログラムを書け。
0226名前は開発中のものです。2009/12/08(火) 21:47:41ID:dR/37Ta8
プログラムつうより普通スクリプトでやる処理だわな
02272242009/12/08(火) 23:54:51ID:LCrDR7+W
>226
これができたら、データを外部ファイルに出して処理してみるとか
ステップアップしていくと勉強になるかなと思ったんだけどね。

少しがんばればコンソールで簡単なテキストADVが作れるってのが
分かればモチベーションも上がるかなと思ったんだ…

つか過疎ってるから模範解答を出すタイミングが難しいな。
02282242009/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;
}
0229名前は開発中のものです。2010/05/27(木) 17:19:08ID:cXVnDiqT
保守age
■ このスレッドは過去ログ倉庫に格納されています