Kazukiの同人3DRPG制作【第一話】
■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki
2010/09/10(金) 06:35:05ID:8vGP1TSQttp://www.kazuki-sendo.com/game/
発展途上中の素人Kazukiを中心として、
DirectX9による3DRPG制作に挑戦します。
開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
2ch当スレを本スレとし、
ニコニコ動画、zoome、mixi、の3コミュメンバー合同で同人3DRPG制作に挑戦します。
※本格的にゲーム制作に協力していただけるメインメンバー様へは、
ゲーム完成後に平等に利益分配されます。
(詳細は公式サイトのメンバーページ)
0624名前は開発中のものです。
2010/09/17(金) 17:01:02ID:AmJCQRbx1.コンパイルを実行
2.ソースコードの全文は、コード領域に運ばれる
3.引数やローカル変数は、スタック領域に運ばれる
4.グローバル変数は、静的領域に運ばれる
5.コンパイラがコンピュータが読める内容に翻訳
6.リンカで、ソースファイル、ヘッダファイル、リソースファイルを実行ファイルにする
7.CPUが動く(すでに動いてるが)
8.CPUが実行ファイルを読みにいく
9.CPUが高速回転して処理
10.最後に実行結果をディプレイに表示する
0625名前は開発中のものです。
2010/09/17(金) 17:01:05ID:7qBxF+Skdefineを定数だと思ってるんだから仕方ない
0626名前は開発中のものです。
2010/09/17(金) 17:01:37ID:sYa04YS8どこから突っ込めばいいのやらorz
0627名前は開発中のものです。
2010/09/17(金) 17:03:49ID:7qBxF+Sk最低限6と7分けて欲しいな
0628名前は開発中のものです。
2010/09/17(金) 17:04:48ID:cJXoUaD/>9.CPUが高速回転して処理
うちのPC古いから手回し式だわ
0629名前は開発中のものです。
2010/09/17(金) 17:05:09ID:2BpkBEPJconst static int AAA = 10;
0630名前は開発中のものです。
2010/09/17(金) 17:06:15ID:sYa04YS8| ゴロゴロゴロゴロ
|r'⌒X⌒X⌒X⌒X⌒X⌒ヽ ⊂゙⌒゙、∩
|ヽ__乂__乂__乂__乂__乂__ノ ⊂(。Д。) ←CPU
0631名前は開発中のものです。
2010/09/17(金) 17:06:19ID:AmJCQRbxなんだw
ただの釣だったのかよww
説明できないなら、
適当なこと言うなよな・・。
0632名前は開発中のものです。
2010/09/17(金) 17:07:30ID:7qBxF+Skじゃー説明して正しかったらお前が無知だと認めるか?
ここでそう思ってるのはお前だけだぞ
0633名前は開発中のものです。
2010/09/17(金) 17:09:19ID:AmJCQRbxうん。
6と7の間に、
メモリのシステム領域を使用してますね。
システム領域は、
システム自体が利用する領域のことです。
0634名前は開発中のものです。
2010/09/17(金) 17:10:01ID:sYa04YS8また変な解釈する…
日本語読めないの?在日?
0635名前は開発中のものです。
2010/09/17(金) 17:10:02ID:b92kLMfZ教えてあげるから>>632にごめんなさいしてね
分かりやすい例を示すと、
#define hoge 100
int hige=hoge;
ってプログラムなら、コンパイルするときに、
int hige=100;
に翻訳されてからコンパイルされる。
つまり、defineは、君のいうプログラム実行の流れの2の前に実行されるんだよ
0636名前は開発中のものです。
2010/09/17(金) 17:12:01ID:7qBxF+Skそういう意味じゃねーw
>>624の突っ込みどころは
コンパイルから実行までをつなげて書いてるところだよ
基本的にコンパイルといわれる作業は実行ファイルを作るところまで
その後それを実行することで結果を確認するんだよ
0637名前は開発中のものです。
2010/09/17(金) 17:18:49ID:cJXoUaD/↑これなんかは#defineと定数が全く無関係なのを説明するのに良い例だと思うんだよね。
0638名前は開発中のものです。
2010/09/17(金) 17:20:19ID:sYa04YS8千堂和樹がマクロ関数を理解できるわけないじゃん
0639名前は開発中のものです。
2010/09/17(金) 17:24:00ID:6VFHKBQ30640名前は開発中のものです。
2010/09/17(金) 17:24:34ID:cJXoUaD/じゃあどうすりゃいいってんだ!
0641名前は開発中のものです。
2010/09/17(金) 17:24:36ID:sYa04YS8ようこそバカ隔離スレへ
0642名前は開発中のものです。
2010/09/17(金) 17:24:49ID:AmJCQRbxパソコンは電圧を変化して動いてるから、
どんなにパソコンが激しく動いても、
携帯電話のバイブレータ機能みたいに、
ブブブーンとは動かないよw
パソコンの基本は、1と0の数値です。
全て1と0で動いています。
スイッチオンで1、スイッチオフで0の状態。
電極には、+極と-極があって、
それを操作することでスイッチをオンしたりオフにしたりする。
ちなみに、この1と0の単位がビットであり、
2進数の一桁の単位です。
0643名前は開発中のものです。
2010/09/17(金) 17:25:29ID:5/0uQ8SZ>>1はゲームする度にコンパイルするんだから問題無い
0644名前は開発中のものです。
2010/09/17(金) 17:28:19ID:sYa04YS8それがわかれば苦労しないけどね…。
救いようないよ
0645名前は開発中のものです。
2010/09/17(金) 17:28:28ID:7qBxF+Skそれは驚きだ
必須環境:VC2010以上
ですねわかります
0646名前は開発中のものです。
2010/09/17(金) 17:30:42ID:2BpkBEPJ0647名前は開発中のものです。
2010/09/17(金) 17:31:04ID:AmJCQRbx5までしか数えられないと思うかもしれないけど、
工夫すれば、5以上も数えることが出来ます。
人差し指だけを立てて
他の指を閉じた状態を6にするとか。
そういう風に考えれば解りやすいかな?
0648名前は開発中のものです。
2010/09/17(金) 17:31:51ID:sYa04YS8その基本情報すら不十分という
0649名前は開発中のものです。
2010/09/17(金) 17:32:05ID:cJXoUaD/そうなのか。
また一つ勉強になりました。
ありがとうございます。
でも俺が目を離した隙に動いてる可能性もあるので一応机に縛っておきます。
0650名前は開発中のものです。
2010/09/17(金) 17:35:59ID:cJXoUaD/それはともかくこれで定数と#defineの違いはわかってもらえたかな?
0651名前は開発中のものです。
2010/09/17(金) 17:39:04ID:AmJCQRbx>基本的にコンパイルといわれる作業は実行ファイルを作るところまで
悪いけどそれは間違い。
全体を指してコンパイルと読んだりしますが、
実際は、翻訳するところだけがコンパイルです。
そんな基本的なことも解ってなかったのですか?
マジですか??
0652名前は開発中のものです。
2010/09/17(金) 17:43:22ID:7qBxF+Sk狭義のコンパイルの意味は知ってるよ
「基本的にコンパイルといわれる作業は」って言ってるだろ?
gccとかmakeとかVCでビルドとかするときはそれらすべてまとめて「コンパイルする」って呼ぶことが多いだろ?
そういう意味だよ
0653名前は開発中のものです。
2010/09/17(金) 17:43:25ID:AmJCQRbxそんなことどうだってw
こんなコンピュータの構造なんて知らなくても、
ゲームプログラムは組めるし・・。
0654名前は開発中のものです。
2010/09/17(金) 17:44:20ID:cJXoUaD/まあコンパイル後にリンクやらがあってこそのビルドなわけだからそういう意味じゃ確かに言うとおりだわな。
しかしそんなに鬼の首を取ったように喜ばんでもええわw
0655名前は開発中のものです。
2010/09/17(金) 17:44:20ID:b92kLMfZってか理解できなかったのかしら
0656名前は開発中のものです。
2010/09/17(金) 17:45:52ID:7qBxF+Skんでプログラムに必要な知識である
定数とdefineの違いについてはわかったのかい?
0657名前は開発中のものです。
2010/09/17(金) 17:45:56ID:cJXoUaD/そうだよ本題は定数と#defineの話。
あれでだいたいわかった?
0658名前は開発中のものです。
2010/09/17(金) 17:46:05ID:sYa04YS80659名前は開発中のものです。
2010/09/17(金) 17:46:07ID:AmJCQRbxでは、次は、列挙体と列挙型の解説を書くことにしよう。
ここまでくれば、あともう少しですね(^^
0660658
2010/09/17(金) 17:47:16ID:sYa04YS80661名前は開発中のものです。
2010/09/17(金) 17:47:44ID:AmJCQRbx定数を使うんだけど、
少しだけ意味が違うんだな。(^^
0662名前は開発中のものです。
2010/09/17(金) 17:48:57ID:sYa04YS8>>1を止められるのは>>1のかーちゃんだけか
0663名前は開発中のものです。
2010/09/17(金) 17:51:28ID:cJXoUaD/>では、次は、列挙体と列挙型の解説を書くことにしよう。
オイ!!
その前にだよ!その前に定数と#define!
こっちを先に片づけてから先に行こうよ
0664名前は開発中のものです。
2010/09/17(金) 17:51:29ID:b92kLMfZこれがメモリの仕組みとか言ってた人間の発言である
0665名前は開発中のものです。
2010/09/17(金) 18:00:38ID:AmJCQRbx俺はもう十分解説してるでしょ。
定数を使う時は、
マクロ名を付けて
そのデータをメモリに格納されると。
解説できていないのは、
上の発言者の方です。
解説できないところを見ると、
「やっぱ釣だったのか・・」と俺は理解できた。
俺の質問は、
#define A 10
こんな風に定数を宣言した時、
「10という数値」はどこに運ばれるのか?ということです。
俺は「メモリに運ばれる」とはっきり言っている。
論点はここ。
0666名前は開発中のものです。
2010/09/17(金) 18:02:28ID:2BpkBEPJ前にメモリの仕組みとかドヤ顔で言ってたじゃねーか
0667名前は開発中のものです。
2010/09/17(金) 18:03:01ID:sYa04YS80668名前は開発中のものです。
2010/09/17(金) 18:10:29ID:AmJCQRbx何言ってやがるw
プログラムを実行しているのだから、
変数だろうか定数だろうか、
そこに書かれているデータをまずどこかに運ばないと動かないでしょ。
そんなの常識でしょ?
俺はそんな基本的なことを言っている。
#define A 10
こんな風に書いたら、実際には「10」は関数内で呼び出されて使うんだけど、
俺が言っているのは、呼び出す前の状態です。
10 → □
こんな感じに□←の入れ物に「10」が入る。
この、□の「場所」を言ってるの。
だ か ら メ モ リ で し ょ ?
と俺は言ってる。
間違ったことは言ってないと思うのだが。
0669名前は開発中のものです。
2010/09/17(金) 18:10:48ID:7qBxF+Skついでだから今日の書き込み分全部訂正してやるよ
俺も完全に理解してるわけじゃないから間違ってたらすまんな
適当に補足してくれ<ALL
でもお前よりはきっちり理解してるってのは明白だがな
0670名前は開発中のものです。
2010/09/17(金) 18:15:15ID:sYa04YS8#defineはプリプロセッサ命令なんだよ。
#define A 10
としたら、コンパイル前にプログラム中の A がすべて 10 に置き換えられる。
int A = 10;
とは意味がまったく違う
0671名前は開発中のものです。
2010/09/17(金) 18:17:01ID:7qBxF+Skほい
こっちのスレ汚すのもあれだから向こうに書いてきたよ
0672名前は開発中のものです。
2010/09/17(金) 18:17:28ID:b92kLMfZ入 れ 物 に は 入 れ ま せ ん
#define A 10
ってのは、「Aって書いてある部分をみんな10に書き換えてからコンパイルしてね〜」っていう
コンパイラ宛のメモ。
0673名前は開発中のものです。
2010/09/17(金) 18:20:39ID:AmJCQRbxほら見ろ。メモリを使ってるじゃないかよ。
プログラムは何もかもメモリに運ばれて動いているのだから、
その時に、「10も含めて」メモリに運ばれているじゃないか。
0674名前は開発中のものです。
2010/09/17(金) 18:20:50ID:cJXoUaD/>#define A 10
>こんな風に定数を宣言した時
早い話がこの文章がもう間違ってるわけだ
これはそもそも定数宣言じゃありません。
0675名前は開発中のものです。
2010/09/17(金) 18:23:12ID:AmJCQRbx>>673は>>671宛ての返事
0676名前は開発中のものです。
2010/09/17(金) 18:23:33ID:cJXoUaD/いや、そうとも限らんぞ。
例えばソースに
#define A 10
を定義しておきながら結局Aを一度も用いなかった場合。
この場合は「10がメモリに運ばれることは一度たりとも無い」
0677名前は開発中のものです。
2010/09/17(金) 18:26:01ID:+iJDRTKbC言語を勉強するのに使った参考書を、教えてはもらえないだろうか?
参考にさせてもらいたい。
0678名前は開発中のものです。
2010/09/17(金) 18:26:01ID:7qBxF+Skコード領域に格納されるのは自明だからあえて言及しないのが普通じゃないのか?
メモリに確保するって言うのは、コード領域以外の場所を使うってことだろ
あと俺が「しいて言うならコード領域」って回答したのわかって
「ほら見ろ」
とか言ってるんですか?
0679名前は開発中のものです。
2010/09/17(金) 18:26:45ID:b92kLMfZあえていうなら、コンパイル時のみはメモリを使う。
でも生成された実行ファイルはそれによってメモリを使うことはないのよ。
すでに書き換えられてるから
0680名前は開発中のものです。
2010/09/17(金) 18:27:56ID:b92kLMfZ0681名前は開発中のものです。
2010/09/17(金) 18:28:05ID:AmJCQRbxじゃあ、マクロって言えば満足?
ちょっとググってみたけど、
どこの定数の解説で
#define A 10
こんな感じで解説してるけどなぁ・・。
じゃあ、あれは全部間違った解説なのね?ww
ははwそんなバカなwww
だから釣だったんでしょ?(^^
0682名前は開発中のものです。
2010/09/17(金) 18:28:53ID:7qBxF+Sk>もちろん定数として使うことも出来るが
0683名前は開発中のものです。
2010/09/17(金) 18:31:06ID:b92kLMfZ「define=定数」ってことじゃなくて、
「define=マクロ機能」で、マクロ機能で定数を実装することもできる、ってこと
0684名前は開発中のものです。
2010/09/17(金) 18:32:12ID:AmJCQRbxこんな感じに書いた場合
定数Aは数値10を表す
マクロ名Aは数値10を表す
という表現をします。
定数名といったりマクロ名と言ったりするけで、
言い方を変えているだけで、
二つとも同じ意味。
「マクロ名」と呼ぶ方が正確だと思うが。。
0685名前は開発中のものです。
2010/09/17(金) 18:32:29ID:cJXoUaD/ちなみにプリプロセッサの話だけじゃなくてソース内部で宣言された変数でも宣言だけされてその後一度も使われてないような奴はコンパイラの最適化オプションによっては最適化時にはじかれて
変数として宣言されてるのにメモリには一切乗らない
ってこともあるわけだ
0686名前は開発中のものです。
2010/09/17(金) 18:32:59ID:+iJDRTKbむしろお前のレスが全て釣りであって欲しいんだが・・・。
とりあえず、ゲーム制作の基本であるC言語を勉強するのに使った参考書を教えてくれないかな?
参考にしたいから。
0687名前は開発中のものです。
2010/09/17(金) 18:46:34ID:AmJCQRbx変数と定数は似たような名前だが、
意味が全く違う。
変数は代入して使います。
なので、計算結果を入れて、変数の中身を変えることが出来る。
int a = 0;
a = 1 +1;
こんな感じに書けば、最初は0だったものが2に変わる。
だが、定数は代入するのではなく「置き換える」という意味。
なので、変数みたいに、計算結果によって中身を変えることは出来ない。
#define A 10
こう書けば、Aは10という意味。
#define B 10
#define C 10
#define A B + C
つまりこう書けば、Aは20ではなく、B+Cという意味。
俺はこのように理解してるけど、
間違ってないよね?
0688名前は開発中のものです。
2010/09/17(金) 18:46:35ID:sYa04YS8#defineは定数以外の事にも使う
つまり定数名≠マクロ名
あくまで#define A 10が定数に使えるってだけ
0689名前は開発中のものです。
2010/09/17(金) 18:48:31ID:cJXoUaD/ありがとう・・・これでようやく>>637の書き込みが生きてくる
0690名前は開発中のものです。
2010/09/17(金) 18:49:29ID:AmJCQRbx#define A = 10 + 10
つまり、このようにAを10にしているのに、
次の行で、Aを20に変えることは出来ない。
これが定数の基本です。
0691名前は開発中のものです。
2010/09/17(金) 18:50:12ID:7qBxF+Skじゃー定数なんて題付けずにdefineマクロの説明にしときゃよかったんだよ
このようにdefineマクロをつかって定数を表現できます
なら突っ込みは入らない
定数はマクロで文字列を格納する仕組みのことです
だと厳密には定数はconstって別の物があるんだから嘘を言うことになる
そしてdefineマクロにメモリは使わない
この2点において大嘘である
>>687
定数の意味は「数値が定まっていること」それだけだ
#define A B+C
は「定数」とは呼ばない
0692名前は開発中のものです。
2010/09/17(金) 18:50:58ID:ZoVqC4Uvプリプロセスとか変数の初期化とか演算子とか
ゲームもDirectXも関係ない低レベルな間違い多すぎ
>>273とか始めて二日の素人でも間違わないだろ
0693名前は開発中のものです。
2010/09/17(金) 18:55:23ID:AmJCQRbxこれは、プログラムを読みやすくするためにあります。
ゲームプログラムを組む場合は、
ソースの冒頭に定数をまとめて定義し、
あらゆるパラメーターを定義しておきます。
そうすることで、
定数の数値を変えるだけで主人公の動くスピードとか、
カメラ視点の動くスピードなどを設定を簡単に変えることが出来る。
0694名前は開発中のものです。
2010/09/17(金) 18:56:03ID:sYa04YS80695名前は開発中のものです。
2010/09/17(金) 18:57:59ID:WmNVwv6S0696名前は開発中のものです。
2010/09/17(金) 18:58:26ID:yG6pO8Eqそれ、定数の説明じゃなくて・・・
0697名前は開発中のものです。
2010/09/17(金) 19:00:31ID:sYa04YS8必要ないよ
馬鹿みたいな文章=>>1
0698名前は開発中のものです。
2010/09/17(金) 19:00:58ID:AmJCQRbx0699名前は開発中のものです。
2010/09/17(金) 19:01:45ID:AmJCQRbxそれが2chの面白いところである。
今朝も笑わせてもらったしw
0700名前は開発中のものです。
2010/09/17(金) 19:02:18ID:ZoVqC4Uv0701名前は開発中のものです。
2010/09/17(金) 19:03:47ID:7qBxF+Sk所謂「定数」とは別もんだ
まずは本来の意味の定数であるconstの使い方理解して来い
const int * p とint * const pの違いがわかるようになれば十分だろ
0702名前は開発中のものです。
2010/09/17(金) 19:06:52ID:/XYu5eLq0703名前は開発中のものです。
2010/09/17(金) 19:09:43ID:AmJCQRbxこんな感じにして、
constをint型のAを10で定義します。
と書いてもよかったけど、
ややこしいし、実際にはこんな使い方しないから、
#define A 10
こうしました。
ちなみに両方とも同じ意味です。
0704名前は開発中のものです。
2010/09/17(金) 19:12:18ID:ZoVqC4Uv(゚Д゚)…
0705名前は開発中のものです。
2010/09/17(金) 19:12:34ID:6hsb5TWl以前こうやって間違いに皆で突っ込んだ事あったんだよ
その時なんて言ったと思う?
「お前らが間違っている!」だぜ?
0706名前は開発中のものです。
2010/09/17(金) 19:35:40ID:AmJCQRbxごめんね。
じゃあ、そろそろいいかな?
メシ食ったらボチボチ列挙体と列挙型の解説を書きます。
気が付けば、
もう7つもC言語を解説してるね。
あと、もう少しだ。
ポインタの解説がややこしいけど、
もう少しでC言語の解説が全部終わります。
DirectX9の解説までもう少しなのでお楽しみに。
ではまた。
0707名前は開発中のものです。
2010/09/17(金) 19:37:28ID:sYa04YS8>380 名前:名前は開発中のものです。[sage] 投稿日:2010/09/15(水) 17:32:09 ID:CElqmS7j
>>>375
>ポインタぐらい知ってるよ。
>
>まあ、でも実際のところ、
>中身までは知らないけど。
>
>とりあえず、*をつけて宣言しておき、
>&を使ってデータを呼び出して使う。
>
>そんなことぐらい俺でも知ってるよw
0708名前は開発中のものです。
2010/09/17(金) 19:41:16ID:/XYu5eLqそして理解できないところを妄想で埋めてる
0709名前は開発中のものです。
2010/09/17(金) 19:43:01ID:AmJCQRbxポインタを使うとき、
メモリ内部で何が起きてるのかとか詳しく解説する予定だけど・・。
ちょっと、どうやって解説するのかに頭を悩ませている。
ポインタでポインタを使った時とか、
本当にややこしい。
0710名前は開発中のものです。
2010/09/17(金) 19:43:20ID:cJXoUaD/列挙体と列挙型は飛ばしてポインタ行かないか?
あとメシなら俺が代わりに食べてきてあげたよ。
0711名前は開発中のものです。
2010/09/17(金) 19:44:18ID:AmJCQRbx一瞬だけ引数ってのを使ってるんです。
でも、その引数はすぐにメモリから消えてしまいます。
ややこいいね
0712名前は開発中のものです。
2010/09/17(金) 19:46:09ID:sYa04YS80713名前は開発中のものです。
2010/09/17(金) 19:46:40ID:b92kLMfZ0714名前は開発中のものです。
2010/09/17(金) 19:46:51ID:AmJCQRbxだめだめ。
一足飛びは無理です。
ポインタを解説する前に、
引数も解説しておく必要があるし、
ポインタの解説が終わればC言語は終わりですね。
つまり、ポインタはファイナルステージです。
おまけにヘッダーファイルの作り方も解説して、
C言語編を終えます。
ちなみに、全部理解できれば、
プログラマーになれます。
0715名前は開発中のものです。
2010/09/17(金) 19:48:35ID:1LxXReiy自身の能力を少し越えさせて、コケたところを構えて突くの
実力ないのわかってんのに実力測るテストなんかやってもしょうが
ないんだよ。実力がないことを最小の手数で示さしてやるんだな。
今の例だと、全くメモリ食わないソースとバイナリ。
0716名前は開発中のものです。
2010/09/17(金) 19:49:24ID:+iJDRTKbうん、そうだね。割と間違ってるね^ ^;
ところで、C言語学ぶときに使った参考書教えてもらえない?
0717名前は開発中のものです。
2010/09/17(金) 19:50:47ID:sYa04YS8>ちなみに、全部理解できれば、
>プログラマーになれます。
そんなに甘いもんじゃないと思うよ^^;
0718名前は開発中のものです。
2010/09/17(金) 19:51:12ID:/XYu5eLqポインタの説明がすっげー楽しみになってきた
0719名前は開発中のものです。
2010/09/17(金) 19:52:41ID:cJXoUaD/本当ワクワクさせてくれるなぁw
0720名前は開発中のものです。
2010/09/17(金) 19:53:22ID:7qBxF+Sk俺の予想はグーグル先生
DirectXの書籍は読んでるらしいから
そこでわからない単語をググってるんじゃね?
今までの様子だと「読むための解釈」は出来そうな知識だからな
適当にサイト見て納得した気になってるだけなんだろ
「作るための解釈」には程遠い
0721名前は開発中のものです。
2010/09/17(金) 19:54:06ID:AmJCQRbxC言語の教科書はありません。
すべて独学です。
自分が知りたいことを一つ一つググって
あっちこちの解説をメモ帳にメモして、
それを自分の解釈でまとめて
解説を書いています。
なので、あの解説は俺のオリジナル。
0722名前は開発中のものです。
2010/09/17(金) 19:56:12ID:AmJCQRbxDirectXは、最初は本で勉強していたけど、
ある程度まで解ってきたら必要なくなってきて、
今は、DirectXヘルプを読んでいます。
0723名前は開発中のものです。
2010/09/17(金) 19:56:16ID:v0wG8cOvなるほど、それで間違いまくった解説になるわけね
■ このスレッドは過去ログ倉庫に格納されています