アフォBlog
アフォブロ2周年は来月の28日だたwwwwwwwwスマソ
掲示板できますた

ヘッドラインだよ〜ん
コピペブログだお

ニュースブログ等だお
antiina87345683.gif
教室で盛大にゲロ吐いた書籍化のお知らせ
1 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:39:44.20 (p)ID:ICh3/YIw0(41)
ゲームの作り方教えようかと思ったんだけど
どう思う?

3 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:41:10.51 (p)ID:rfCnDa/K0(5)
よし教えろ

8 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:45:25.25 (p)ID:qTOxp4WJ0(8)
ゲームは作れても企画力が乏しくて何も面白いものを作れない
だれか俺に発想をくれ

12 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:47:31.66 (p)ID:howQDq3M0(3)
C言語とやらでどんなタイプのゲームが作れるの?

それによっては俺もC言語勉強するわ


18 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:49:26.57 ID:ICh3/YIw0(41)
>>8
最終的にそうなるよね

>>12
学べば作れないゲームはありません
あとは発想があるかないか


え、でどうするの?
人居るなら教えるけど


19 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:49:47.11 (p)ID:rXOJ04Xx0(27)
>>18
教えてくれよ
俺に

20 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:50:11.03 (p)ID:bporKo0P0(9)
是非教えr・・・教えて下さい

21 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:50:22.63 ID:dYGq0b160
Hなゲームもつくれるの?
>>18
是非教えてください

24 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:52:03.22 (p)ID:ICh3/YIw0(41)
ああ、
多言語がオススメとかそういうのはこの際もうどうでもいいからコンソールレベルのC言語の基礎知識があるやつだけ分かるように説明していくね
コンソールっていうのは、黒い画面に色々表示するアレね
printf("VIP\n");
これとか
分からない単語は聞くかググってね


29 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:55:04.79 (p)ID:ICh3/YIw0(41)
それじゃ、どんどん進めるね
まず
VisualC++2008
http://www.microsoft.com/japan/msdn/vstudio/Express/
を落としましょう
今C言語をやるならこれが最高の環境です、無料です


35 :1 :2009/02/01(日) 21:56:58.78 (p)ID:ICh3/YIw0(41)
次に
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
このページを見ながらDXライブラリをダウンロードして設定まで終わらせてください

22:20分くらいまで待つので、頑張ってやってみてください


32 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:56:14.16 (p)ID:2zZc0L3e0(6)
VIPはこういうの向いてないと思うんだがな
皆が思ってるゲームと基礎の落差が大きすぎて

41 :1 :2009/02/01(日) 21:58:45.30 (p)ID:ICh3/YIw0(41)
>>32
現実を教える意味でも良いかな
と、思ってさ

でも、コンソールからウィンドウズアプリへの移行は死ぬほどハードルが高かった記憶があるから手助けできたらいいなと思ってさ
入門書から進まない症候群を改善できるように


34 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:56:58.06 (p)ID:Ibk1QImM0(4)
C言語ってゲームプログラムに向いてる?

>>34
市販ゲームはほぼCかC++じゃないかな

39 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/01(日) 21:58:28.84 (p)ID:2EqC8D7Y0(5)
>>34
手軽に作りたいならHSP

38 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 21:58:22.09 (p)ID:eG7DK9ca0(12)
DXライブラリって何のライブラリ?

>>38
2Dゲーム作成用のライブラリ

46 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:01:56.11 (p)ID:5fq8+Y2z0(8)
DXlibではやりたいことが実装できるようになったんだけど
その次にどこに進めばいいのかわからん
directXあたり?

>>46
openGLあたりじゃない?
DirectXは壁高すぎると思うよ
ほんと、なにこれって感じ


49 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:02:28.85 ID:pxcHU8el0
ライブラリってなんですか?

>>49
俺も詳しくないからなんとも言えないんだけど
簡単に言えば関数群かな


53 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:04:00.05 ID:AM5omoG1O
HSPもDXライブラリも大体同じノリでいけるな

>>53
そうそう
だから後に繋がるCの方がオススメできる


78 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:11:46.11 (p)ID:5fq8+Y2z0(8)
openGLとdirectXってなんだかまったく別物のような気がしてたんだが
openGLやってたら将来的にdirectXやるとき大分理解しやすくなるもんなの?

79 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/01(日) 22:13:30.74 (p)ID:8exhkjt30(16)
>>78
実際別物
OpenGLは低級な描画操作のためのライブラリで、C的
DirectXは高級な描画操作のためのライブラリでC++的

85 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/01(日) 22:15:32.50 (p)ID:Y72kQnrJ0(11)
C、C++、C#って具体的に何が違うの?
VBとVBA、VBSくらい違うの?

>>85
C++とCha似てるけどC#は全く別物
個人的な感想だけど


95 :1 :2009/02/01(日) 22:21:26.10 (p)ID:ICh3/YIw0(41)
それじゃ始めます
今回作るのはかいわれ育成ゲームです///



え?RPG?シューティング?寝言は寝て言え


98 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:22:00.14 (p)ID:Ibk1QImM0(4)
かいわれ育成ゲームって何かデジャブwwwwwwwwwwwwwwwww

100 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:22:10.88 (p)ID:rfCnDa/K0(5)
よし 解散

101 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:22:51.09 (p)ID:bporKo0P0(9)
この>>1すきだwww

103 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:22:59.34 (p)ID:qTOxp4WJ0(8)
なんだと・・?

104 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:23:02.40 ID:L8GQNkbl0
どうせならもやしにしろよ

107 :1 :2009/02/01(日) 22:23:46.58 (p)ID:ICh3/YIw0(41)
ええ、正直ショボイです
でも、最初の段階としてはこれで十分すぎるほどです

ゆっくり行きましょう
まず、どのようなゲームにするか考える必要があります


119 :1 :2009/02/01(日) 22:28:04.67 (p)ID:ICh3/YIw0(41)
まず、ゲームを作るときにはどのようなゲームか頭の中に完成形がないといけないわけです
「かいわれ育成ゲーム」想像してみてください

水をやったり、肥料をやったり
登場人物は・・・・天気は・・・・舞台は・・・・・


はい、色々想像できましたね?
それ全部忘れてください。そんな複雑なの嫌です


122 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:28:58.08 (p)ID:JfEdMZKa0(2)
想像損

124 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:29:22.48 (p)ID:5fq8+Y2z0(8)
せっかく色々想像したのにwww

126 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/01(日) 22:29:40.13 (p)ID:6W5PKWGt0(6)
>>119
俺の妄想返せw

134 :1 :2009/02/01(日) 22:31:11.61 (p)ID:ICh3/YIw0(41)
もっと簡単なものでいいんです

「かいわれが一定時間ごとに育つ」
「収穫できる」
「収穫した数と、日数をセーブデータとして残す」

こんなもんで良いです
これだけでも基礎はほぼ詰めたので、これが作り終わるころにはもうなんでも作れます


140 :1 :2009/02/01(日) 22:33:32.16 (p)ID:ICh3/YIw0(41)
ごたくはいいから作り始めろって?

深く考えずに始めてみろ!どんな悲惨な目にあうか・・・・


あ、今回作る予定のものおいときますね
http://www4.uploader.jp/dl/kaiware/kaiware_uljp00004.zip.html
↑にない場合はミラー
これやって、どんな変数が必要かちょっと考えてみてください


155 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:37:34.94 (p)ID:rXOJ04Xx0(27)
かいわれktkr

159 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:39:17.80 (p)ID:zhfX5BQu0(2)
>>140
収穫数をセーブから読み込んで加算するための変数
4つのかいわれの状態を記憶する配列
時間経過で朝昼晩を切り替えるための変数
まだあるかな

>>159
うん、正直俺も覚えてないわけだけど
多分もっと沢山あると思う

その中でセーブデータとしなくてはいけないものを抜き出す
これを最初に考えとくと後が楽だよ

具体的には、「収穫数」と「日数」をセーブデータとして格納する


135 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:31:17.31 (p)ID:ldRtPsYT0(6)
だからポインタを分かりやすく説明しろよ

156 :1 :2009/02/01(日) 22:38:44.78 (p)ID:ICh3/YIw0(41)
>>135
俺も詳しくないからどうしようもない

マンション的に考えて
田中さんという変数がある
田中さんに荷物を渡したければ田中さんを呼んでくればいい
でも、関数での値渡しがうんたらかんたらのときに田中さんを呼ぶと怖いおばちゃんが「田中さんの代わり」とか言ってやってくるんだ
そういうときはたなかさんの部屋(102号室)に直接荷物を郵送しちまえば田中さんに荷物を渡せるでしょ?

こんな感じだよ多分


170 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:41:57.75 (p)ID:4Px8NhLb0(10)
>>156 メモリの位置だろ

ポインタは直接メモリの位置を参照して、メモリに保存してある数値も扱える
普通の変数だとメモリの位置をあつかえない

160 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:39:27.98 (p)ID:iU4iER8s0(3)
クソゲーwwwwwwww

173 :1 :2009/02/01(日) 22:42:36.64 (p)ID:ICh3/YIw0(41)
gdgdになってきたから見切り発車だけど進めちゃうか

今回は最初だから行き当たりばったりで作っていけばいいと思ってる
とりああえず、ゲームが出来ていく過程が分かったほうがいいよね


190 :1 :2009/02/01(日) 22:46:29.98 (p)ID:ICh3/YIw0(41)
それじゃ、まずプロジェクトを作成してください
名前はなんでもいいけど今回は「kaiware」にします

