【入門書クリア前提】初心者用段階的ゲーム製作スレ
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2008/12/21(日) 10:01:44ID:XeH+Z5e9って人のためのスレ
入門書おわた
↓
コンソールでゲーム製作
↓
DXライブラリでも使ってゲーム製作
こういう順番で段階的にやって行きたい
基本は
1.詳しい人がコンソールのゲームでお題を出す
2.初心者が作る
3.できるまで自分で調べて頑張る
4.どうしても無理ならソース晒して教えてもらう
5.完成したらソース晒して、他の製作者のものと比べてウマー
とりあえず、入門書から先に進めなくて涙目になってる人(俺含め)のためのスレです
0002名前は開発中のものです。
2008/12/21(日) 10:06:03ID:Z9YwqGtMコンソールは無理
0003名前は開発中のものです。
2008/12/21(日) 10:07:17ID:XeH+Z5e9お前コンソールでphotoshopでも作る気か?
0004名前は開発中のものです。
2008/12/21(日) 10:08:00ID:Z9YwqGtM言語なのか、ゲームの入門書みてたら
コンソールはいらなくないか
0005名前は開発中のものです。
2008/12/21(日) 10:14:28ID:XeH+Z5e9言語書いてなかったすんません
C言語を前提で話してます
つまり、「はじめてのC」とか一通り理解したけどこの知識からどうやってゲームつくんだよ・・・
みたいに途方にくれてる初心者(俺含め)を対象に、簡単なゲーム設計をやっていこうみたいなスレです
コンソールアプリケーションがらくだと思ったんだけどだめかな?
0006名前は開発中のものです。
2008/12/21(日) 10:15:58ID:XeH+Z5e9簡単な戦闘ゲームなんかも作れるようになったらかなりgoodだと思うんだが
0007名前は開発中のものです。
2008/12/21(日) 10:16:00ID:Z9YwqGtM縦横50マスの範囲(何らかの形で表示)を
敵10体とプレイヤーを表示して
ゴールと通過しなければならない地点を
ランダムで表示、移動は上下と左右のみターン製で
通過地点を通ってゴールに行けばクリア。
障害物はない敵の動きは任せます。
0008名前は開発中のものです。
2008/12/21(日) 10:17:27ID:XeH+Z5e9いきなり難易度が高すぎるよww
もっとほんと簡単なことろからやりましょうよ・・・
とりあえず数当てゲームを作ってます
0009名前は開発中のものです。
2008/12/21(日) 10:21:25ID:DkqFYwhEそうすりゃ>7だってできんことは無いだろう。
0010名前は開発中のものです。
2008/12/21(日) 10:21:29ID:Z9YwqGtMコンソールはやめてwindowにしなよ
部分的なコードでもいいからここに書いてみ
わからないのはここに答え書くよ
0011名前は開発中のものです。
2008/12/21(日) 10:21:57ID:XeH+Z5e9そのお題にたいして自分なりに色々ルールや文言を決める
そんで軽くまとめて、あとは製作
■名前
数当てゲーム
■遊び方
1〜9の中からランダムに決められた数をユーザーが当てるゲーム
■仕様
ユーザーの入力値が10の時にゲーム終了
ユーザーの入力値が1〜10の範囲外のときは、再入力を促す
ユーザーの入力値が答え+-2なら「惜しい」的な表示を
ユーザーの入力値が答えより大きければ「大きい」小さければ「小さい」を表示
0012名前は開発中のものです。
2008/12/21(日) 10:24:08ID:Z9YwqGtMできそうでないのに挑戦することに意味がある(覚えやすい)
開発環境は?
0013名前は開発中のものです。
2008/12/21(日) 10:29:39ID:ymFJ1v3a>>9
めちゃくちゃ考えたらわかるかもしれないけど、API?ライブラリ?な初心者(俺)にとっては正直厳しいです……
コンソールで簡単なゲームを作りつつ一歩ずつ進む感じでは難しいですかね?
0014名前は開発中のものです。
2008/12/21(日) 10:32:50ID:ymFJ1v3aWindowだと絵とか色々用意しなきゃいけないんじゃ無いんですか?
ほかにもWindow自体を作るソースとかも必要なんじゃないんですかね…?
そういうの全く分からなかったので
自分の理解しているコンソールから始めようと思ったのです
>>12
ですよねwww
一応こんな感じでやっていきたい
みたいなやつです
XPPROでVC++です
0015名前は開発中のものです。
2008/12/21(日) 10:39:55ID:fqBa+KQbここの段階学習もウィンドウだからな
コンソールは意味ないよ
VCCなら新規プロジェクトでウインドウアプリ
ウィンドウにボタンとlabel5*5で25個設置
lebelの文字を変えることで敵とかを識別でどう?
0016名前は開発中のものです。
2008/12/21(日) 10:42:49ID:ymFJ1v3aつまり、今更コンソールなんかやっても仕方ない感じですかね
0017名前は開発中のものです。
2008/12/21(日) 10:42:55ID:iV+BWt5y今年の漢字タイピングゲーム
■遊び方
今年の漢字をひたすらタイプ
■仕様
クリアするとほんのりえっちなAAがお目見え
0018名前は開発中のものです。
2008/12/21(日) 10:45:12ID:ymFJ1v3aそういうのが欲しかったwww
やってきます
まあAAないからクリア要素はないけど
0019名前は開発中のものです。
2008/12/21(日) 10:48:51ID:XeH+Z5e9#include <stdlib.h>//乱数取得に必要
#include <time.h>//rand()の初期化に必要
#include <math.h>//絶対値の計算に必要
using namespace std;
int main()
{
int n,rnd,flag=1;//n:ユーザー入力 rnd:答え flag:ゲームを続けるか否か
while(flag)//mainのループ
{
srand(time(NULL)); //乱数の初期化?よく分からないけどコレやら無いと値が固定になる
rnd = rand() % 9+1; //乱数を1〜9までにしてrndに代入
cout << "1〜9で当ててください(終了は10)" << endl;
while(true)//answerループ、当たるまでor10が入力されるまでループ
{
cin >> n;
if(n <= 0 || n >=11)
{ cout << "1〜9(終了は10)を入力してください"<<endl;
continue;}//もし1〜10の範囲外ならmainのループに戻る
else if(n == 10){flag=0;break;}//もしn=10ならflagに0を代入しanswerループを抜ける
0020名前は開発中のものです。
2008/12/21(日) 10:49:22ID:XeH+Z5e9{
cout << "正解です" << endl;
break;
}
else if(abs(rnd-n) <= 2)//rnd-nの絶対値が2以内なら表示
{
cout << "惜しいです、";
}
if(n > rnd)
{
cout << "もっと小さいです" << endl;
}
else if(rnd > n)
{
cout << "もっと大きいです" << endl;
}
}
}
return 0;
}
0021名前は開発中のものです。
2008/12/21(日) 10:52:37ID:ymFJ1v3aテーマ
>>11
ソース
>>19>>20
動作は大丈夫だと思いますが
「ここはこうじゃね?」
とか
「こうしたほうが簡単にかける」
とか
「この処理いらなくね」
みたいなものがあったら指摘お願いします
0022名前は開発中のものです。
2008/12/21(日) 11:09:42ID:XeH+Z5e9やっつけ仕事だけど幾分見やすくなったかと・・・
http://dounika.web.fc2.com/
それじゃ>>17作ってきますお題ありがとう!
0023名前は開発中のものです。
2008/12/21(日) 11:14:02ID:XeH+Z5e9の仕様を決めねば・・・
■名前
今年の漢字タイピングゲーム
■遊び方
1995年〜2008年までの西暦を順番に表示
その年の「今年の漢字」を入力
■仕様
1995年〜2008年までの西暦をランダムに10個表示
一つずつ、その年の「今年の漢字」を入力
正解ならその旨表示
最終的に10問中何問正解したかを表示し結果によって表示内容分岐
こんなかんじかな・・
行ってきます
0024名前は開発中のものです。
2008/12/21(日) 11:23:58ID:fqBa+KQbてか次のお題もはじめのと同じじゃん?
配列は使うだろうが
そういうの何個作っても同じだよ
0025名前は開発中のものです。
2008/12/21(日) 11:34:33ID:XeH+Z5e9だから、現段階では無理ですって
文字が書けるようになったばっかりの人間に小説書けって言ってるようなもんですよ?
そんな大きなプログラム作って途中で挫折するなら小さいプログラムでも確実に作ったほうが少しは力になると思うんですが
そんなに、小さい努力は無駄ですかね?
配列を使うということはさっきのものより少しレベルアップしたと思うんですけどそれじゃだめですかね?
もし、俺の考えがとんでもなく考え違いで
「こんなことやっても意味がない」と重ねて言うなら>>7にとりかかろうと思います
0026名前は開発中のものです。
2008/12/21(日) 11:41:27ID:XeH+Z5e9すんません
0027名前は開発中のものです。
2008/12/21(日) 11:47:28ID:EtGJ5kM3ちょろっとコード書いて、天狗になって、
似たようなモノをいくら繰り返し書き続けても、発展がない。
なぜなら、すでに出来ることをやってるだけで、新しい技術が何も身につかないから。
喩えれば、一桁の足し算を覚えた小学生が、
数字だけを取り替えながらいつまでも足し算ばかり解くようなもの。
先に進めないのだ。
0028名前は開発中のものです。
2008/12/21(日) 11:55:26ID:XeH+Z5e9むしろ、足し算しか分からない子供に掛け算や割り算を自分で理論まで考えて解けって言ってるようなもんだと思うんですけど
それは、たしかにできることかもしれないけど考え付くまでにとても時間がかかるし
分かってしまえば簡単なことかもしれないけど現実的ではないと思うんですが・・・・
そういう意見ばっかりだからプログラミングの敷居を高くしちゃってるような気がするんですがね
別に「今すぐ早急に」を求めているわけではないんで、ゆっくり上達していけばいいと思うんですが
ここの人たちはみんなプロ志望かなんかなんですかね?
あなたたちから見たらクソみたいなものかもしれないけど
現に、数当てゲームを作るのだって乱数の知識を調べて身につけたし、今作ってる今年の漢字あてだって配列のポインタを身につけたし(みようみまねだけど)
そんなんじゃだめなんですかねえ・・・
まあ、俺みたいな駆け出しの考えが正しいはずないし、今作ってるの辞めて>>7に取り掛かります
ありがとうございます
0029名前は開発中のものです。
2008/12/21(日) 11:59:04ID:fqBa+KQbコンソールじゃだめだよ
0030名前は開発中のものです。
2008/12/21(日) 12:00:40ID:EtGJ5kM3ネットで無責任な人に聞いたってロクなことはない。
必死に勉強し、できるだけ良い大学に入って、
同好の士が集まるサークルに所属して交友を深めるのが一番だ。
運が良ければ高校でも同好会はあるが、その時点でのめり込むと、
専門学校・四流大 → 下層民 の転落ルート確定だから。
0031名前は開発中のものです。
2008/12/21(日) 12:12:45ID:rKpGztZGhttp://pc11.2ch.net/test/read.cgi/gamedev/1086858349/
0032名前は開発中のものです。
2008/12/21(日) 12:18:31ID:fqBa+KQbがいいと思うんだがなこれができたら、
RPGまでいっきに行くつもりなんだがw
とりあえずコードはいいから
どういう考え(手法)でいくか書いてくれ
ここで方向を間違ったらもったいないしね
0033名前は開発中のものです。
2008/12/21(日) 12:43:27ID:PQUSz0Mp0035名前は開発中のものです。
2008/12/21(日) 12:47:03ID:fqBa+KQbできたらスクショよろ
0036名前は開発中のものです。
2008/12/21(日) 12:49:19ID:PQUSz0Mplabelがよくわかんないんだけど
*****
*****
*****
*****
*****
こんな感じで四角形を並べればいいの?
0037名前は開発中のものです。
2008/12/21(日) 12:52:02ID:fqBa+KQb一段下がって右にいってをやるんやで
コピーもできるが一個ずつやで
labelのnameに意味があるからね注意してや
0038名前は開発中のものです。
2008/12/21(日) 12:52:06ID:nqiZzAA2数字以外入力すると、ふっとぶ。
他には難癖つけるほどでもないけど、気になったところ。
・srand(〜)はループの中に入れなくてもおk
・外側のループを while(n!=10){ で、flag変数いらない。
2重ループの構成を変えてみた。
ヘッダ>>19で。メイン以下
int main(){
int n,ans=0;srand(time(NULL));
while(1){
if(ans==0){ans=rand()%9+1;cout<<"1〜9で当てろ(終了は10)"<<endl;}
n=0;cin>>n;
if(n<=0||n>=11){cout<<"範囲外だ。"<<endl;cin.clear();cin.ignore(INT_MAX,'\n');continue;}
if(n==10){cout<<"これにて終了する。"<<endl;break;}else if(n==ans){cout<<"正解だ!"<<endl;ans=0;continue;}
if(abs(ans-n)<=2)cout << "もうちょっと";else cout<<"もっと";
if(n>ans)cout<<"小さい"<<endl;else cout<<"大きい"<<endl;}
return 0;}
0039名前は開発中のものです。
2008/12/21(日) 12:57:49ID:PQUSz0Mp何言ってるかわかんないから一応ググって見たけどググってもでてこないから俺には無理そうだ
>>38
>>19-20のプログラムはそんなに短くなるのか・・・感動したよ
>>1のやりたいことがなんとなくわかった、けどもう>>1はいない
これは悲しいな
0040名前は開発中のものです。
2008/12/21(日) 13:03:10ID:fqBa+KQbフォームは表示してるか?自動でできてるやろ
0041名前は開発中のものです。
2008/12/21(日) 13:09:06ID:PQUSz0Mphttp://www2.uploda.org/uporg1871845.png
ここから先に進まない
0042名前は開発中のものです。
2008/12/21(日) 13:19:22ID:fqBa+KQbhttp://www2.uploda.org/uporg1871862.jpg
ツールボックスからlabelを選んでそれをドラッグで配置やで
ツールボックスは表示から表示してな
0043名前は開発中のものです。
2008/12/21(日) 13:21:52ID:fqBa+KQbデザイン画面は左のプロジェクトの中のform1.hを
ダブルクリックで表示やで
0044名前は開発中のものです。
2008/12/21(日) 13:39:26ID:PQUSz0Mp30分もかけちゃってすいません
http://www.uploda.org/uporg1871943.png
0045名前は開発中のものです。
2008/12/21(日) 14:07:12ID:fqBa+KQblabel適当にクリックで選択してみ、んでプロパティの中の
上のほうにあるnameどうなってる?
左上から順にlabel1 label2になっとるかい?
0046名前は開発中のものです。
2008/12/21(日) 14:09:58ID:fqBa+KQb入門書レベルはおkですかね
0047名前は開発中のものです。
2008/12/21(日) 14:11:03ID:49OkHcC60048名前は開発中のものです。
2008/12/21(日) 14:15:24ID:PQUSz0Mp入門書を数ヶ月前にやってそのまま堕落してる状態です
名前かえなきゃいけないのか・・
やってきます
0049名前は開発中のものです。
2008/12/21(日) 14:17:16ID:fqBa+KQb0050名前は開発中のものです。
2008/12/21(日) 14:19:53ID:PQUSz0Mphttp://www.uploda.org/uporg1872054.png
>>49
はい
0051名前は開発中のものです。
2008/12/21(日) 14:24:06ID:PQUSz0Mphttp://www2.uploda.org/uporg1872067.png
0052名前は開発中のものです。
2008/12/21(日) 14:36:10ID:fqBa+KQbここからはちょい、覚えないかんので
書くで
int main の下に自作関数
void mbox(void)
{
MessageBox::Show("aaa");
}
を書く
form1.h選んで右栗からコードの表示で
上のほうに#pragma onceがあるやろうから
そこに
void mbox(void);
これの意味はわかるか?
んでフォームデザインでstartをダブルクリック
すると勝手に
private: System::Void button1_Clickとかでるから
中に
mbox();
これでそれぞれ書く場所がわかるはずや
実行してみ
0053名前は開発中のものです。
2008/12/21(日) 14:41:11ID:PQUSz0Mpできますた
クリックでaaaって描かれたウインドウが表示されました
0054名前は開発中のものです。
2008/12/21(日) 14:50:08ID:fqBa+KQbその名前->Text="なんでもええ/n改行した";
その名前->BackColor=Color::Red;
をmboxの中に書いてみプログラムで
プロパティで変えれるもんは変えれるって事や
これで状態をあらわすんや へぼいなw
0055名前は開発中のものです。
2008/12/21(日) 14:55:30ID:PQUSz0Mpなるほどなるほど
0056名前は開発中のものです。
2008/12/21(日) 15:03:58ID:fqBa+KQbボタンを押したら毎回ランダムで3個の
labelの文字を敵という文字に変える
それ以外は何らかの文字にする。
ちゃんと前回の敵の文字は消すこと。
グローバル変数なんかは
void mbox(void);
あたりに書く
はっきりいうとswitch のおばけ文になる
あとはインテリセンスをググって調べとくこと
ほな(^^♪
0057名前は開発中のものです。
2008/12/21(日) 15:09:04ID:fqBa+KQbint rの時
r.ToString()で文字列になる
0058おいちゃん ◆DlyW/s8ibQ
2008/12/21(日) 15:29:16ID:fqBa+KQb学ぶならRPGとシュミレーションどっちが先がいい?
それと>>1はいないんか、なんか悪いことしたな
別スレのほうがいいかな?
0059名前は開発中のものです。
2008/12/21(日) 17:56:00ID:rKpGztZG悪いことは言わないからその人はやめとけ
0060名前は開発中のものです。
2008/12/21(日) 17:56:32ID:xa3Nwc9G00611
2008/12/21(日) 19:24:07ID:ymFJ1v3aコンソールのゲームは本当にイメージが大事だから練習にはいいと思ったんですがね……
下手にGUIに手を出しても、よく分からないし
言われたことそのままハイハイやってても身に付くわけないし
だからお題だけもらって分からないところはヒントもらう、完成したらソースを見てもらってもっといい書き方を教えてもらったり他人のソースと比べて別なアプローチを知ったり〜
みたいな感じがいいと思ったんですが
0062名前は開発中のものです。
2008/12/21(日) 19:29:26ID:ymFJ1v3aありがとうございます
なるほど、数字の範囲外だけではなく文字も考えなくてはいけないのですね……
これはかなり大きいミスですね
以後気をつけます
そんなに短くなるのですか……
帰ったら自分のソースとよく見比べてみます
ありがとうございます
006338
2008/12/21(日) 20:30:45ID:P2cMz3mFロジック的にはなんの圧縮もしてないですから。
むしろ可読性悪くしてる気がする。if文羅列はこれ以上どうにもならなかったし。
インデントの無い縦長ソースよりは見やすいような気がするだけで。個人的に。
VisualStudioならコピペして、切れ目っぽいところで改行していけば
半自動で整形してくれる。
006438
2008/12/21(日) 20:50:05ID:P2cMz3mF・ハノイの塔
・8王妃
・巡回セールスマン
・ナップザック
・安定的結婚
とか書いてあるページ見つけた。懐かしい。
このへんのロジックを自分で考えて作ることができれば
宿題スレで武者修行できるくらにはなれるんじゃないかと。
コンソールアプリではこのへんが限界。
テトリスとかの落ちもの作ろうと思ったら
コンソールでがんばるより次に進んだほうが早いと思う。
0065名前は開発中のものです。
2008/12/21(日) 22:35:27ID:psCLGrAGびっくりするほどどんどん出来るようになると思う
上手く説明できないのが悔しいが
windowsなら、こういう風にループしてるんだという流れがわかれば
あとは付け足すだけだし
スケルトンプログラムでもさっさと理解した方が早い気がする
0066名前は開発中のものです。
2008/12/22(月) 00:40:10ID:ASveWW9+個人的にはコンソールはロジック部分(例えばRPGのダメージ処理とか)とかを
てっとりばやくテストしたい時に、検証用に使う。
逆に言えば文字列の入出力以外のUIを持たないので、UIが重要になるゲームを作りたい
ならコンソールを勉強しても大して意味は無い。angbandみたいなのが最終目標
とかいうなら別だが。
0067おいちゃん
2008/12/22(月) 01:53:14ID:mUNaomub応用効く宿題しかださんからやってみてや
仕組みとかも自分であとあと考えられる力、これをみにつけられると思うで、一番大事だと思う。
あとな、コードがこれのほうがいいとか、無用やで
こうしたい、でその通りに動くだけでいい、ただ他人のは読めないかんと思う
0068名前は開発中のものです。
2008/12/22(月) 04:06:11ID:75EKu/k50069名前は開発中のものです。
2008/12/22(月) 05:08:52ID:goIQAPxA予算の関係で、マッチングサーバーをレンタルサーバーにしようと
思っているのですが、もし、ある程度売れてしまった場合に
専用のサーバーに変えるとしたら、IPアドレスが変わってしまった場合
どうやって、対処すれば良いですか?
0070おいちゃん ◆DlyW/s8ibQ
2008/12/22(月) 07:47:37ID:e0/X2/aDでも答えたる
あのな、よくレンタルサーバーとかいうけどな
それはweb関連用途に限って貸してくれるねんで
だいたいcgiでさえ自作の範囲限られるのに
そうでない場合も相手がソースが見れるんやから
見れない自前アプリなんか入れさせるわけないやろ。
この点サーバーてっのがゲーム用途と同じだと思う奴多いな。
hp式(データベースにsqlserver利用)のマッチングだったら
ドメイン引き継げばいいやん、後は前の奴から飛ばせばいい
あーあとな宿題の答えは2日以内に書き込んでな
答えは3日目に書くから
0071名前は開発中のものです。
2008/12/22(月) 12:39:12ID:7HSkpjqK0072名前は開発中のものです。
2008/12/22(月) 12:46:37ID:7HSkpjqKrandの使い方に問題があるね。
なぜなら、いくつかのrandの実装では下位ビットがそれほどランダムでは無いとかうんたらかんたら
rnd=1+(int) (9.0*rand()/(RAND_MAX+1.0));
とすることを推奨します。
でも初心者のうちは割とどうでもいいような気もするので、今のままでもおk。
■ このスレッドは過去ログ倉庫に格納されています