Kazukiの同人3DRPG制作【第二話】
■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki
2010/09/19(日) 04:46:22ID:6P+qj1XKttp://www.kazuki-sendo.com/game/
発展途上中の素人Kazukiを中心として
DirectX9による3DRPG制作に挑戦します。
開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
0151名前は開発中のものです。
2010/09/20(月) 04:19:52ID:TSB9RtrOそれは問題じゃないけど、条件式の値を変数に代入したいだけなのに、a = 0 として
からそれに条件式の値を加算するのは変
0152名前は開発中のものです。
2010/09/20(月) 04:22:17ID:TSB9RtrO取得できそうなもんだな
つか b が左辺値でもおかしくないはず。ランタイムで動的にマクロを書き換えるプログラムとか
書けそうだww
0153名前は開発中のものです。
2010/09/20(月) 04:28:21ID:JDqAfrLMあまりにもアレで気づかなかったわ
なんて無駄な事をしてるんだろう
しかも、文中で
a=a+(b>20)を
真偽値をaに代入
と説明してる
なんか、代入をやっぱり理解出来てない臭いがするぞ…
0154名前は開発中のものです。
2010/09/20(月) 04:28:35ID:ioukBWfmんで、出版社から訴えられてこいつ逮捕されるのいつ?
0155名前は開発中のものです。
2010/09/20(月) 07:03:15ID:v94mftR60156名前は開発中のものです。
2010/09/20(月) 07:04:34ID:o7Tp16jrってか見つけた人乙。
0157名前は開発中のものです。
2010/09/20(月) 08:33:24ID:0zuQeEep0158名前は開発中のものです。
2010/09/20(月) 09:14:15ID:v94mftR6#define KAZUKI printf("ばーか")
int main()
{
KAZUKI;
return 0;
}
こういうのもできるって次の解説に載せていいですよ^^
0159名前は開発中のものです。
2010/09/20(月) 09:21:19ID:xROXV7Sr問題ないだろう、サンプル丸ごとアップとかならまだしも
と言うか著作権著作権言っているのに画像アップローダーにある
アップテストとか書かれているエロゲ?の壁紙は一体なんなんだ
0160名前は開発中のものです。
2010/09/20(月) 11:26:58ID:bpUzygt40161名前は開発中のものです。
2010/09/20(月) 11:33:26ID:TSB9RtrO0162名前は開発中のものです。
2010/09/20(月) 11:42:20ID:gAkdYKQD0163名前は開発中のものです。
2010/09/20(月) 12:03:15ID:l6dkS8+9警告と取り下げ要求はいくよな
0164名前は開発中のものです。
2010/09/20(月) 13:44:13ID:Gz9vL13a解説は間違いだらけでも自身で書いてあるのに
あとヤクザ云々言い出すと恐喝になるぞ
0165名前は開発中のものです。
2010/09/20(月) 14:25:47ID:JDqAfrLM0166名前は開発中のものです。
2010/09/20(月) 14:35:00ID:Qg7Op/A5GJですぞ
0167名前は開発中のものです。
2010/09/20(月) 15:40:17ID:0PP3VNsKあの解説で一番伝えたかったのは、
ifとか比較演算子ではなくて
「値を返す」の部分です。
ifなんて実際のプログラムではほとんど使わないしね。(^^
あと、C言語の計算は「後ろから前にむかって」の前回の解説が、
ここで生きてくる。
なんだか、ちょっとずつプログラムっぽくなってきたでしょ?
少しずつ少しずつ解らないようにレベルを上げていくから、
気が付いた時には、初心者が中級者レベルに成長していると思う。
なんて、初心者に優しい解説だろうか(^^
0168名前は開発中のものです。
2010/09/20(月) 15:43:57ID:0PP3VNsKこんな基本的な知識を、
Direct3Dという高度な技術に置き換えて考えてみるのです。
Diect3Dのメソッドを呼び出すの部分は、
基本的な構造体で解説する。
難しい単語が並んでいるけど、
要はこういうことなんですよと。
で、各領域に格納した値を料理するわけだ。
使わない部分は、NULLを格納するだけです。
と言えばいい。
0169名前は開発中のものです。
2010/09/20(月) 15:47:38ID:JDqAfrLM一つでもプログラム組んだことある奴はこんなこと言えねぇ
0170名前は開発中のものです。
2010/09/20(月) 15:50:34ID:JDqAfrLMなんでb>20の真偽値をaに入れるのに
int a=0;
a=a+(b>20);
ってコードにしたの?
0171名前は開発中のものです。
2010/09/20(月) 15:51:03ID:0PP3VNsK基本の基本であるC言語に戻って考えれば、
誰でも理解できる。
理解できれば誰でも「プログラムが組める=ゲームが作れる」
なので、ゲームプログラミングは、
そんなに難しくない。
まだ解説していないけど、
そういったプログラムをループさせて実行させて、
「ある条件」に達したらそのループを抜けて、
別の関数に移り、
またそこでループを繰り返す。
ゲームプログラムの正体はループです。
何千、何万回とループを繰り返しているのが、
ゲームプログラミングです。
その中に、DirectXという高度な技術を使用しているだけ。
俺はそれが理解できた時に、「なるほど!!」と思ったね。(^^
そんな気分を味あわせてあげるよ。
0172名前は開発中のものです。
2010/09/20(月) 15:52:15ID:FLEKFsTh普通にif文のオンパレードな訳だが…
いや、使わなくても出来無い事は無いけどさ
0173名前は開発中のものです。
2010/09/20(月) 15:53:01ID:0PP3VNsKそんなの決まってるじゃないか。
前回のおさらいのために、
初期化を解説しているのです。
何度も出せば、そのうち自然と覚えてくれます。
あと、初期化しないと使えないし・・。
あ。そういうことを言ってるんじゃないのかな?
0174名前は開発中のものです。
2010/09/20(月) 15:53:03ID:FLEKFsThなるほど。ループだけならkazukiでも作れる
0175名前は開発中のものです。
2010/09/20(月) 15:53:51ID:FLEKFsTha=b>20;
0176名前は開発中のものです。
2010/09/20(月) 15:54:14ID:0PP3VNsKあっちの方が便利だしね。
実際のゲームプログラミングも、
条件分岐をよく使って組まれてあったし。
0177名前は開発中のものです。
2010/09/20(月) 15:56:15ID:FLEKFsThいや、ifが条件分岐な訳だが。
0178名前は開発中のものです。
2010/09/20(月) 15:56:50ID:JDqAfrLMint a=b>20;
じゃダメなの?
そもそも
int a=0;
が初期化のおさらいだとしても
a=a+(b>20);
にする説明にはならないわけだけど
0179名前は開発中のものです。
2010/09/20(月) 15:57:36ID:JDqAfrLM条件分岐の基本がifなんだけど
0180名前は開発中のものです。
2010/09/20(月) 15:58:48ID:sEiPhw38これでbを変数aと同じ扱いで説明するのは危険じゃね?
これだとbも変数のように見えてしまう。
そもそもコンパイル後にはbという領域は存在しないはずだし。
0181名前は開発中のものです。
2010/09/20(月) 15:59:05ID:TSB9RtrO馬鹿もここまで来ると芸と呼べるかもな
0182名前は開発中のものです。
2010/09/20(月) 16:01:50ID:0PP3VNsKその実行結果を表示させているので、
何をしないでもパソコンに負担がかかっています。
よし。
じゃあ、試しにスーファミのドラクエ3で、
敵を倒さずに、永遠に続けてごらんよ。
あるターンに達したら、
主人公は力尽きて死んでしまいます。
あと、ファミコンゲームを、
何時間もずっとプレイしててごらん。
ある地点になるとプログラムが起動しなくなるから。
0183名前は開発中のものです。
2010/09/20(月) 16:02:36ID:TSB9RtrO0184名前は開発中のものです。
2010/09/20(月) 16:03:00ID:FLEKFsTh>何時間もずっとプレイしててごらん。
>ある地点になるとプログラムが起動しなくなるから。
バグじゃねーか
0185名前は開発中のものです。
2010/09/20(月) 16:04:05ID:0PP3VNsKえ??
何を言ってるの?
a=a+(b>20);
↑
これだけだと使えないに決まってるじゃんw
int型を指定していないんだし。
ん?そういうことを言ってるのではないの?
0186名前は開発中のものです。
2010/09/20(月) 16:05:32ID:0PP3VNsKバグじゃねーよwwww
そういう構造になってるの。
どのゲームでもそうなるよ。
ホント、解ってないな(^^;
でも、これであなたのレベルが解りました。
0187名前は開発中のものです。
2010/09/20(月) 16:07:05ID:JDqAfrLM>そもそも
>int a=0;
>が初期化のおさらいだとしても
初期化のおさらいとしてaを0で初期化したとしても
>a=a+(b>20);
>にする説明にはならないわけだけど
次の行でa+(b>20)を代入する説明にならない
ってこと
0188名前は開発中のものです。
2010/09/20(月) 16:08:38ID:sEiPhw38いや、ほんとにレベルが解ったよw
0189名前は開発中のものです。
2010/09/20(月) 16:09:00ID:FLEKFsTh一度ゲーム作ってみろ
0190名前は開発中のものです。
2010/09/20(月) 16:09:35ID:JDqAfrLMprintf("%d",30>20);
で問題ないんだけどな
なんでわざわざ一度変数に入れたのかね
0191名前は開発中のものです。
2010/09/20(月) 16:11:00ID:FLEKFsTh解説サイトに一度もprintfが出てないし、使い方分からないんじゃないかな?
0192名前は開発中のものです。
2010/09/20(月) 16:11:39ID:FLEKFsTh頭が逝ってしまったようです
0193名前は開発中のものです。
2010/09/20(月) 16:13:26ID:TrTl0m0a0194名前は開発中のものです。
2010/09/20(月) 16:14:40ID:QMHXPV8W0195名前は開発中のものです。
2010/09/20(月) 16:14:58ID:0PP3VNsK多分、C言語が理解できれば、
他の言語でも応用が利くと思う。
だから、C言語はプログラムの登竜門なのだ。
まあ、他の言語はまだ知らないけど、
PHPとかC言語によく似てると思う。
似たような単語が出てくるしね。
0196名前は開発中のものです。
2010/09/20(月) 16:16:37ID:TrTl0m0a>多分、C言語が理解できれば、
お前には永遠に無理だろうな
0197名前は開発中のものです。
2010/09/20(月) 16:18:39ID:0PP3VNsK俺は誰かが作ったゲームプログラムを自己流で解析して、
それを改良してプログラムを組んだりして、
プログラムを理解しました。
なので、成長スピードが
教科書を1ページから勉強している人とは全然違う。
だって、もうゲームが完成していて答えが完成しているんだし。
答え >> その意味を知る
これが俺の勉強法の基本かな?
0198名前は開発中のものです。
2010/09/20(月) 16:19:52ID:JDqAfrLMなんでaにb>20の値を代入するのに
a=a+(b>20)
ってしてるの?
説明してよ
0199名前は開発中のものです。
2010/09/20(月) 16:21:56ID:p01Q1cpS3日もあればだいたい押さえられる
4か月も経って代入やら定数やらの意味も理解できてないのは相当のバカ
0200名前は開発中のものです。
2010/09/20(月) 16:23:34ID:o7Tp16jr> なので、成長スピードが
> 教科書を1ページから勉強している人とは全然違う。
4ヶ月もやっててこのレベルなら確かに全然違うね。
0201名前は開発中のものです。
2010/09/20(月) 16:23:44ID:TrTl0m0a4ヶ月かかってこれか。可哀そうに
0202名前は開発中のものです。
2010/09/20(月) 16:24:56ID:sEiPhw38その自己流の解析方法を解説するべきだろ。
現状の>>1の理解度だとCを理解してるとは言い難いぞ。
まぁ、誰かが作ったゲームを解析してとか言ってるけど
適当に他人のソースを改変して作ったってだけだろ。
その方法は学習法としては効果はあるはずだが、現状の>>1の状況では
「プログラムを理解しました。」とか言いきっちゃうのはまずいw
成長スピードがすごいと思うのも途中の段階で「ゴールに到達した」とか
勘違いしてるからだよw
>>1が解析した元のソースを書いた人は今現在の>>1よりはるかに高次元の
存在だってことに気が付くべきだw
0203名前は開発中のものです。
2010/09/20(月) 16:26:31ID:TrTl0m0a前スレ>>478,480で、改変するほどの能力もないって分かってる
0204名前は開発中のものです。
2010/09/20(月) 16:31:25ID:0PP3VNsKあるところで、
何でもいいからゲームプログラムのコードを入手して、
そのコードを見てごらんよ。
最初は、複雑で驚くかもしれないけど、
それに臆することなく、
一つ一つの意味を知れべてご覧なさい。
そしたら、プログラミングがもっと詳しく知ることが出来ると思う。
そうやって中級者の壁を越えて、
上級者になるのです。
0205名前は開発中のものです。
2010/09/20(月) 16:32:28ID:TrTl0m0a>上級者になるのです。
まず、初心者を脱出して、初級者になることから始めようか。
0206名前は開発中のものです。
2010/09/20(月) 16:34:04ID:TSB9RtrOだまされたと思って
#include <stdio.h>
#define b 30
int main()
{
int a = b > 20;
printf("%d\n", a);
return 0;
}
で実行してみてくれ。で、なんでこうじゃなくて int a = 0; a = a + (b>20); にしたのか説明してくれ。
0207名前は開発中のものです。
2010/09/20(月) 16:34:44ID:sEiPhw38さすがループカウンタを放置してゲームが止まるのが普通な世界の住人w
0208名前は開発中のものです。
2010/09/20(月) 16:35:03ID:0PP3VNsKごめん。。
難しくて何を言いたいのかよく理解できない・・。
とにかく、真は1、偽は0と理解してください。
0209名前は開発中のものです。
2010/09/20(月) 16:35:37ID:TrTl0m0a>とにかく、真は1、偽は0と理解してください。
きみはじつにばかだな
0210名前は開発中のものです。
2010/09/20(月) 16:36:23ID:JDqAfrLM>>198
あと>>206も分かりやすいね
ちなみに比較演算子は真の時1を返すけど、真=1では無いよ
0211名前は開発中のものです。
2010/09/20(月) 16:37:10ID:TSB9RtrO0212名前は開発中のものです。
2010/09/20(月) 16:38:58ID:0PP3VNsK意味なんて、ねーおww
そうやって解説したいから、
そうやって解説しただけ。
>>206のソースも、
俺が組んだソースも同じ意味じゃないか。
多分、そのソースでも同じ結果になると思う。
1が表示されると思う。
ごめん。悪いけど解りきってることだから、
試す気にもなりません。
0213名前は開発中のものです。
2010/09/20(月) 16:39:58ID:sEiPhw38この姿勢が成長しない原因なんだよなw
0214名前は開発中のものです。
2010/09/20(月) 16:41:07ID:0zuQeEepわかりやすい解説をするのに無駄があるから突っ込まれたわけで
0215名前は開発中のものです。
2010/09/20(月) 16:41:47ID:TrTl0m0a代わりに俺が
http://ideone.com/CTv0V
0216名前は開発中のものです。
2010/09/20(月) 16:42:25ID:JDqAfrLMa=b>20;
ならまだわからんでもないが
int a=0;
a=a+(b>20);
はb>20を代入するというコードにおいて正解とは言い難いなぁ
結果は同じだけど
0217名前は開発中のものです。
2010/09/20(月) 16:43:14ID:0PP3VNsKなぜ、俺がDXライブラリを認めないのかというと。
あれは誰かが作ったライブラリなんです。
ライブラリでプログラムを組んで理解している気になっていたら、
きっとどこかで大きな落とし穴にはまると思う。
例えば、DXライブラリでウィンドウを表示させるには、
なんだっけ?
1行のコードを書くだけで良かったでしょ?
でも、あれは、そのコードを書くことで、
そういう結果になるように組まれているだけです。
もっと踏み込んだところを知らなきゃダメです。
0218名前は開発中のものです。
2010/09/20(月) 16:44:32ID:TrTl0m0astdio.hもライブラリ
Win32APIもライブラリ
DirectXもライブラリ
0219名前は開発中のものです。
2010/09/20(月) 16:45:55ID:0PP3VNsKじゃあ、DXライブラリに対抗して、
いつか、俺がKAZUKIライブラリを作ってあげるよ。
0220名前は開発中のものです。
2010/09/20(月) 16:45:59ID:sEiPhw38最低限、自分でドライバを直接たたいて表示させろってことか。
0221名前は開発中のものです。
2010/09/20(月) 16:47:21ID:JDqAfrLMそしたらほんとに理解したと言えるし
0222名前は開発中のものです。
2010/09/20(月) 16:48:44ID:TrTl0m0a0223名前は開発中のものです。
2010/09/20(月) 16:49:30ID:GYlRLzyH0224名前は開発中のものです。
2010/09/20(月) 16:51:05ID:TSB9RtrO0225名前は開発中のものです。
2010/09/20(月) 16:51:16ID:jBiXrBQSa=a+(b>20);
これについて、Kazukiが説明できない理由は、
www.kazuki-sendo.comのifの説明は、
>>126 の本の丸写しだからです。
そして著者の意図を理解してないから、なにも説明できない。
0226名前は開発中のものです。
2010/09/20(月) 16:52:58ID:TrTl0m0aもちろんコンパイラもライブラリを一切使わずに自作だよね
Kazuki製のCコンパイラとか一回使ってみたいww
0227名前は開発中のものです。
2010/09/20(月) 16:54:23ID:JDqAfrLM最終的にはマシン語の勉強かな
0228名前は開発中のものです。
2010/09/20(月) 16:54:40ID:gAkdYKQDまぁ、>>219の発言でわかるように、身の程知らずにもDXライブラリの作者と同格とか思っちゃってんだろ。
0229名前は開発中のものです。
2010/09/20(月) 16:54:53ID:G1YrHPCTまずハンダゴテから覚えようか
0230名前は開発中のものです。
2010/09/20(月) 16:56:23ID:TSB9RtrO0231名前は開発中のものです。
2010/09/20(月) 16:57:19ID:JDqAfrLM0232名前は開発中のものです。
2010/09/20(月) 17:02:11ID:0PP3VNsKChangeWindowMode( TRUE ) ;
↑
これですね?
DXライブラリはこんな短いコードを書くだけで、
ウィンドウが表示されます。
俺が言いたいのは、
これで満足するんじゃなくて、
このコードのもっと深い意味を理解しましょう。ってことです。
理解できてるなら、
別にDXライブラリだろうが何だろうが、
どのライブラリを使ってもいいよ。
プログラムは膨大なコードを書くことになるので、
ライブラリを使って時間短縮した方がいいに決まってるしね。
0233名前は開発中のものです。
2010/09/20(月) 17:03:56ID:bH9qwxA1じゃあ、説明よろしく。
DirectXでどうやってWindow表示するの?
0234名前は開発中のものです。
2010/09/20(月) 17:05:39ID:JDqAfrLM>俺の場合、完成したゲームのあらゆるソースコードを?2?で入手して、
>そこに書かれている意味を一つ一つ調べて学んで行っているからです。
これ"P2Pで入手"か?
P2Pが違法とは言わないけどP2Pで流れてるソースって違法の匂いがプンプンするんだけど
0235名前は開発中のものです。
2010/09/20(月) 17:05:52ID:iWUggLimChengeWindowMode=ウィンドウモード変更な?
フルスクリーンとウィンドウモードを切り替える関数だろ
0236名前は開発中のものです。
2010/09/20(月) 17:07:18ID:0PP3VNsKなんか、13歳からシリーズもあったよ。
でも、DXライブラリを使って解説していたので、
「使えねえや・・」と思って、即行で閉じました。
その代わり、DirectX11の新しい解説本を購入してきました。
DirectX11は、まだ使わないけど、
ちょっと理解しておきたいしね。
時代に乗り遅れないために・・。
0237名前は開発中のものです。
2010/09/20(月) 17:10:06ID:pkV7CGvL興味深いな、どの書籍か教えてもらえる?
DirectX11の解説本って和書が無いに等しいからな。
0238名前は開発中のものです。
2010/09/20(月) 17:10:11ID:TrTl0m0a買ったら満足して、放ったらかしにしてそう。
というか、部屋の隅に同じ本が既に積んであるんじゃね?
0239名前は開発中のものです。
2010/09/20(月) 17:10:33ID:0PP3VNsKちょwwwおまwwwww
さすがにノーコメント・・。
0240名前は開発中のものです。
2010/09/20(月) 17:10:56ID:gAkdYKQD目的と手段を完全に混同してるな。
単にDXライブラリがMS製じゃないからなんとなく嫌なだけだろ。
オプソ嫌いなおっさんみたいな奴だな。
0241名前は開発中のものです。
2010/09/20(月) 17:12:32ID:JDqAfrLM>>198に答えてくれない?
答えないなら>>225で正しいってことでいい?
0242名前は開発中のものです。
2010/09/20(月) 17:13:52ID:0PP3VNsK俺が購入したのは、
「ちょっとだけDirectX11」というタイトルの本です。
筆者は下谷 秀俊てって人です。
この本面白いね。(^^
俺が知りたかったことがたくさん書かれているよ。
まあ、この本は初心者向けではないから、
ある程度、DirectXを理解してないと、
サッパリ理解できないと思いますがね。
0243名前は開発中のものです。
2010/09/20(月) 17:14:49ID:TrTl0m0a・ニコ厨
・東方厨
・解説厨
・割れ厨←new!
0244名前は開発中のものです。
2010/09/20(月) 17:15:19ID:0PP3VNsKぶっちゃけ、どうでもいいwww
あんたが正しい!
よ!大統領!ww
0245名前は開発中のものです。
2010/09/20(月) 17:15:48ID:pkV7CGvLそれか、悪いけど初心者本だよ。それ
0246名前は開発中のものです。
2010/09/20(月) 17:16:56ID:TSB9RtrO他人のコードを理解せず丸パクリで使うのはいいってことか
単なる自己満足以外の何物でもないな
0247名前は開発中のものです。
2010/09/20(月) 17:17:59ID:TrTl0m0a0248名前は開発中のものです。
2010/09/20(月) 17:18:49ID:JDqAfrLM自分が間違ってると認めるなら解説直しな
0249名前は開発中のものです。
2010/09/20(月) 17:19:25ID:TrTl0m0a安い本だなおい
0250名前は開発中のものです。
2010/09/20(月) 17:26:28ID:eKQAJJG20251名前は開発中のものです。
2010/09/20(月) 17:33:13ID:0PP3VNsKなに!?
この本を初心者向けと言ってのけるのか・・・。
これには、恐れいった。。
俺、マジであんたを尊敬するよ・・。
まあ、他の住人のレベルはどうだが怪しいのだがww
多分、ある程度までならプログラムを理解してて
それに満足している中級者レベルだと、俺は思っている。
■ このスレッドは過去ログ倉庫に格納されています