新しいプロジェクト画面で左側を「win32」右側を「win32コンソールアプリケーション」
にして下の「そりゅーしょんのディレクトリを作成」のチェックを外してOKボタンを押下(クリック)


201 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 22:48:38.95 (p)ID:rXOJ04Xx0(27)
ハジマタwktk

207 :1 :2009/02/01(日) 22:50:03.13 (p)ID:ICh3/YIw0(41)
出てくる画面で「次へ」を押下
(多分初期設定でなってると思うけど)

207cde238457345634785638753.png

↑こんな感じで「完了」を押下

219 :1 :2009/02/01(日) 22:54:19.95 (p)ID:ICh3/YIw0(41)
次に、新しい項目の追加で「C++ファイル」を追加してください
名前はやっぱりなんでもいいけど今回は「mymain」にします


それで、DXライブラリを使う時は初期設定を毎回しなければならない
これは覚えておいてね

上にある「プロジェクト(P)」を押下し、一番下の「kaiwareのプロパティ」を押下


めんどくさいな、これ



232 :1 :2009/02/01(日) 22:59:22.97 (p)ID:ICh3/YIw0(41)
左項目「全般」
右の「文字セット」を「マルチバイト文字を・・・」に変更

232cde237864287462875638475638.png


次に左上の
「アクティブ(Debug)」ってとこをクリックして「Release」にして(この時保存確認があるが「はい」を選択)
同じように「全般」で文字をマルチバイトに変更


241 :1 :2009/02/01(日) 23:03:04.68 (p)ID:ICh3/YIw0(41)
説明するのめんどくさいから画像どおりにやって
Debug

241-1cde4875638745638752839472398.png


Release
241-2cdeitueauighaeiughaeiugrha.png


逆にしないように


ここまでは初期設定だからゲームを作るたびにやらなきゃいけない


248 :1 :2009/02/01(日) 23:09:58.21 (p)ID:ICh3/YIw0(41)
それじゃ作成に入りたいんだけど、なんか色々初期設定があるわけだ
とりあえずこれそのまま打って打ち終わったら「F5」を押す


#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1) return -1;

WaitKey();
DxLib_End();
return 0;
}


250 :1 :2009/02/01(日) 23:11:11.33 (p)ID:ICh3/YIw0(41)
真っ黒のウィンドウが出たらおめでとうでなかったら設定間違ってるからもう一回見直してみて



これよく見たら人居ないけど続けるべき?


251 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 23:12:01.11 (p)ID:rXOJ04Xx0(27)
いや、俺が居る!!!

252 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 23:12:01.98 (p)ID:iU4iER8s0(3)
俺を無視するとはいい度胸だ

264 :1 :2009/02/01(日) 23:16:30.28 (p)ID:ICh3/YIw0(41)
なんか、逆にありがとう
分からないところは聞いてね

それじゃ、どんどん作って行きたいんだけど
今までのように
printf("なんとか");
とか打ってももちろん文字は表示されない

とりあえず文字を表示する関数をリファレンスで調べてみよう
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R17N1


といった感じで一つ一つリファレンスを見ながら自分のやりたいことを組み合わせていくのが実際のゲーム製作になる
「画像はどう表示するのか」
「音楽はどう鳴らすのか」

そういったことを一つ一つ調べながらくみ上げていく

めんどくさいよね


277 :1 :2009/02/01(日) 23:23:15.16 (p)ID:ICh3/YIw0(41)
次は画像表示したり、音楽鳴らしたりしたいんだけど
大抵「素材ないよちくしょう作るの無理だよやる気失せたよ」ってなっちゃうから今回は「かいわれ」に同梱されてる素材をそのまま使います

(初期設定だと)Myドキュメント/Visual Studio 2008/Projects/kaiware

ここに、さっき落としたサンプルのゲームの「Date」ってフォルダをコピーしてください


283 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 23:24:41.86 (p)ID:+Iw1NdhoO(12)
printfってなんのあれだっけ…

>>283
stdio.h

288 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 23:26:55.78 (p)ID:rXOJ04Xx0(27)
なんのあれだっけで通じるとはエスパーだな

297 :1 :2009/02/01(日) 23:31:17.18 (p)ID:ICh3/YIw0(41)
画像とか音楽とかその他もろもろの表示には2パターンあって

1が、その場で画像を呼び出して表示
2が、予めメモリに画像ハンドルをロードして、ハンドルから表示

処理が早いのは2だし、一番最初の時点で素材がちゃんと揃ってるか確認できるから多分みんな2を使う

#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1) return -1;

int gazou;

gazou=LoadGraph("Date\\BgImage.png");
DrawGraph(0,0,gazou,FALSE);



WaitKey();
DxLib_End();
return 0;
}


打ち終わったらF5で画像が表示されるか確認してください

307 :1 :2009/02/01(日) 23:37:57.23 (p)ID:ICh3/YIw0(41)
といっても、この説明じゃ分からないと思う

この画像見ればきっと大丈夫


307cde2983427346278364857389adtjhdfga5738954.png

まあ、よく分かんない人は
変数に画像を保存してるって思えばいいと思う


325 :1 :2009/02/01(日) 23:44:29.27 (p)ID:ICh3/YIw0(41)
それじゃ次に
DrawGraph(0,0,gazou,FALSE);

を下のように書き換えてみて

for(int i=0;i<1000;i++)
{
DrawGraph(i/5,i/5,gazou,FALSE);
}


やればわかるけど、前にあった画像が消えないで残っちゃうから変なことになります

343 :1 :2009/02/01(日) 23:55:35.11 (p)ID:ICh3/YIw0(41)
それじゃ次だけど
ちょっと概念的なものを

コンピュータを「画用紙」だと思ってください
画像は「判子」
最初に
「上から1cm、左から1cmに判子を押せ」と命令が来る
次に
「上から10cm、左から10cmに判子を押せ」と命令が来る

一枚の画用紙なんだからもちろんさっき押した判子は残ったまま

当たり前だよね?

ということで、一回判子を押す(描画する)度に画用紙を新しいのにする(描かれているものを消す)
こうしないと、動いてるようには見えない

というわけで、一回描画されるごとに画面を消すことにします
こう変えてみて


for(int i=0;i<1000;i++)
{
DrawGraph(i,i,gazou,FALSE);
ClsDrawScreen();
}


ClsDrawScreen();は、画面に描かれているものを全て消去する関数

352 :1 :2009/02/02(月) 00:00:56.69 (p)ID:BzbiK2Ln0(66)
すっごいチカチカしたと思う
これはバグでもなんでもない
モニターは大体1秒間に60回更新されているんだけど、プログラムはもっと速い
その差でチラつきがおこる(んだっけ?)だったような気がするけど、詳しいことは自信ないから調べて

これを解消するために「裏画面」というものを作り出した
表の画用紙を高速で書き換えまくるとチカチカしちゃうなら、まず画用紙の裏に書いて画面の更新に合わせて裏と表を交換すれば
チラつかないとかいう技術だったと思うんだけどやっぱり自信ないから詳しくはググって


こんな感じで、基本的にゲームの描画は「裏画面」にすることになる
ここまでおk?

分からないことは聞いてね


350 :以下、名無しにかわりましてVIPがお送りします :2009/02/01(日) 23:59:37.06 ID:60wnm7la0
追いついた><

先生!デバッグすると↓がでます・・・どげんかしたらよかばい?

DXライブラリは24ビットカラーモードに対応していません
プログラム '[2144] kaiware.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。


>>350
モニターの設定が24bitなんだと思う
一番上の
ChangeWindowMode(TRUE);
のい下にこれ追加して

SetGraphMode(600,400,16);

こんな感じ
ChangeWindowMode(TRUE);
SetGraphMode(600,400,16);
これで駄目ならモニターの設定変えて



358 :1 :2009/02/02(月) 00:10:31.19 (p)ID:BzbiK2Ln0(66)
という訳で描画先を裏画面か表画面か指定する関数
SetDrawScreen();
で裏画面にする
SetDrawScreen( DX_SCREEN_BACK);
これをif( DxLib_Init() == -1) return -1;の下に入れてください


#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
SetGraphMode(600,400,16);
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1) return -1;
SetDrawScreen( DX_SCREEN_BACK);

int gazou;
gazou=LoadGraph("Date\\BgImage.png");


for(int i=0;i<1000;i++)
{
DrawGraph(i,i,gazou,FALSE);
ClsDrawScreen();
}


WaitKey();
DxLib_End();
return 0;
}


363 :1 :2009/02/02(月) 00:15:57.32 (p)ID:BzbiK2Ln0(66)
ちなみに、俺が話してる関数は全部DXライブラリのホームページにある関数リファレンスにあるからそこを見てみるといいと思う

>>358実行しても何も表示されないけど
それは、描画先を裏画面にしたから

これは裏画面の内容を表画面にコピーする関数がどこにも無いから
この関数をどこかに入れなきゃいけないんだけどどこに入れればいいか分かるかな?


365 :350 :sage :2009/02/02(月) 00:16:40.95 (p)ID:Q3jvGjNE0(3)
>>356
先生アリガトウ。
モニタを16Bitにしたらウィンドウでました!!感動ww

PCが古いのがいけなかったのでしょうか・・・

>>365
>カラービット数とは使用する画面の色の数です。
>ビットとは要は2進数の1桁の事で、16ビットで65536色 (Trueカラー)24ビットで1677万色(フルカラー)表現でき ます。ビット数が上がれば上がるほど表現できる色の数は増えますが その分必要なデータの量も増えますので注意してください。
>このライブラリで指定できるカラービット数は16ビットと32ビットの 二つになります。

