Kazukiの同人3DRPG制作【第二話】
■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki
2010/09/19(日) 04:46:22ID:6P+qj1XKttp://www.kazuki-sendo.com/game/
発展途上中の素人Kazukiを中心として
DirectX9による3DRPG制作に挑戦します。
開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
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
多分、ある程度までならプログラムを理解してて
それに満足している中級者レベルだと、俺は思っている。
0252名前は開発中のものです。
2010/09/20(月) 17:35:27ID:TrTl0m0aおかえり初心者さん
>>241の答え検索できた?
0253名前は開発中のものです。
2010/09/20(月) 17:35:38ID:ioukBWfm0254名前は開発中のものです。
2010/09/20(月) 17:37:20ID:TrTl0m0aレビューがこれぐらいしか出てこない
0255名前は開発中のものです。
2010/09/20(月) 17:37:45ID:0PP3VNsK悪いが、こんなところで、
DirectXを使ったウィンドウ表示は説明しきれないよ・・。
ゴメンね。
でも、そのうち公式サイトの方で
詳しく解説しますので、ちょっと待っててください。
0256名前は開発中のものです。
2010/09/20(月) 17:41:46ID:0PP3VNsK何の答えだよ・・。
検索って何を検索?
検索なんて何もしてないよ。
いったい、何が知りたいんだよ。
知りたいことを端的に質問してくれ。
今は、質問の意味すら理解できてない。
0257名前は開発中のものです。
2010/09/20(月) 17:42:53ID:ioukBWfmとりあえずここのいるヤツの9割くらいはおまいより若くてデキるやつなんじゃね?
0258名前は開発中のものです。
2010/09/20(月) 17:44:32ID:0PP3VNsK詳しい説明を今から書くからちょっと待っててください。
質問の内容は、
>なんでaにb>20の値を代入するのに
>a=a+(b>20)
↑
これだね?
俺はそう解説したいから、
って言ってんですがね・・。
やれやれ。(^^
0259名前は開発中のものです。
2010/09/20(月) 17:45:35ID:JDqAfrLMなぜb>20の値をaに代入するのに
int a=b>20;
でも
int a=0;
a=b>20;
でもなく
int a=0;
a=a+(b>20);
というコードを書いたのか
0260名前は開発中のものです。
2010/09/20(月) 17:47:44ID:0PP3VNsK今、真剣に内容を読み直してみたけど、
やっぱり、何が言いたいのか
よく解らん・・。ゴメン・・。
俺の回答、
「そんなのどーでもいい!」
0261名前は開発中のものです。
2010/09/20(月) 17:48:56ID:ioukBWfmDirectXの勉強に入ってからわからないことが出たらそうやって逃げるのか?クズめ
0262名前は開発中のものです。
2010/09/20(月) 17:49:26ID:JDqAfrLMb>20を代入する場合において
a=a+(b>20)なんてコードは間違いだ。
今回は直前に0で初期化してるから結果は一緒だが、コードの意味が全く違う。
0263名前は開発中のものです。
2010/09/20(月) 17:50:39ID:p01Q1cpS「なんとか自分の間違いをごまかす屁理屈をひねり出そうとしたけどできなかった。
そもそも自分がどう間違ってるのかもよく分からない」
ってところか。
0264名前は開発中のものです。
2010/09/20(月) 17:52:56ID:0PP3VNsKああ、そういうことか。
つまり、C言語の計算は、
「後ろから前に向かって」考えるからだよ。
int a=0;
a=a+(b>20);
↑
こう書くと、
後ろから読んでね?
(20 > b )a= a
↑
つまりこういうこと。
=の左のaには、0が入ってる。
=の右のaにも、0が入ってる。
でも、=の左のaの0は、初期化の0
「int a=0;」←つまりここの0
=の右のa(実際は=の左のa)は、
初期化の0ではなく、計算結果の0が入る。
0265名前は開発中のものです。
2010/09/20(月) 17:54:14ID:TrTl0m0a0266名前は開発中のものです。
2010/09/20(月) 17:56:14ID:uOYqy3lC演算の優先順位って知ってる?
0267名前は開発中のものです。
2010/09/20(月) 17:56:42ID:JDqAfrLM何がスゴイってなんか理解を超越した間違いしてる
こいつの中では
a+(b>20)
と
(20 > b )a
同義らしい
やばいプログラミングはおろか数学の基本も超越しちゃってる
0268名前は開発中のものです。
2010/09/20(月) 17:57:31ID:TrTl0m0a板違い
http://p.tl/o2RP
0269名前は開発中のものです。
2010/09/20(月) 17:58:18ID:0PP3VNsK間違ったw
この場合は、答えは1かw
なぜ?こんなことにイチイチ疑問を感じるのだろうか・・。
つまり、同じaを使ってるけど、
aに入ってる値は違うのです。
だから後ろから前に向かって考えてね?ってことです。
0270名前は開発中のものです。
2010/09/20(月) 17:58:46ID:ioukBWfm後ろから前に向かってって…
どこでどんな解説サイト見たらそんな理解するんだよ…
0271名前は開発中のものです。
2010/09/20(月) 17:59:10ID:JDqAfrLM何がおかしいかもわかってないよ
0272名前は開発中のものです。
2010/09/20(月) 17:59:32ID:p01Q1cpS0273名前は開発中のものです。
2010/09/20(月) 18:10:46ID:0PP3VNsK↑
これを
(20 > b )+a= a
↑
こう読む。
なので、20とbと比べて・・。
という風に、一番最後の20から考え始める。
a=a+(b>20);
↑
これを
aは、aプラス、カッコの中。とは読まない。
■ このスレッドは過去ログ倉庫に格納されています