対応してないんだと思う


371 :1 :2009/02/02(月) 00:21:33.83 (p)ID:BzbiK2Ln0(66)
裏画面と表画面を交換する関数は
ScreenFlip();

です、ちょっと自分で考えて入れてみてください
動作がとてもとても重くなります


370 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 00:21:23.39 (p)ID:KTv0myG90(7)
.cと.cppの違いってなんぞ?

>>370
.cはC言語のソース
.cppはC++のソース

C++はC言語を丸々含むから.cppはC言語で使っても問題ない


372 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 00:21:48.00 ID:5uN62glrO
DXライブラリとかRPGツクールじゃん

>>372
「ツール使う奴とかだせえwww」とか言い出しそうな発言ですけど、ツールが最適なら迷わずツールを使うほうが賢いですよ
くだらないプライドで難しいの使っても仕方ないし


384 :1 :2009/02/02(月) 00:29:26.15 (p)ID:BzbiK2Ln0(66)
やってる人居るのか知らないけどどんどん進みます
さっきのScreenFlip();ですが
入れる位置はここ


for(int i=0;i<1000;i++)
{
DrawGraph(i,i,gazou,FALSE);
ScreenFlip();
ClsDrawScreen();
}


裏画面に絵を描画
表画面に反映
裏画面を消す

消すのと描くのの順番間違うと表示されないので気をつけてね
画像の表示が出来るようになったから次は音を鳴らそうと思う



390 :1 :2009/02/02(月) 00:34:42.84 (p)ID:BzbiK2Ln0(66)
音楽もさっき言ったとおり、
その場で読み込んで鳴らす方法と
一回変数にハンドルを読み込んでからそれを指定して鳴らす方法

の二つがあります

普通は後者を使います

Dateフォルダの中にある効果音を鳴らしてみましょう
というわけでソース変更


#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1) return -1;
SetDrawScreen( DX_SCREEN_BACK );

int oto;
oto=LoadSoundMem("Date\\Max.wav");
PlaySoundMem(oto,DX_PLAYTYPE_BACK);


WaitKey();
DxLib_End();
return 0;
}


394 :1 :2009/02/02(月) 00:37:01.50 (p)ID:BzbiK2Ln0(66)
そういえば触れてなかったけど、データを指定する時は
("フォルダ\データ.vip")
じゃなくて
("フォルダ\\データ.vip")
と、「\」を2つつける必要があるから気をつけてね
間違いやすいしエラー起こらないし


399 :1 :2009/02/02(月) 00:42:44.78 (p)ID:BzbiK2Ln0(66)
音楽も鳴らせたし、画像も表示できたし
後はマウスで操作できれば完璧

というわけでここからゲームループに入ります

普通繰り返しの回数が決まってる時はforを使い不確定の時はwhileを使います
ゲームは、×ボタンが押されるか、「おしまい」が押されるか、何らかのキー(普通はESC)が押されるまでずっと処理を繰り返すので
while(終了する条件)
{
//ゲームの処理
}
こうかきます
これをゲームループといいます
分からない人はなんかそんなもんだと思って


409 :1 :2009/02/02(月) 00:50:30.75 (p)ID:BzbiK2Ln0(66)
ソフト本体の動作に加えて
OSから送られてくる強制終了命令(一番多いのはAlt+F4が押された時かな)があるんだけど
その命令を受け取ったらすぐにそのソフトを終了しなきゃいけないという決まりがある
本当なら色々複雑なんだけど、DXライブラリでは
ProcessMessage()
この関数を書いておけばそっちの処理は全部やってくれる
この関数が呼び出されたときに、正常なら「0」異常ならそれ以外が返される
異常の時は速やかにソフトを終了しなきゃいけないから
while( ProcessMessage()==0 )
{}

こうすれば、0以外のときは勝手にゲームループを抜けてくれる
この関数は大体、処理一周に一回は呼び出すことが推奨されているためこういう書き方をする人が多い(と思う)
ここらへんは分かると思うけど質問あったらいつでも言ってね


405 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 00:47:29.92 ID:WhbPn3b30
Dxlib.hってゲームを作る為のヘッダーファイル?

>>405
まあそんな感じ
ライブラリだけど


415 :1 :2009/02/02(月) 00:57:59.11 (p)ID:BzbiK2Ln0(66)
基本的なプログラムの流れとしては多分これが王道になると思う


色々基礎処理

画像とか読み込んでハンドル取得


=======================ここを
ゲームループ//エラーか、終了条件起こらない限り

色々描画したり、動かしたり
画面を入れ替える
裏画面を消す

=======================行ったり来たり

DXライブラリの終了処理

おしまい


421 :1 :2009/02/02(月) 01:02:15.89 (p)ID:BzbiK2Ln0(66)
他の人がどうしてるかは分からないけど
ここにソースを書いていくととてもごちゃごちゃになるので


=======================ここを
ゲームループ//エラーか、終了条件起こらない限り

色々描画したり、動かしたり←これ
画面を入れ替える
裏画面を消す

=======================行ったり来たり

この、ゲーム本体の動作を「game()」関数を作ってそっちに飛ばして行うことにしてる
というわけでvoid game(){}を、WinMainの下に作ります
上のほうで関数の宣言しとくのも忘れずに


428 :1 :2009/02/02(月) 01:04:46.46 (p)ID:BzbiK2Ln0(66)
結局こういうソースに
#include "DxLib.h"

void game();

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1) return -1;
SetDrawScreen( DX_SCREEN_BACK );


while(ProcessMessage()==0)
{
game();
ScreenFlip();
ClsDrawScreen();
}


DxLib_End();
return 0;
}

void game()
{

}


432 :1 :2009/02/02(月) 01:11:05.57 (p)ID:BzbiK2Ln0(66)
一応ここまでのソースあげときますね
432cde2346287346435896475925.png

436 :1 :2009/02/02(月) 01:13:27.26 ID:BzbiK2Ln0(66)
ここから先は上半分はしばらく関係ありません
畳んじゃってゲーム本体の処理をガリガリ書いて行きましょう

436cde218746287345385.png

444 :1 :2009/02/02(月) 01:21:32.53 (p)ID:BzbiK2Ln0(66)
あ、忘れてた・・・・・
game()関数だけじゃなくて
LoadDate()関数も作ります
これは、一回だけ読み込まれればいいのでゲームループより手前、初期設定の段階で読み込んでおきます

444cde1462387632453787.png


こんな感じになります
変数の有効範囲の説明はしたほうがいいのかな?


457 :1 :2009/02/02(月) 01:32:19.29 (p)ID:BzbiK2Ln0(66)
もう、やってる人居ないだろコレwwww

まあ、明日のdat組のために頑張るか・・・・

このゲームで使うのは画像17枚、音楽1曲です
読み込みはすでにやったとおり
LoadGraph()

LoadSoundMem()
関数で行うんですが
int gazou1,gazou2,gazou3,.....

gazou1=LoadGraph("gazo-");
gazou2=......

こんな感じで画像の数だけ変数を宣言してたらめんどくさくて仕方ありません
10枚程度ならいいですが100枚くらいになるともう死にたくなります

for文を使うのが一般的(だと思う)なんですが


458 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 01:33:19.34 (p)ID:KTv0myG90(7)
地味にやってます

465 :1 :2009/02/02(月) 01:38:51.17 (p)ID:BzbiK2Ln0(66)
ということでこういう風に読み込みます

#define GAZOUMAX 10

===============
int gazou[GAZOUMAX]

for(int i=0;i {
gazou[i]=LoadGraph("gazou%d.png",i);
}

これで一気に読み込めるんですが
データの方でも通し番号振って名前を統一しとかなきゃいけないです

あ、ちなみに上の例は動きません
%dのあたりがダメです
for(int i=0;i {
char buf[1024];
sprintf_s(buf,"date\\%03d.png",i);
if((gazou[i] = LoadGraph(buf)) == -1)
}

こうすれば動きますが、多分分かりにくいので今回は一つずつ読み込むことにします


470 :1 :2009/02/02(月) 01:45:54.38 (p)ID:BzbiK2Ln0(66)
ちなみにGAZOUMAXをマクロにしているのは後で画像の枚数を変更するのが容易なためです

よく分からない人は普通に数字入れてもいいと思いますがあまり推奨しません

というわけで、実際に17枚の画像を読み込んで見ます
画像を保存する変数はg_image[USEIMAGE]にしましょう(gazouでは流石にダサイので)
一応言っときますけど配列ですよ

画像ハンドルは、他の関数からも呼び出されるためグローバルにする必要があります
意味が分からない人は「変数の有効範囲」でググって下さい

LoadGraph関数は画像を読み込んで失敗した時(主に、読み込もうとしたファイルが無い時)に-1を返します
もし、画像が無い時はゲームが成り立たないので「画像がありません」と表示してゲームを終了するようにしましょう

ここら辺で少し話が難しくなってくるので分からない人は質問どんどんどうぞ


478 :1 :2009/02/02(月) 01:53:52.77 (p)ID:BzbiK2Ln0(66)
眠くなってきた・・・・・

478cde1234625783648937896375.png

根性で全部読み込みます
ちゃんとグローバル変数として
g_image[USEIMAGE]

g_sound[USESOUND]
を宣言して置いてください


もし、エラーが起きたらその場でreturn -1を返し
画像が無いことが判明します

画像が無かったら「画像がありません」と表示するメッセージボックスを表示するようにしましょう


489 :1 :2009/02/02(月) 02:02:31.38 (p)ID:BzbiK2Ln0(66)
一応ここまでのソース
http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/489cde2398567373489673.txt

492 :1 :2009/02/02(月) 02:08:31.33 (p)ID:BzbiK2Ln0(66)
次にメッセージボックス作ります

関数的にはこんな感じです
MessageBox( NULL , "本文" , "タイトル" , TYPE);
NULLはもう固定だと思ってください、いつでもNULLです
最後のTYPEは色々あります

気になる人はググってみてください
今回使うのは「MB_OK」OKしか押せないうざいアレです

画像を読み込んだ時にエラーが起こった場合その旨を表示するようにします


//初期設定
SetDrawScreen( DX_SCREEN_BACK ); //裏画面に指定
if(LoadDate()== -1){
MessageBox( NULL , "データが破損しています" , "読み込みエラー" ,MB_OK);
return-1; //データの読み込み
}


これで大丈夫です
ためしに一つ画像の名前を変更してみてください強制終了するようになります


494 :1 :2009/02/02(月) 02:11:33.83 (p)ID:BzbiK2Ln0(66)
そうか変更するたびにソース貼ればいいのか
http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/494cde273865348573986534783745.txt


もし、メッセージボックスで文字がどうちゃらのエラーがでたら>>232の設定が上手く出来てませんのでもう一回やってみてください

495 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 02:15:16.38 (p)ID:eNlO6QE40(2)
今更だがフォントが雄々しくてワロタ
フォントの名前kwsk

>>495
HG創英太楷書体

500 :1 :2009/02/02(月) 02:20:13.04 (p)ID:BzbiK2Ln0(66)
ウィンドウのサイズを変更します
200*200です

ウィンドウのサイズを変更する関数は
SetGraphMode( int SizeX , int SizeY , int ColorBitNum ) ;
これですね

ついでに解像度も指定しなければならないのですが32bitだと重いので16bitにします


SetGraphMode( 200 , 200 , 16 );

この関数はDxLib_Init()より先に呼ぶことの出来る関数です
DxLib_Init()より後に呼ぶと、一瞬大きいウィンドウが表示されてサイズが指定のものに変わります
あまりかっこよくないのでj基本的にはDxLib_Init()より前に呼びましょう


501 :1 :2009/02/02(月) 02:21:39.13 (p)ID:BzbiK2Ln0(66)
貼り忘れた
501cde28395634737529835793.png


ヌルポは
NULLポインターの略だとC始めるまで知らなかった


502 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 02:24:18.00 (p)ID:eNlO6QE40(2)
NullPointerExceptionの略だよ。確かJavaの例外

504 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 02:25:14.23 (p)ID:9vRJweN/0(2)
なんで返しがガッなの?

506 :1 :2009/02/02(月) 02:26:55.17 (p)ID:BzbiK2Ln0(66)
>>504
NULLPOINTERのことヌルポって略そうぜ
みたいなスレを糞スレと勘違いした2が
ガッってAA貼ったことが由来

だったと思う


503 :1 :2009/02/02(月) 02:25:04.52 (p)ID:BzbiK2Ln0(66)
ここまでやってやっと下準備完了です
ここからゲーム本体の処理が始まります

普通にやればここまでで30分くらいですね


それでは、ゲーム本体の処理に移って行きたいと思います


509 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 02:29:23.06 (p)ID:nwAvaKR80(5)
30分でやれることを5時間…

510 :1 :2009/02/02(月) 02:31:03.77 (p)ID:BzbiK2Ln0(66)
>>509
説明しながらだったからね
もともとこのゲーム製作に3時間もかかってないし

ゲーム編どうしよう
もう見てる人居ないしここからラーメンスレにして落としちゃう?
最後までやる?


511 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 02:31:35.77 (p)ID:3pCce1JR0(2)
可能なら是非最後までお願いします

524 :1 :2009/02/02(月) 02:44:13.40 (p)ID:BzbiK2Ln0(66)
それではゲーム処理に入ります
画面遷移なんかを考えるんですが、
普通は
タイトル画面があって
LoadとかSaveとかあって・・・
みたいにお複雑なんですが、思いっきり簡略化します

起動したら「種まき画面」が表示され、
種をまくとかいわれが成長していく「成長画面」が表示され、
すべてのかいわれが最高まで育つとその旨を表示して「種まき画面」に戻るようにします

簡単に画像にしてみるとイメージが形になるのでオススメです

524cde2354673458736598275894.png

528 :1 :2009/02/02(月) 02:58:22.85 (p)ID:BzbiK2Ln0(66)
絵にしてみると色々必要なもの、付け加えたほうがいいものが見えてきます

・今までの収穫個数
・ゲーム内での日付
・簡単な操作説明


これくらいは無いとな・・・・
という「最低条件」と

これあったらもっと面白くなるだろうな
という「向上条件」があります

※基本的にこのゲームは「最低条件」のみで成り立っています

と、言うわけで色々考えた結果こういう風に決定しました


528cde289363874t6dfughaiu34876.png

531 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 03:08:11.13 (p)ID:v41qZ3eVO(2)
言語習得までの課程って何かある?こういう風に覚えろみたいな

>>531
入門書はもう覚えるしかない、そこから先は必要に迫られてどんどん上達していくから
一番重要なのは「やる気」だと思う


532 :1 :2009/02/02(月) 03:09:37.87 (p)ID:BzbiK2Ln0(66)
背景は一緒なので

game()
{

背景表示

switch(今のパート)
{
case 種まき
操作説明を表示
クリックされるまで待つ
break;
case 成長
自動的にかいわれを成長させる
成長度に合わせて対応する画像を表示
break;
case やったね
全部育った旨を表示
クリックを待つ
break;
}

}

おおざっぱに分けてこんなかんじでしょうか
switchで背景から先だけ分岐します
あと当たり前ですが日本語でもいいので「手順」を説明できなければ作ることは出来ません
ちゃんと、自分の頭の中にすべての画面のイメージと動作があるか確認しましょう




539 :1 :2009/02/02(月) 03:22:32.93 (p)ID:BzbiK2Ln0(66)
>>532は具体的にはこんな感じです
//現在のステージ
#define TOP 0
#define SUKUSKU 1
#define END 2
=======================
//ゲーム処理
void game()
{
static int nowstage=0;

DrawGraph(0,0,g_image[0],FALSE);

switch(nowstage)
{
case TOP:
top();
break;
case SUKUSUKU:
sukusuku();
break;
case END:
end();
break;
}

}

わざわざマクロにした理由は見やすくするためです012でもいいですけど、できるだけわかりやすく欠くことを心がけるとあとで自分が得します

550 :1 :2009/02/02(月) 03:34:09.66 (p)ID:BzbiK2Ln0(66)
「static int」というのは静的領域に変数を保存する宣言です
簡単に言うとブロックの終端に来ても破棄されない変数です

変数の有効範囲は{}(ブロック)間だけなので、普通のint では一周するたびにデータが消えてしまいます
今のステージのデータは保持しておきたいので消えないようにする工夫が必要です
グローバル変数として宣言すればいいんですが、グローバル変数を増やすとあまりよくないらしいのでstatic intを使っています
よく分からない時はググってみましょう

switchでの分岐でそれぞれの中身を書いてもいいのですが、ごちゃごちゃしてしまうのでそれぞれ、top()、sukusku()、end()関数を呼び出すようにしました
これなら分担作業などもしやすいですよね

どこまで細かく関数に分けるかは意見が分かれそうですが、分けられそうなところはある程度分けてしまったほうが楽ですよ


と、いうことでgame()関数はこれで終わりで、それぞれのtop()、sukusku()、end()関数に中身を書いて行きましょう
ここまでのソース


http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/550cde2389578476398235h.txt

552 :1 :2009/02/02(月) 03:48:37.22 (p)ID:BzbiK2Ln0(66)
まず
top()
から行きましょう

表示
・操作説明
・2週目以降は、収穫数

動作
・クリックを待つ
・右クリックされたら終了するか確認するメッセージボックスを表示する
・左クリックされたらゲーム開始、stageをSUKUSUKUに移行する


==================================
操作説明はシンプルに
「左クリックで種をまく」
「右クリックで終了」

とだけ書くようにしました
文字を表示するのは前出のDrawString関数
使い方は・・・もういいですよね?
位置は
20.40
20.60
にしました
二週目以降は
20.80の位置に「今までの収穫数000個」と表示するようにする


554 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 03:50:53.32 (p)ID:yVlVaZiC0(3)
買い割れのグラをチップにしたらいいのに

555 :1 :2009/02/02(月) 03:52:53.10 (p)ID:BzbiK2Ln0(66)
>>554
作ってから気がついたんだ
色々突っ込みたいだろうけどこらえてくれ「はじめての」レベルだったらこのくらいが丁度いい・・・はず


559 :1 :2009/02/02(月) 04:16:57.78 (p)ID:BzbiK2Ln0(66)
クリックされたかどうか調べるのはGetMouseInput関数です
使い方はリファレンスをよんでください
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N8

やってみればわかるんですが、困ったことに、ウィンドウの範囲外でクリックしても反応してしまいます
単純に「マウスがクリックされたかどうか」だけを調べる関数なので当たり前といえば当たり前ですが

インターネットを見るとか他の作業であってもクリックするたびに勝手にかいわれがピコンピコン言ってたらとても迷惑なのでちゃんと
「かいわれのウィンドウがアクティブ」尚且つ「カイワレのウィンドウの中にマウスがある時」だけマウスが反応するようにしないといけません
前者は初期設定が非アクティブで処理停止なので特に設定する必要はありません
後者は、マウスの位置を調べる関数GetMousePoint()関数を使います
使い方はこれ
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N6

マウスの位置を取得するGetMousePoint関数ですが、これは全体から考えた座標ではなく、ウィンドウの左端からの座標が取得できます
559-1cde2957459873985739.png

つまり、解像度とか難しいこと考えず単純にマウスが(0.0)〜(200.200)の時だけ反応するようにすればOKです

ここら辺は数学的思考なのでちょっと難しいかも
と、言うわけでこの二つの条件が成立してる時
if(クリックされて && マウスが範囲内)
{種をまく!}

これで完璧です
クリックしたときなにも無く、静かに成長画面に移行するのは寂しいのでクリックしたら「種をまきました!」とメッセージボックスが表示されるようにしましょう


ちょっと難しいですが頑張ってみてください
ここまでのソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/559-2aidfjbar3487658394difgja.txt

562 :1 :2009/02/02(月) 04:26:22.27 (p)ID:BzbiK2Ln0(66)
ここで設計ミスが発覚します
さっき偉そうにstatic intがどうのとか言った「nowstage」ですが、caseから先を関数で分岐した(有効範囲外)ので値を弄れません
top等を全てboolに治して、フラグが立ったら(次のステージに移行する条件が揃ったら)trueを返すようにしましょう

というわけで
こうなりました

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/562cde2398742398535683.txt

564 :1 :2009/02/02(月) 04:38:22.28 (p)ID:BzbiK2Ln0(66)
「右クリックが押されたら終了確認」
という動作は、すべての画面で共通なのでgame()関数に直接書けば一個書くだけですむので楽です


MessageBoxのTYPEの一つであるMB_YESNOを使います
もし「はい」が押されたらID_YESが帰ってくるのでその時はゲームを終了します。

ゲームを終了するか否かの判定のためにvoid game()関数もbool game()関数に変更しましょう
もし、trueだったらゲームループをbreak;するようにWinMainの方も作り変えます


http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/564cde235739863389gfdajhsdr89567.txt


これでtop()関数はできました

567 :1 :2009/02/02(月) 05:01:13.90 (p)ID:BzbiK2Ln0(66)
sukusuku()関数を作る前に必要な変数を考えて見ます

それぞれのかいわれの成長度
g_kaiware[4]
それぞれのかいわれがMAXまで育ったかどうかのフラグ
g_kaiware_f[4]
日付
g_day
収穫数
g_all

こんなもんでしょうか

かいわれの成長度は0〜150にします
成長用の画像が15枚あるため
10増えるたびに画像を更新します

for(int i=0;i<4 {
if(g_kaiware[i] <= 0 && g_kaiware[i] > 10)
Drawgraph(.......

といった具合でfor文で作れます
やってみてください

ソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/567cde23874625eraoehae.txt

571 :1 :2009/02/02(月) 05:17:53.89 (p)ID:BzbiK2Ln0(66)
あと必要なものを考えます

処理
・一定時間ごとにかいわれの成長度を上げる
・一定時間ごとに日付を増やす

表示
・かいわれの成長度に応じた画像の表示←済み
・今の日付

とりあえず仮置きとして
かいわれの成長度はとりあえず、1ずつ増えることにして、日付の方は10周で1日増えるようにします

※バランスなんかは後でいくらでも調整できるので作ってしまうことが大切です

ここまでのソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/571cde2398527598eigh3485.txt

572 :1 :2009/02/02(月) 05:28:09.05 (p)ID:BzbiK2Ln0(66)
これで、sukusku()関数はほぼ完成です
全てのg_kaiware_fがtrueならば全部成長済みということでend()関数に移行します
グローバル変数は使い終わったら初期化しておかないと次の週で値が入りっぱなしになってしまうので初期化を忘れずに

ここまでのソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/572cde23895739683eoihae564.txt

573 :1 :2009/02/02(月) 05:31:00.13 (p)ID:BzbiK2Ln0(66)
end()関数でやるのは
「立派なカイワレとなりましたとさ!」の表示と、クリック待ちだけなのでコピペですぐ出来ます
文字の位置なんかは適当にあわせてみてください


DrawString(10,40,"立派なカイワレと",0x000000);
DrawString(30,60,"なりましたとさ!",0x000000);
//クリック処理
int xbuf,ybuf;
GetMousePoint(&xbuf,&ybuf);
if((GetMouseInput() & MOUSE_INPUT_LEFT))
{
if((xbuf >= 0 && xbuf <=200) && (ybuf >= 0 && ybuf <=200))
{
MessageBox(NULL,"収穫しました","お疲れ様です",MB_OK);
return true;
}
}


こんなとこでしょうか。

これで一週目は終わりです。
後は、二週目以降に表示する「収穫数」と、「セーブデータ」を考えましょう


576 :1 :2009/02/02(月) 05:38:07.43 (p)ID:BzbiK2Ln0(66)
ソース忘れてました
http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/576cde239874653487fghue34573.txt



そしてセーブデータなんですが、保存する必要のある変数が何かを考えます
このゲームの場合

・収穫数 g_all
・日付 g_day

この二つだけで充分かと思います

テキストファイルの読み取りも、画像や音楽と同じようにすることが出来ます

int save;
char buf[1024];

save=FileRead_open(ファイル名);

FileRead_gets(buf,1023,save);

これでbufの中にテキストから読み込んだデータを格納することが出来ます
しかしこの状態ではもちろん使えませんので工夫が必要です
(各関数はリファレンスで詳しい使い方を見てください)


578 :1 :2009/02/02(月) 05:45:27.27 (p)ID:BzbiK2Ln0(66)
bufの中には「文字列」としてのセーブデータが入っています
(セーブデータは基本的にバイナリとテキストに分かれますが、今回は分かりやすいテキストを用います)

テキストにセーブデータを保存する時は

============
値A,値B,値C,.....
============

といった感じで「,」カンマで区切って保存するのが王道です

===============
セーブ1のなんとか変数・・・A
セーブ1のなんとか変数・・・B
セーブ1のなんとか変数・・・C
===============

こんな風に保存することはまずありません
シンプルに値だけをズラズラッと並べています
※そもそも誰かに見られるわけじゃないのでわかりやすくする必要はありません

このゲームだと保存する値は二つだけなので

○○,△△

これがセーブデータになります


580 :1 :2009/02/02(月) 05:54:01.84 (p)ID:BzbiK2Ln0(66)
それでは具体的に「どうすればセーブデータを作ったり中から値を取り出したり出来るのか」を説明して行きます
例えば、収穫数58個、日付32日
でセーブしたとします

これを
58,32
と保存します

この値をゲームに読み込むためには
まずさっき言ったとおり、テキストファイルを読み込みchar型の配列(今回はbuf)にその内容を格納します
その次に
sscanf_s()関数を使います
scanf()はキーボードから読み込む関数ですが、sscanf_s関数は文字列を、変数に分割収納できる便利な関数です

使い方は

sscanf_s(buf,"%d,%d",&A,&B);

こんな感じです
bufの中身を分割して保存します

もし、bufから4つ読み込みたい時は
sscanf_s(buf,"%d,%d,%d,%d",&A,&B,&C,&D);
増やせばいいだけです


583 :1 :2009/02/02(月) 06:04:19.34 (p)ID:BzbiK2Ln0(66)
これを使って

g_allとg_dayにセーブデータから値を取り出します

int save;
char buf[1024];

save=FileRead_open(ファイル名);

FileRead_gets(buf,1023,save);

sscanf_s(buf,"%d,%d",&g_all,&g_day);

これでセーブデータを読み込んで値を格納することが出来ます

この処理は、画像なんかを読み込んだ時に一緒にやっちゃいましょう


586 :1 :2009/02/02(月) 06:40:56.48 (p)ID:BzbiK2Ln0(66)
あとはなんだ・・・・・

そうだ、肝心のセーブの法を作っていなかった

ゲームが終わるのは強制終了されたときか右クリックされたときなので
このゲームはオートセーブなので、そのどちらであっても保存される必要があります

具体的に言うと
ゲームループ抜けたすぐ後あたりにセーブのプログラムを書いておけばほぼ間違いなく値が保存されます

DXライブラリには(多分)セーブ用の関数がありませんのでC言語の関数を使います
使うのは
f_open();
fprintf();
f_close();

この3つの関数と

FILE

FILE構造体です。多分基礎知識として習ってると思いますが
FILE *fp;
fp=fopen("Date\\Save.vip","w");
fprintf_s(fp,"%d,%d",g_all,g_day);
fclose(fp);
これで保存できます
保存タイプ「w」にすれば、もしセーブデータが存在しない時は自動で作ってくれるので安心です

ここまでのソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/586cde283473498.txt


587 :1 :2009/02/02(月) 06:52:11.25 (p)ID:BzbiK2Ln0(66)
また言い忘れてたorz
>>586で使用しているファイル操作のための関数は全て
に入っているためincludeする必要があります

あとは、二週目以降から表示する「収穫数」を表示すれば完成ですかね

それでは、そこだけ説明して寝ます

二週目から=収穫数が1個以上
ということになりますので収穫数「g_all」を調べて != 0 の時だけ表示するようにすれば完璧です


コメントアウトしてありますが、過去のソースに既に含まれてますよね
ソースはこんな感じ
if(g_all != 0)DrawFormatString(20,80,0x000000,"今までの収穫数%03d個",g_all);


一応これで完成でしょうか
進むスピードや、成長速度なんかは自分でバランス調整してみてください
これで「最低限」のゲームは作れるようになったはずです

最終ソース

http://blog-imgs-32.fc2.com/a/f/o/afoafodayo/587cde2387563478563874.txt

589 :1 :2009/02/02(月) 07:02:11.52 (p)ID:BzbiK2Ln0(66)
今回教えたこと「画像表示」「音楽再生」「セーブ」「ロード」「文字の表示」
これだけで相当の数のゲームを作れると思います

キーボードからの操作などはやりませんでしたが、ここまで進めてきたならDXライブラリのリファレンスを調べられる
ようになってると思いますのでぜひ、調べてみてください

早速新しいゲームを作るも良し、かいわれをとことんカスタマイズしてみるもよし

どんどんゲーム製作に興じましょう

真っ黒い画面でHello Worldなんて表示してた時代よりは格段に「ゲーム」っぽいものが作れるようになったと思います
あとはあなたのアイデア次第なんだ

ちなみに、.exeファイルがどこにできるか分からない人(いるのか?)のために説明を
exeファイルはMyDocument\VisualStujio\Projects\kaiware\Debugの中にあります
ここからkaiware.exeってのをコピーしてすきな場所においてください
これをダブルクリックすればそこら辺にある普通のソフトと同じようにゲームが立ち上がります
あ・・・・ちゃんとDateフォルダもコピーするのを忘れないで下さいね!

あと、完成したら上の方のタブをDebugではなくRelease構成にしてビルドすると実行速度が速い「正式版」が出来ます
Debugでできたexeは、遅い「開発用」なので公開するときはReleaseでビルドしたものを配ってね!

アイコンが味気ないから変えたいって人はアイコン変換でググルと幸せになれるかも


590 :1 :2009/02/02(月) 07:15:30.89 (p)ID:BzbiK2Ln0(66)
質問とか、あまりにも初歩過ぎてどこにも書いてないようなことは経験者に聞くのが一番だから、一通り調べてから聞いてみるといいかも
調べもせず聞くのはタブーだよ!

DXライブライをある程度つかったら簡単なWin32APIに手を出すといいかも
Windowのサイズを変更する方法とか
Windowのサイズを取得する関数とか
今アクティブなウィンドウのハンドルを取得できる関数とか

色々やりたいことが出来るようになると思う


基礎知識を身につけたら後は「発想」が重要だから
これでまな板と包丁は用意できたけど
素材とレシピがなきゃ作れないからね


途中で言葉遣い変わったり、後半半分寝ててかなりおおざっぱになったりしたのは許して欲しい

ゲーム製作をするひとが少しでも増えればいいんだけどね・・・・・


言いたいことはこんなもんだと思う
長々と付き合ってくれた人はありがとう!
愛してる!


591 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 07:23:11.55 (p)ID:8eXvdTAk0(2)

ちょっと勉強しないことしたいことが多すぎて大変だけど、いつかがんばってみたいな

595 :以下、名無しにかわりましてVIPがお送りします :sage :2009/02/02(月) 07:30:12.99 (p)ID:JisBgZ+00(5)
>>1おつ
なにをどこから始めたらいいのかさっぱりわからんかったが、>>1のおかげで始めることができそうだ

598 :以下、名無しにかわりましてVIPがお送りします :2009/02/02(月) 07:56:09.98 ID:SX0zXjyHO
とりあえず>>1乙


コソーリリンク

スパムうざいのでhttpは禁止対象にしたお
リンクはりたいときはttpという形式で頼むお
コメント
この記事へのコメント
米19517
長すぎて断念した
2009/02/02(月) 16:38 | URL |   #-[ 編集]
米19518
アフィン変換が理解できなくて挫折した
2009/02/02(月) 17:00 | URL |   #-[ 編集]
米19519
わけわかめ
2009/02/02(月) 17:03 | URL | アフォな名無し #-[ 編集]
米19520
エンディアンだとか文字コードだとか
実際のゲームではその辺りも意識しないと
自分の環境以外では正常に動かなくなるからな
正直ゲーム作るよりこっちの方がメンドイ
色んな規格出しやがって・・・統一しろよ
2009/02/02(月) 17:06 | URL | アフォな名無し #-[ 編集]
米19521
1がまるで学校の先生や
2009/02/02(月) 17:18 | URL | アフォな名無し #-[ 編集]
米19522
さっぱりピーマン
2009/02/02(月) 17:21 | URL | アフォな名無し #-[ 編集]
米19523
ゲーム作るのは大変なんだなぁ・・・
2009/02/02(月) 17:22 | URL | アフォな名無し #-[ 編集]
米19524
javaのがよくね?
2009/02/02(月) 17:24 | URL | アフォな名無し #-[ 編集]
米19525
javaで出来てるゲームって何かあるのか?w
2009/02/02(月) 17:45 | URL | アフォな名無し #-[ 編集]
米19526
携帯ゲーはjavaが多い
ちなみにC#はC++よりjava近い感じ
2009/02/02(月) 17:56 | URL | アフォな名無し #-[ 編集]
米19527
一歩踏み出せそうだ
2009/02/02(月) 17:57 | URL | VIPPERな名無しさん #-[ 編集]
米19528
米19525
javaはいろいろあるだろw
2009/02/02(月) 18:03 | URL | アフォな名無し #-[ 編集]
米19529
ノベルゲーやらエロゲーならつくれるおwwwwwwww
2009/02/02(月) 18:10 | URL |   #-[ 編集]
米19531
>米19529
吉里吉里乙

こういう企画は面白いけど
プログラムの難解さをまざまざと見せつけられるから
プログラマーっていなくなるんですよ(´・ω・`)ショボーン
2009/02/02(月) 18:48 | URL | アフォな名無し #-[ 編集]
米19532
コンソールプログラミングからウィンドウプログラミングへの移行は大変だけど、イベント駆動からリアルタイムへの移行がさらに大変なんだよな…
2009/02/02(月) 18:49 | URL | アフォな名無し #-[ 編集]
米19533
javascriptでおk
2009/02/02(月) 18:52 | URL | アフォな名無し #-[ 編集]
米19534
米19525
"java ゲーム"でぐぐったら上から二つ目に普通に出たぞ

Javaでゲーム作りますが何か?
ttp://javagame.skr.jp/index.php?FrontPage
2009/02/02(月) 18:56 | URL | アフォな名無し #-[ 編集]
米19535
プログラマーにならなくて良かったということがわかった
2009/02/02(月) 19:04 | URL | アフォな名無し #-[ 編集]
米19536
入門書読みなおしてもういっかい来るわ
2009/02/02(月) 19:27 | URL | アフォな名無し #-[ 編集]
米19537
理論上は無限大
物理的に無限地獄☆
2009/02/02(月) 19:32 | URL | アフォな名無し #-[ 編集]
米19538
素直にゲーム作成ツール使えば良いのでは
2009/02/02(月) 19:34 | URL | アフォな名無し #-[ 編集]
米19539
プログラミングは優秀な奴と一般人のレベルの差がありすぎる
まじでやめたくなる
2009/02/02(月) 19:40 | URL | アフォな名無し #-[ 編集]
米19540
ぶっちゃけ慣れれば簡単。
ただし、慣れるまでには根気が必要だし、新しい知識も勉強しないといけないから、プログラマは楽じゃない。
2009/02/02(月) 19:46 | URL | 1 #-[ 編集]
米19541
いきなりC++は敷居高いよ、敷地買うところから初めて耕してから畑全部にカイワレ植えるような物だから。
HSPお勧め、今のはAPIも簡単に使えるようになったし使ってるとだんだんポインタ欲しー、とか構造体欲しーってなってくる。
C++始めるのは年齢と相談してそれからでも遅くない。
2009/02/02(月) 20:02 | URL | VIPPERな名無しさん #-[ 編集]
米19542
ポインタは解説しても理解されない可能性があるからわかるが
ライブラリぐらい解説してやれよ・・・

と思ってソースみたらこれ専門出たばかりの奴が
何を思ったか教えたがってるだけの気がした。
2009/02/02(月) 20:02 | URL | アフォな名無し #-[ 編集]
米19543
※19537
の言うとおり。「理論上」は
可能なんだよね……。

信長の野望もどきを作ったけど
CUP織田家が一年で日本を統一したw
余りに酷いバランス。
2009/02/02(月) 20:14 | URL |    #-[ 編集]
米19544
javaは簡単なゲームはできるけど凝ってるゲームになってくるとC++とかのが向いてるんじゃなかったか?
2009/02/02(月) 20:18 | URL | アフォな名無し #-[ 編集]
米19545
C⇒C++って勉強したけど、結局学校卒業するときにはJavaに落ち着いてた・・・
2009/02/02(月) 20:29 | URL | アフォな名無し #-[ 編集]
米19546
※19543
ワラタwwww
ちょっとそれやらせろ
2009/02/02(月) 20:31 | URL | アフォな名無し #-[ 編集]
米19547
携帯じゃCやC++のネイティブコードの実行許したらウィルスがボンボン作られて大変なことになるからJavaしか選択肢ないんだよ。
CやC++の方が凝ってるゲーム「向いてる」と言われるのは、CやC++で作った方が低性能でも早いから。
スパコンならJavaでも余裕で3Dゲームできるだろう。

あとポインタわかんないとか言うヤツ、必死こいて勉強しろ。
ポインタ使うと使わないでは自由度が違う。
2009/02/02(月) 20:54 | URL | アフォな名無し #-[ 編集]
米19548
RPGとか作りたいならフローチャート作成は必須。何も考えずに作り始めると泣きを見る
2009/02/02(月) 21:04 | URL | アフォな名無し #-[ 編集]
米19549
こんなライブラリをもっと早く知ってたら、
クソゲーを作っては痛いホームページで配布してたに違いないwww

ゲームつくりたくてC言語勉強したのに、printfでは点も打てなかったw
2009/02/02(月) 21:06 | URL | ボブ #-[ 編集]
米19550
どんな言語であっても所詮プログラムって分岐をループの塊なわけで
いくら表現能力があがってもそこはまったく変わってないんだわ。
社会人になってからでもいくらでも慣れられるし
それほど面接で重要視しないんだわ。
それよりも三次元計算ばっちりとか物理は完璧とかいう人の方が大事
そっちは後からはなかなか身につかないからね。
とゲーム作ってる会社の技術系の面接担当がいってみる。
2009/02/02(月) 21:14 | URL | アフォな名無し #-[ 編集]
米19551
今社会人で、2次関数からやり直してるけど、だめですか。
2009/02/02(月) 21:32 | URL | アフォな名無し #-[ 編集]
米19553
>米19524
実際、仕事としてゲームやプログラム作りたいならC出来ないと話にならん。
趣味ならjavaでもいいと思うけどさ。
2009/02/02(月) 21:34 | URL |   #-[ 編集]
米19554
プログラムなんて楽器と同じで一日、二日で理解出きるような代物じゃない。
実際、大学の4年間勉強しても2Dゲームすら作れない奴は全く作れない。
才能というか、理解力と応用力、想像力が必要だね。
2009/02/02(月) 21:41 | URL |   #-[ 編集]
米19555
ツクール使え
>>1はコンシューマの経験なさそうだな。

ゲーム作って食っていきたいとか考えるなら最低でもC,C++できなきゃな。
趣味ならjavaとかHSPとかやったらいい。
2009/02/02(月) 22:09 | URL |   #-[ 編集]
米19556
>>248でいきなり死んだ
2009/02/02(月) 22:17 | URL | アフォな名無し #-[ 編集]
米19557
※19556
蘇生を試みてみる。

-----
#include "DxLib.h"
//形式的なもん。深く考えないでそのまま毎回いれとけ。 

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
//始まりはかならずこれ。深く考えないでそのまま毎回いれとけ。 

ChangeWindowMode(TRUE);
//ウィンドウモードで起動するならコレ必須。ただし DxLib_Init() 使う前に使え。決まりなんでしょうがない

if( DxLib_Init() == -1) return -1;
//DXライブラリ(汎用に使う奴、形式的にいれとけっていったアレ)がちゃんと動いてないなら今後もうごかんから終了

WaitKey();
//なんでもいいからキー入力待ち。キー入力がないとずっとここに居続ける

DxLib_End();
//ライブラリ終了。プログラム終了させるときは形式的に必ずいれろ。必ずだ。

return 0;
}
-----
つまりやってることはキー待ちだけ
2009/02/02(月) 22:34 | URL | アフォな名無し #-[ 編集]
米19558
C言語勉強しようと思うけど、何から覚えりゃいいのかすらわからん
2009/02/02(月) 22:44 | URL | アフォな名無し #-[ 編集]
米19559
サンプルとかソース公開してるやつとか解読、改造してるとそのうち慣れる
そうしたら勉強して作りたいもの作ればいいよ
2009/02/02(月) 22:54 | URL | アフォな名無し #-[ 編集]
米19560
SEGA本を読むといいと思うよ
本当によくできてる
2009/02/02(月) 22:56 | URL | アフォな名無し #-[ 編集]
米19561
「ゲーム作ろうと思ってゲーム作成本読んだけど
実はシーゲンゴが必要なんだってよオイ
って人向けに」という意味だったらわからんでもない。
2009/02/02(月) 23:10 | URL | アフォな名無し #-[ 編集]
米19563
企画の話だと思ったのに
2009/02/02(月) 23:25 | URL | アフォな名無し #-[ 編集]
米19565
※19558
普通に入門書通りに覚えていけばいいんじゃないの?
何をやりたいのか知らんけど
2009/02/02(月) 23:46 | URL | アフォな名無し #-[ 編集]
米19566
いきなりWidiwosアプリかw
コンソールで○×からはじめろよ。
これならテキストだけでゲームが作れる。
2009/02/02(月) 23:48 | URL | アフォな名無し #-[ 編集]
米19567
それは「C言語の勉強」に含まれてるレベルじゃね?
少なくともそのぐらいまではできてないと話にならないだろ
2009/02/03(火) 00:03 | URL | アフォな名無し #-[ 編集]
米19568
○×ゲーム作って
リプレイ機能つけて
そこで終わった。
2009/02/03(火) 00:17 | URL | アフォな名無し #-[ 編集]
米19569
C#しか使えません><
C++難しいです><
2009/02/03(火) 00:47 | URL | アフォな名無し #-[ 編集]
米19570
米19563
確かに企画の話が聞きたい
プログラミングも面白そうだがイミフ
2009/02/03(火) 00:53 | URL | アフォな名無し #-[ 編集]
米19571
※19550
schemeは?haskelは?

と意地悪を言って見る。
ゲーム屋さんの事情は知らんけど、社会人にポインタまで教えてられんことないですか?
ウチは最初っから知ってる奴と知識が無くてもどうにかできる奴しか残らん。
2009/02/03(火) 01:02 | URL | 名無しさん@お腹いっぱい。 #-[ 編集]
米19572
Cは面倒
・文字列が扱いにくい
・メモリの確保と解放を忘れる
・わかってねぇやつは全部スタックで組みやがる
・ちょっと知ると全部newし出す
・もう少し知ると全部shared_ptrにして大量のオブジェクトを扱い出す
・参照とポインタとコンストを使い分けた引数と返値を理解してないと酷い速度になる

この辺を全部かってにやってくれるjavaは楽だ。
ただ覚えればCの方が断然融通が利いて何より早いんだよな。
融通効く分遊べるし。
2009/02/03(火) 01:19 | URL | VIPPERな名無しさん #CofySn7Q[ 編集]
米19573
※19571
ゲームプログラミングに限定するとっていわないとだめだったかも?
ただLISP系は最近Luaがごく一部ででてきたのでその意地悪は意外とそれほどの意地悪でもないのかもね。
うちの仕事ではお目にかからないわけだが。

ちなみにうちの場合は最初から知ってる奴はそのままつかう。
知識が少ない奴はデバッガを経て育てるという流れになります。
少なくとも中途の知識なしはプログラマにはなれません。
2009/02/03(火) 01:24 | URL | アフォな名無し #-[ 編集]
米19575
俺の学校もこんな風にC言語を教えてくれれば俺も挫折しなかったろうに・・・・

大半の学校って基礎だけしか教えてくれないんだよな・・・
2009/02/03(火) 01:48 | URL | アフォな名無し #-[ 編集]
米19576
いいスレだけどVIPでやるべき事ではないな
2009/02/03(火) 01:50 | URL | アフォな名無し #-[ 編集]
米19577
実は、VIPでは定期的にプログラミングスレが立つ。
ピンからキリまで。
2009/02/03(火) 01:56 | URL | VIPPERな名無しさん #-[ 編集]
米19579
最初の感覚を知る程度ならHSPでいいが後々役に立たない
2009/02/03(火) 02:19 | URL | アフォな名無し #-[ 編集]
米19580
ゲーム業界は、新人でも当たり前のようにプログラムは組めるからな。
2009/02/03(火) 02:23 | URL | アフォな名無し #-[ 編集]
米19581
俺もC途中でなげちゃったなー

もっかい入門書最初からがんばってみよっと
2009/02/03(火) 02:38 | URL | アフォな名無し #h0D/NfaY[ 編集]
米19582
むずかしいところだよな。
ソースを打ち込めっていわれても最初はどれが何をしているかとか、引数なんてもうさっぱりだったしな。

最初はVBAとかで、視覚的にわかりやすいもんからでいいと思うぜ。
Cは基本ではあるけど今となっちゃ敷居が高いよなぁ。
2009/02/03(火) 03:56 | URL | アフォな名無し #-[ 編集]
米19583
おいwww
最終ソースがすでに間違ってんぞwww
2009/02/03(火) 05:45 | URL | 奥ゆかしい名無しさん #-[ 編集]
米19584
top関数の中身が間違ってる
2週目以降のは今までの収穫数を表示させるから
if(収穫数の変数 !=0)DrawFormatstring(x,y,Cr,"今までの収穫数%d個",収穫数の変数)
としないといけない

最終ソースは最初に収穫数の変数をg_allとしているのに
top関数の中身がD_Sとなってる
だからここをg_allにすればきちんと動く

>>1も疲れてたんだろうなぁ
>>1乙!!
2009/02/03(火) 05:58 | URL | 奥ゆかしい名無しさん #-[ 編集]
米19585
あ、あとリリースするときは
プロパティのリリースで
左項目「全般」
右の「文字セット」を「マルチバイト文字を・・・」に変更

ってやつやらないとできないね
2009/02/03(火) 07:13 | URL | 奥ゆかしい名無しさん #-[ 編集]
米19586
やっぱC言語敷居が高いよなあ
特に一から作るとなると読めても書けない人が多いから
資格関連なんか擬似コード読めればいいからプログラムなんか書けなくても取れるしな
ソフ開持ってるけどプログラム組めって言われるとマジ困るわ
2009/02/03(火) 07:50 | URL | アフォな名無し #-[ 編集]
米19587
今度ヒマな時にベーマガ感覚で試してみるか・・・
2009/02/03(火) 10:27 | URL | アフォな名無し #-[ 編集]
米19589
>19584
すんません完全に寝ぼけてました


絶賛インフル中で暇なんで今日か明日その2立てるつもりです
管理人さんまとめありがとう!
2009/02/03(火) 11:03 | URL | このスレの1 #-[ 編集]
米19590
VerがかわってGDI全般が使えなくなってたときには泣いた。
2009/02/03(火) 11:12 | URL |    #-[ 編集]
米19591
"大学で4年勉強しても出来ない奴は出来ない" ってコメ、それは懸命にやっていないか何事においても効率が悪いだけだろ…。
毎日触ってれば猫でも覚えるわ
2009/02/03(火) 11:37 | URL |   #-[ 編集]
米19592
>米19589
もしかして>>1?
俺、米19584だけど、C言語勉強したけどゲーム作れないぞコラって人だった
猫でもわかる→C入門→独習C
って3冊やっても「結局Cが分かったけど名にすんの?」って感じで止まってたけど、
このスレでなんとなくやること分かったよ!!
初めてDOS窓以外で動くプログラム作ったから、難しくてこのスレのプログラム作るのに4時間くらいかかって、エラー直すのに2時間くらいかかったけど楽しかったよ!
ぜひその2もがんばってくれ!!
次はリアルタイムでスレみたいなぁ・・・
2009/02/03(火) 11:44 | URL | 米19584 #-[ 編集]
米19593
データ入れるフォルダが
dateフォルダっておかしくね?
dataじゃね?
2009/02/03(火) 11:57 | URL | アフォな名無し #-[ 編集]
米19594
米19589
スレたてたら教えてくれお
afoafodayoアットyahoo.co.jp
2009/02/03(火) 12:30 | URL | ぴろゆき@管理人 #47hHQTQs[ 編集]
米19595
アセンブリ言語(主にZ80系)とCとPerlの経験があるロートルだけど、
いちばん好きなのはHSPだったりする俺。

HSPの言語仕様はあまり美しくないけど、思ったことを実現するのが手っ取り早い。
Cだとウィンドウ用意したりとかそういう前準備が面倒なんだよね。

>>米19579
言語を指定された時のことを考えたら役に立たないかもしれないけど、
とりあえず言語はなんでもいいからアプリを作る、っていう要求なら大丈夫だと思う。
業務用の社内アプリをHSPで作ってる人達もいるしね。

あ、もし就職の時に役立たないって意味なら同意。
プログラマ募集で「HSPだけ使えます」じゃダメだわな。
2009/02/03(火) 12:33 | URL | アフォな名無し #-[ 編集]
米19596
ttp://ameblo.jp/70rock/theme-10010357845.html

C言語勉強したけどゲーム作れない
2009/02/03(火) 12:47 | URL | あ #-[ 編集]
米19597
>>19595
そんなあなたにAS3
javaライクで表示系が楽チンでwebと相性抜群だからしょうもないもの作る時は楽しいYO
2009/02/03(火) 14:18 | URL | アフォな名無し #-[ 編集]
米19598
たしかにゲーム製作はゲーム自体の見た目の華やかさと比べると地味な作業の連発だからなあ…
でもまあやる気さえあれば独学で余裕だと思うよマジな話。
難しい変数や関数で心折れてたらそこで終わるバカの壁
分らなくとも前に進め
2009/02/03(火) 15:47 | URL | アフォな名無し #-[ 編集]
米19600
ポインタのポインタがミソ
2009/02/03(火) 16:16 | URL | アフォな名無し #-[ 編集]
米19601
Cを覚えれば何でも出来るってわけではないのが混乱どころだよな
コンソール卒業して、まず窓作るかって調べたらWin32API? なんぞそれ
描画どうするんだ?って調べたらDirectX なんぞそれ
DirectXの関連書籍みるとサンプルがC++ ちょwおま、なんz(ry
2009/02/03(火) 19:30 | URL | アフォな名無し #-[ 編集]
米19602
こんな豪勢なプログラミング環境が無料で手に入るなんていい時代になったもんだ…。Cできないから意味ないけど。
2009/02/03(火) 19:46 | URL | アフォな名無し #-[ 編集]
米19604
DXライブラリってこんなんだったのか。
こうも簡単なライブラリがあるなら確かに誰でも作れるようになるかも名。
あと>>1みたいな視点で解説したものは案外少なかったと思う。
Cのコンソール→Windowsアプリの移行は結構苦労したからこういう解説(暇つぶし?)があったら助かっただろうなー
2009/02/03(火) 22:42 | URL | アフォな名無し #-[ 編集]
米19605
やっぱりこのスレコピペブログに載ったんだな…
朝まで頑張ってた>>1乙でした!
2009/02/03(火) 22:59 | URL | アフォな名無し #-[ 編集]
米19606
本当にコンソールからのステップアップはレベルが高いね
高い書籍や英語のリファレンスを読みまくらないとならないから
日本語のみで学べるなんてMSDNぐらいしか思い浮かばないよ
2009/02/04(水) 00:53 | URL | アフォな名無し #-[ 編集]
米19607
Cって文法みたいなものは30個ぐらいしかないけどな。
2009/02/04(水) 01:35 | URL | アフォな名無し #-[ 編集]
米19608
よくわからん。
でも文法を覚えれば出来なくはなさそうなのはわかった。
2009/02/04(水) 14:09 | URL | アフォな名無し #-[ 編集]
米19609
英語の文法なんて5つぐらいしかないけどな。
2009/02/04(水) 17:34 | URL | 名無しさん@お腹いっぱい。 #-[ 編集]
米19611
win32コンソールアプリケーションでプロジェクト作るとエラーにならない?
2009/02/04(水) 22:56 | URL | アフォな名無し #mQop/nM.[ 編集]
米19613
豆乳システムは簡単でいいよ
2009/02/05(木) 01:53 | URL | アフォな名無し #-[ 編集]
米19614
Cの限界はじゃんけんプログラムだけど途中で挫折した。
2009/02/05(木) 02:42 | URL | アフォな名無し #mQop/nM.[ 編集]
米19616
米19573
自称ゲーム業界の人事から
今後の日本のゲーム業界の将来を悟った
これじゃあ確かに海外に技術面で劣るわ
2009/02/05(木) 10:55 | URL | アフォな名無し #-[ 編集]
米19617
日本語でおK
2009/02/05(木) 15:32 | URL | アフォな名無し #-[ 編集]
米19620
数学出来ないけどプログラムできる奴はしぶとく生き残っちゃうんだよね。
使えないのに。
数学出来るけどプログラムできない奴は自主的に辞めざるを得ないんだよね。
自分で仕事できないの自覚できるから。
だから数学出来る奴を採る方がいい。
数学出来てプログラム適正ある奴は良いゲームプログラマになる。
数学出来てプログラム適正ない奴は勝手に辞める。
2009/02/05(木) 21:39 | URL | VIPPERな名無しさん #-[ 編集]
米19623
Cとかjavaって、文字通り「言語」だよな。
俺たちが英語を勉強したみたいに気合入れてやらないと、なかなか。
2009/02/06(金) 22:46 | URL | アフォな名無し #-[ 編集]
米19624
説明は理解出るけど、実装の段階になるとちんぷんかんぷん・・・
おかげで必修のプログラミングを二年連続で落として大学辞めました^^
2009/02/06(金) 23:43 | URL | アフォな名無し #-[ 編集]
米19626
やっぱ敷居高いよね…
でもプログラムはある程度できると便利だよなぁと痛感する

大学でプログラムの訳わかめっぷりに絶望して中退してデザイナーになったのにActionScriptに苦しめられる俺
AS3とか既にスクリプト言語じゃねえだろ!!マジで涙目だ
2009/02/07(土) 03:11 | URL | アフォな名無し #-[ 編集]
米19627
これは自分でやるより人を雇ったほうがいいな
2009/02/07(土) 12:07 | URL | アフォな名無し #-[ 編集]
米19628
管理人さんスレをまとめてくれてありがとう。
Cは勉強した事があったが(数値計算オンリー)、ぜんぜん違うんだな。
2009/02/07(土) 15:51 | URL | 佐藤裕也 #-[ 編集]
米19631
米19620
数学ができてプログラムができない奴なんて存在しない。
それは計算ができるだけだ。
2009/02/08(日) 08:18 | URL | アフォな名無し #-[ 編集]
米19632
ちゃんと計算機を理解してれば、
コンソールからGUIなんてのもそんなに苦労しないんだよね。
GUI用語とイベントドリブンに悩むぐらいで。

逆に理解してないのにGUIできちゃった奴は面倒。
センスの塊みたいなのならいいけど、
わかってないことすらわかってない。
2009/02/08(日) 09:49 | URL | アフォな名無し #-[ 編集]
米19633
※19631
いや、文章を書ける人が誰でも小説を書けるわけではないでしょ。

数学屋のセンスとプログラマのセンスは等しくはないし、
コンピュータの知識も必要だから、十分ありえる話。
2009/02/08(日) 09:53 | URL | アフォな名無し #-[ 編集]
米19635
自分のレベルにあっててためになった
>>1乙
2009/02/08(日) 19:29 | URL | アフォな名無し #-[ 編集]
米19637
HSPでかいわれ育成ゲーム作った
2009/02/08(日) 22:00 | URL | アフォな名無し #-[ 編集]
コメントを投稿する
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://afoafodayo.blog84.fc2.com/tb.php/549-3eea4b81
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック