トップページgamedev
1001コメント423KB

Kazukiの同人3DRPG制作【第一話】

■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki2010/09/10(金) 06:35:05ID:8vGP1TSQ
Kazukiの同人3DRPG制作 公式サイト
ttp://www.kazuki-sendo.com/game/


発展途上中の素人Kazukiを中心として、
DirectX9による3DRPG制作に挑戦します。


開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。

2ch当スレを本スレとし、
ニコニコ動画、zoome、mixi、の3コミュメンバー合同で同人3DRPG制作に挑戦します。

※本格的にゲーム制作に協力していただけるメインメンバー様へは、
 ゲーム完成後に平等に利益分配されます。
 (詳細は公式サイトのメンバーページ)
0093名前は開発中のものです。2010/09/12(日) 21:17:44ID:SQesq03q
>>92
プログラミングを理解しないでゲームを作る?

ああ、君はDXライブラリを使ってゲームを制作して、
ゲームを作れるようなつもりになっているわけですね。

俺はDXライブラリは認めません。

あれはプログラミングとは認めたくない。
0094名前は開発中のものです。2010/09/12(日) 21:23:45ID:SQesq03q
DXライブラリを使用すれば楽です。

コンピュータの構造なんて理解してなくても、
DXライブラリが用意している関数を使えばいいだけですからね。

でも、それだと応用が利かなくなる。

だから俺はDXライブラリは使いません。
0095名前は開発中のものです。2010/09/12(日) 21:26:18ID:51fmif6y
ん?領域なんて特に意識する事ないだろう?
0096名前は開発中のものです。2010/09/12(日) 22:23:55ID:TPlrjnwl
ところでゲームは完成したの?
0097名前は開発中のものです。2010/09/12(日) 22:46:05ID:/0LY/OHF
DXライブラリだけで大概のもの作れると思うしー別にいーんじゃないの?
ゲーム作成するためにメモリの仕組み覚えるなんて必要ない気がする
クラス作ってパラメータの計算、DXライブラリで描画してハイ終わり。

それより作りたいものが決まってないと言語以前の問題
0098名前は開発中のものです。2010/09/13(月) 00:39:58ID:DDlg70eN
DXライブラリはただの描画ライブラリなんだからゲームの本質的な所とは一切関係なし
よっぽどプログラミングを理解してないんだなあ。
0099名前は開発中のものです。2010/09/13(月) 00:44:55ID:eD2Excdd
色々面白いスレだったからサイト見てきた。

http://www.kazuki-sendo.com/game/?p=338
ここ色々おかしくね?

{ }(パレーン)」で囲まれた範囲
→パレーンって()じゃね?{}はブレースじゃね?w

ついでにその下のソースさ、C言語の解説してる癖にfor文の中でint b宣言&初期化してね?
ファイルが.cppだったら通るっちゃ通るけど、これはC++の書き方で、C言語の書き方じゃねくね?


あれ俺が間違ってるのか?
0100名前は開発中のものです。2010/09/13(月) 02:35:27ID:fZ2TI17d
ファミコンの組み込み系とかやりたいのかってくらいメモリにこだわってるなwwwww
いきなり{}がどうのこうのいわずHello Worldだけコピペで実行させるもんじゃねーの?#includeはおまじないです☆みたいなこと書いたりしてさ
変数もいきなり型の説明から入ってるけどとりあえず変数がなんなのかとか適当な計算とかやらせるもんじゃねーの?わかってる人間が見ればそりゃ理解できる内容だがガチ初心者が見たら理解する前に違うページググるぞ
0101名前は開発中のものです。2010/09/13(月) 05:47:37ID:WGzzO3IW
自分で全部やってやる!って意気込みは結構だが、
DXライブラリ批判は、既存のライブラリを使ってでもゲームを完成させた人が言わないと、
ただのワナビーやいきがってる中学生とかにみえちゃうなー
0102名前は開発中のものです。2010/09/13(月) 06:52:07ID:iWaB+6PA
粋がって盛り上げるだけのスキルがねぇよな
俺も結構動けばいい主義だけど
こいつのは下手したら動作しないレベルだろ
0103名前は開発中のものです。2010/09/13(月) 07:12:52ID:ydwHPgax
>>99
そこ以外でも細かい間違いが多々あるよw
解説の間違いをつっこむスレとかにした方が盛り上がるかもね
>>68のソースとかひどいもんだ
0104名前は開発中のものです。2010/09/13(月) 08:04:26ID:eE7b0Ftc
>>100
いやいやw

残念ながら、#includeは、おまじないじゃないw

そんな嘘を教えている解説本は捨てたほうがいいよ。

#includeは、hファイルを呼び出すためのものです。
コンパイラが用意しているhファイルを呼び出すこともあれば、
自分で作ったhファイルを呼び出すこともある。

hファイルの中に関数の意味が書かれていて、
例えばDXライブラリを使う場合は、
DXライブラリの作者が作ったhファイルを呼び出して
それを使っているだけに過ぎない。

ライブラリってのは自分でも作れるのです。
0105名前は開発中のものです。2010/09/13(月) 08:12:43ID:eE7b0Ftc
>>99
その発言でお前のレベルが解ったwww

{ }←これはパレーンと呼びます。

こんな基本的な知識も間違えて覚えておいて、
よく批判とか出来るよなぁwwボク
0106名前は開発中のものです。2010/09/13(月) 08:19:32ID:UeHcluMV
http://keizai.xrea.jp/markup/markup01.html

>「[ ]」(角カッコ,大カッコ,ブラケット),「{ }」(波カッコ,中カッコ,ブレース),「( )」(丸カッコ,小カッコ,パレーン),は,日本語,欧文ともに存在するカッコです.日本語の場合は,全角文字を,欧文の場合は半角文字+半角スペースを用います.

0107名前は開発中のものです。2010/09/13(月) 08:21:07ID:eE7b0Ftc
俺は少し前まで素人だったから、
まだ素人の気持ちはよく解る。

#include<stdio.h>

int main(){
  printf("Hollo World!!");
}


こんなソースコードを初めて見た人は、
その一つ一つの意味が気になる。

#include<stdio.h>

これの最初の#ってどういう意味?
<stdio.h>の<ってどういう意味?
int main(){の{ってどういう意味?

という風に、一文字一文字が気になる。
そして、その一文字一文字を説明してほしいと思うのです。

C言語のメインは、型とか関数ではなく、
{ }←これがメインなんです。

どんなに複雑なC言語のソースコードでも、
{ }←で囲まれています。
そのパレーンの前に型と関数を宣言する。

それほど{ }パレーンは重要なわけです。
0108名前は開発中のものです。2010/09/13(月) 08:29:43ID:eE7b0Ftc
>>106
あれ〜?

本当だwwww

そこには{ }をブレースって読んでるね。。。


どうしよう・・ガクブル。
俺が間違っていたの?ww



まあいいや、そんなこと!

普通に中カッコって言えばいいでしょ!

中カッコを英語で呼んで
ちょっとカッコつけてみたかっただけだよ。

いいじゃないか、そんなことどうだって・・。(^^;


名称の読み方なんて、そんなに重要か?
0109名前は開発中のものです。2010/09/13(月) 08:35:40ID:rfZsSMdB
重要じゃないけど、
こんな基本的な知識も間違えて覚えておいて、
よく言語解説とか出来るよなぁwwボク
とは思われても文句は言えまい。
0110名前は開発中のものです。2010/09/13(月) 08:43:38ID:eE7b0Ftc
俺、英語は苦手です。

中学校か高校の頃に間違って覚えていたみたいww

正しくは、

{ } ←ブレース
( )←パレーン

と読むらしい。

ちゃんと調べて書けばよかったですね。

記号の読み方ぐらい当たり前という頭があって、
記号の読み方まで調べていませんでした。

ずっと、{ }←これをパレーンと読んでいましたww

恥ずかしいww

ところで大阪でよく見かける「月極駐車場」←これ、なんて読むか知ってるかい?

俺、少し前まで「げっきょくちゅうしゃじょう」と読んでいて、
飲み会の席で大恥をかいたことがあるww(^^;

正しくは「つきぎめちゅうしゃじょう」と読みます。

まあ、いいじゃないか。
名称の読み方間違いぐらい笑いにしてしまうぐらいの余裕は持っておきたい。

一応、公式サイトの解説は修正しておきました。
0111名前は開発中のものです。2010/09/13(月) 08:57:21ID:xM63DzfL
3DRPG製作しないの?
尊大な態度で鼻につくし、自尊心が人一倍高く自分の過ちを素直に認めることができない
歩調を合わせ目標に向け一緒に努力する姿勢すらない
何がしたいの?まじで
0112名前は開発中のものです。2010/09/13(月) 08:59:05ID:enE/GBWx
読んでるから適当に頑張れ( ゚д゚) 俺は3Dは無理だからツクールかウディタでエロゲ作ってる
0113名前は開発中のものです。2010/09/13(月) 09:16:13ID:gd6Dw/hK
C言語覚えたてで初心者相手に知識をひけらかしたいだけなんだろ?
俺ってスゲーだろみたいな
ゲーム制作という言葉を餌にしてね
0114名前は開発中のものです。2010/09/13(月) 09:35:08ID:rfZsSMdB
・全てにおいてint main()のリターンが無い

・変数と型がタイトルなのに変数に触れてない
関数を変数に差し替えた方が良い気がする

・型に好きな名前を付けて使います。
勘違いしやすい
最低でも「型の後に」にしたほうが良いと思う

あとは上でも言ってるけど厳密にはC言語じゃない
C++編でクラスとかやる予定なら基礎編とでもつけた方が無難。

個人的にクリティカル気になったのはこれくらい。
まだあるけど意図的な物だと思う…
解説を名乗るなら最低限以上の物は修正して欲しい

「おまじない」を使わずに言語解説は二つの意味で難しいと思うよ
0115名前は開発中のものです。2010/09/13(月) 10:33:11ID:+C24tzRw
>>105
webクリエーターの癖に
ファーストビューをファーストコンタクト
とか言ってた人が居るけど
その人もwebページの批判とかしてたなぁ
0116名前は開発中のものです。2010/09/13(月) 10:59:09ID:0HHtQ8wl
誰でも間違いはある。間違える事は別に恥じゃない。
間違いを認めて是正すればいいだけ。

恥ずかしいのは、間違いを指摘された時に素直にそれを認めない事。

「いいじゃないか、どうだって。そんなに重要か?」

というような言い逃れとかね。
0117名前は開発中のものです。2010/09/13(月) 11:09:56ID:DDlg70eN
それよりも間違えてる癖に
>こんな基本的な知識も間違えて覚えておいて、
>よく批判とか出来るよなぁwwボク
とか言っちゃってる時点で大恥だろ
0118名前は開発中のものです。2010/09/13(月) 11:36:56ID:M+9sThFM
まぁ2chだと些細な間違いに対して必要以上にしつこくあげつらう奴が多いからなぁ
こいつは他の典型的な厨房と違って自分が間違えたと自覚出来たことについては結構素直に間違いを認めてるし、
実際上で指摘されてるのは(間違いを正せたなら)それ以上突っ込む必要のない割とどうでも良い間違いが多い
訂正が済んだことに対しては「もういいだろ」でも別に構わないよ
間違いは認めたんだから少なくとも言い逃れじゃないしな
てゆうかこいつのどうしようも無さはもっとずっと根深いところにある
0119名前は開発中のものです。2010/09/13(月) 12:09:18ID:eE7b0Ftc
>>114
ちょっと意味を履き違えてますな。

まだプログラミングの解説までは行っていないよ。

現時点では、各名称の意味を解説してるだけです。

例えば、スコープの解説で、C++のソースを例題として出しているけど、
本題はそこじゃなくて、
スコープって何?というところです。

スコープの解説のために、
C++のソースを出しただけであって、
そんなことは別に気にする必要はなくて、
スコープの意味が解ればいい。

ローカル変数は、スコープ内だけで使うんだね。
スコープの外では使えないんだね。
スコープを気にしないで変数を使いたい場合は、
グローバル変数を使えばいいんだね。

ということが理解できればOKなのです。
0120名前は開発中のものです。2010/09/13(月) 12:16:24ID:eE7b0Ftc
int main()にはリターンが必要です。
それは常識です。

でも、素人は簡単には理解できないのです。

リターンとは何なのか?
返し値とは何なのか?
返しとはどこから返してるの?

そんな感じに突き詰めていくと、
先にメモリ内の領域を理解しておく必要があるわけで、

return 0;の意味も解らず、
飾りみたいに使用してるのと、
意味を理解した上で使うのとでは全然違う。


今、C言語の計算についての解説を書いてるところだけど、
メモリ内でどうなってるのか。
という図解入りで解説を書いています。

ちょっと面倒だけど、
その方が素人には解りやすいと思う。

俺は常に素人の味方でありたいわけです。
0121名前は開発中のものです。2010/09/13(月) 12:36:35ID:eE7b0Ftc
C言語の計算式って独特だよね。

普通に小学校で習うような、
1 + 1 =2
という形ではないですからね。

「a+=1」て書いたり、「++a」て書いたりするでしょ?

「a=a+1」

こんな簡単な計算式ですら、
aの答えを求めているのに、
どうして、式の中にaが入ってるのよ!とか思いませんでしたか?

理解しちまえば、
どうってことないけど、
素人はそんなところからつまずくのです。
0122名前は開発中のものです。2010/09/13(月) 16:36:22ID:eD2Excdd
御託を並べるのは結構だけど、お前何かゲーム作れるの?
ってか何が出来るの?
0123名前は開発中のものです。2010/09/13(月) 17:39:15ID:Bp0mHrKP
>>121
C言語はまだマシ
0124名前は開発中のものです。2010/09/13(月) 17:54:12ID:xM63DzfL
いつになったら>>1はつくるの?
0125名前は開発中のものです。2010/09/13(月) 17:55:44ID:eE7b0Ftc
プログラムの正体は、計算式だから、
計算を理解しないと先には進めません。

数学に強い人とか、
俺みたいに数学が好きで好きでたまらない人には、
すごく楽しいかったりする。

プログラミングって面白いよね。

俺はソースコードを読むだけで、
うれしい気持ちになりますね。

超解りやすい解説がもう少しで完成するので、
楽しみにしておいてほしい。

これで理解できなかったらどうしよう。と思ってしまう。。(^^;
0126名前は開発中のものです。2010/09/13(月) 18:14:29ID:WGzzO3IW
数学ってより算数のレベルだよね
でもプログラミングって面白いね
0127名前は開発中のものです。2010/09/13(月) 19:00:52ID:fZ2TI17d
バグが出るとワクワクしながら変数を覗いてしまう
0128名前は開発中のものです。2010/09/13(月) 19:02:09ID:eD2Excdd
>>125
>超解りやすい解説がもう少しで完成する

なんか釣りなんじゃないのかって思ってきた・・・。
本当数年ぶりにこんな奴見たわマジで。
0129名前は開発中のものです。2010/09/13(月) 19:03:50ID:gd6Dw/hK
ワクワクしてきた
0130名前は開発中のものです。2010/09/13(月) 20:14:54ID:gd6Dw/hK
本出せば売れるんじゃね?
俺は買わないけど
0131名前は開発中のものです。2010/09/13(月) 20:42:14ID:eE7b0Ftc
ふう、疲れた。

これだけ解説するだけで、
どれだけ時間を費やしたことか。。(^^;

これ以上、優しく解説するのは無理です。
0132名前は開発中のものです。2010/09/13(月) 21:04:54ID:0mVb50Li
ところでお前ら、改行抑えてくれない?
読みにくい
0133名前は開発中のものです。2010/09/13(月) 21:09:41ID:0mVb50Li
>>120
Cは触った事ないけど、C++はvoid main()にすればリターン不要だよ
そもそもCの規格(どの規格かまでは忘れた)でint main()に返り値が必要なだけで、理屈で決まってるわけじゃない
0134名前は開発中のものです。2010/09/13(月) 21:29:05ID:eE7b0Ftc
あ・・。しまった。

今、読み直したら
大変な嘘を言ってることに気が付いたww

ヤバイヤバイww

現在、修正中
0135名前は開発中のものです。2010/09/13(月) 21:30:19ID:eD2Excdd
嘘も言ってるし、コンパイルも通るハズが無いコード晒して本当酷いな。

本当に付け焼刃な感じがする。
0136名前は開発中のものです。2010/09/13(月) 21:44:46ID:eE7b0Ftc
よし、修正終わり。

ヤバイヤバイ、また大恥をかくとこだった(^^;


さて、次は何を解説してやろうかな。。

やっぱ、流れ的にここまできたなら、
次は、構造体や定数、列挙体かな?

ポインタはもう少しあとですね。
ポインタの解説はちょっとややこしいな・・。

それから最後に、if文や、条件分岐、ループを解説して、
C言語の解説を終えることにしよう。

あ、return文の解説を忘れてはいけませんねw


C言語の解説が終わったら、
C++をDirectX9を織り交ぜつつ解説していきます。

多分、君たちはこの部分を知りたいんだろうね(^^;

正直、今のところ常識すぐるところしか解説していないので、
あくびが出てしまうことが予想されますが、
もう少しお待ちください。

そのうち上級者レベルのボリュームの高い解説になります。
0137名前は開発中のものです。2010/09/13(月) 21:47:49ID:eE7b0Ftc
>>135
じゃあ、どこが嘘なのかを言ってくれるかい
0138名前は開発中のものです。2010/09/13(月) 21:48:33ID:0mVb50Li
>>136
んなもんぐぐったらいくらでも出てくる
現在のPC環境で、共用体の実用的な使い方を教えて欲しい
これはマジで知りたい
0139名前は開発中のものです。2010/09/13(月) 21:53:22ID:vw14tCDd
>よし、修正終わり。

え? まだ大量にウソ書いてる。
ウソ書くのなら、やめた方がいい。
0140名前は開発中のものです。2010/09/13(月) 21:55:24ID:eE7b0Ftc
>>139
悪いけど、あんたの相手はしないよ。

ずっと一人で言ってればいいよw
0141名前は開発中のものです。2010/09/13(月) 22:06:22ID:eE7b0Ftc
>>138
共用体ってのは、
このあと解説するつもりだった、
構造体に似たようなもので、
メモリ内の領域を複数の変数で使うためのもの。

union uni
{
 int a;
 char[5];
}kazuki;

共同体を使うには、
このようにunionを使って宣言する。

これを関数の中で呼び出して使えばいい。

int main(){
  union uni;

}

で、実用的な使い方ってなんだい?
何がしたいんだい?
0142名前は開発中のものです。2010/09/13(月) 22:10:58ID:eD2Excdd
>>137
じゃあ、どこが嘘なのかを言ってくれるかい(キリッ

WEBデザイナーって真性のアホでもなれるんだな。


※サイト内ソースと解説
#include <stdio.h>
int main()
{
  int a , b;
  {
   a = 50 * ( b + 10 );
   printf( "%d" , a );
  }
 printf( "%d" , a );
 return 0;
}

ちなみに、これは前回のおさらいですが、
このようなコードを書いた場合、ローカル変数は関数を抜けた時に解放されるため、
aの領域もbの領域も消えて無くなります。

存在しない領域を表示しようとしているので、
コンパイルエラーになります。
0143名前は開発中のものです。2010/09/13(月) 22:14:36ID:0mVb50Li
>>141
じつよう‐てき【実用的】
[形動]実際の用に適するさま。実際に役に立つさま。「―な贈り物」

unionの意味ぐらいは知ってる。どういうときに使えるの?
無いなら無いって答えて欲しい
俺は経験上、unionを使うべき機会に立会ったことが無いんだ。応用が効かなかっただけかもしれないけど
例えば、そうだな。
ガベージコレクションも実装されてるものとして、ネットゲームのクライアントとする。FF14でいいかな。どこに使えばいいと思う?
0144名前は開発中のものです。2010/09/13(月) 22:27:21ID:eE7b0Ftc
ああ
0145名前は開発中のものです。2010/09/13(月) 22:35:38ID:eE7b0Ftc
連続発言で投稿できなかった。

えっと、これもこの後、解説するつもりだったんだけど、
列挙体と構造体を組み合わせて共同体を使うのが実用的な使い方です。

その前に、列挙体と構造体の意味が解ってないとダメですね。

じゃあ、次は、構造体と列挙体の解説をするから、
その後に、共同体を解説することにしましょう。


まあ、要するに、
3Dポリゴンの描画の際に、
列挙体を使って宣言しておいて、
構造体の中で、共同体を呼び出して使う。

説明するの難しいな・・。
0146名前は開発中のものです。2010/09/13(月) 22:39:44ID:uHGV5Rl5
運命共同体w
0147名前は開発中のものです。2010/09/13(月) 22:41:08ID:eD2Excdd
まあ、要するに、
3Dポリゴンの描画の際に、
列挙体を使って宣言しておいて、
構造体の中で、共同体を呼び出して使う。


えっ・・・そんなにめんどくさい事するんですか?
0148名前は開発中のものです。2010/09/13(月) 22:42:19ID:uHGV5Rl5
後、列挙体ってのもあまり聞かないな列挙型じゃね?
回りくどい言い方せずに普通はenumだな
0149名前は開発中のものです。2010/09/13(月) 22:42:25ID:mHW+Bk/O
ちょっとフォローしてやるとこんなところじゃねぇか?>共用体のウマーな使い道

// 色データ
union{
struct{
unsigned char b_;
unsigned char g_;
unsigned char r_;
unsigned char a_;
};
unsigned long color32bit_;
};


ところでたまに「共同体」ってなってね?
0150名前は開発中のものです。2010/09/13(月) 22:47:35ID:eE7b0Ftc
構造体の利点は、
異なる型を一つのデータとして使えること。

つまり、int型とchar型をメンバ変数で宣言して、
構造体変数を宣言して、メンバ変数に数値を代入する。


列挙体は、定数ってのを使うんだけど、
定数ってのは、

#defineというプリプロセッサ命令を使って、
ソースコードを解りやすくするためのもの。

その定数を連続して使いたい時に、
列挙体を使う。

列挙型を適当に宣言して、
それをまあ、int型などで使うわけですね。

それに共同体を組み合わせる!

説明難しいww
0151名前は開発中のものです。2010/09/13(月) 22:51:47ID:eD2Excdd
そんなことより>>1>>142の間違え見つかったの?
0152名前は開発中のものです。2010/09/13(月) 22:54:30ID:eE7b0Ftc
>>148
列挙型は型名。
列挙体は、そのものを指す。

列挙型は、○○である。
て言うのは日本語的におかしい。

列挙体は、○○である。
って言った方が日本語っぽい。
0153名前は開発中のものです。2010/09/13(月) 22:55:26ID:uHGV5Rl5
>>150
列挙体と列挙型の説明をもう少しkwsk
0154名前は開発中のものです。2010/09/13(月) 22:56:48ID:mHW+Bk/O
さっきから「共用体」のこと「共同体」って言い続けてる奴
このまま言い続けたら関節極めんぞ
0155名前は開発中のものです。2010/09/13(月) 22:57:33ID:eE7b0Ftc
>>151
そんな奴しらん!w

眼中にないから、
見向きもしていない。

あとで暇な時に間違えを探しておくよ。

どうせ、簡単な間違いを大きく取り上げて騒いでるだけでしょ?
0156名前は開発中のものです。2010/09/13(月) 22:58:25ID:uHGV5Rl5
>>152
難しすぎて理解できないのですが・・・
0157名前は開発中のものです。2010/09/13(月) 22:59:02ID:eE7b0Ftc
>>154
あらw本当だwwwwwwwwww

自分で言ってて吹いたww
0158名前は開発中のものです。2010/09/13(月) 23:00:36ID:0mVb50Li
>>145
いや真剣に聞いてるんでどれだけ説明が難しくなってもいいし、
ぶっちゃけ抽象的でもいいんだけどできればネトゲのFF14あげてるんだからそれで例えてくれw
>列挙体を使って宣言しておいて、
>構造体の中で、共同体を呼び出して使う。
例えば戦闘シーンに入るごとに敵グラフィックを呼び出すとする。
その敵グラフィックのメモリには共用体を使うってこと?
それとも似たような敵でサイズが同じ奴(スライムとスライムベスとか)に適用ってこと?
>>149
それは釣り師のよくやる手だよ
俺も昔はよくやったな
突っ込みどころが多いとスルーしやすいんだよね
>>151
俺からも>>151の質問に答えてあげて欲しい
無いなら無い、というべき
レスがないのは無能の証拠になってしまう
0159名前は開発中のものです。2010/09/13(月) 23:04:16ID:Bp0mHrKP
http://www.kazuki-sendo.com/
0160名前は開発中のものです。2010/09/13(月) 23:07:49ID:Kh1yuN/2
俺も>>142は結構クリティカルな説明ミスだと思うんだが。
0161名前は開発中のものです。2010/09/13(月) 23:08:33ID:uHGV5Rl5
>>158
>>149を見て、なるほどって思わないと共用体そのものを理解していない
0162名前は開発中のものです。2010/09/13(月) 23:12:36ID:eE7b0Ftc
>>158
スライムの図形を列挙体で定義しておき、
もっと具体的な情報を構造体で定義する。

それを共用体を使って統一的に扱い、
例えば色を赤にしてスライムベスを作る。

元の図形は一つで済む。


こんなところか。
0163名前は開発中のものです。2010/09/13(月) 23:15:38ID:rfZsSMdB
今回もよろしくお願いします。

・int型の宣言で確保されるのが1byte

・int a,b; 確保しただけなので、各領域には何も入ってません。
基本的には何が入っているか解らないはず。

・b+10 この時点でbの領域に10が代入
→+は代入演算子じゃ無いのでbには入らない
b+10に演算結果が埋め込まれる感じ
→何が入っているか解らないので10になるとは限らない。
→bを初期化してないのでコンパイルエラーか警告もしくはエラー落ち。

・aの領域もbの領域も存在しないためエラー
ブロックの前で宣言してるから領域はある。
初期化してないからエラーか警告か。

今回クリティカル気になったのはこれくらいです。
コンパイラーやマシンによって違う部分もあるけど
メモリー領域の話をするなら初期化は最重要だと思います。
0164名前は開発中のものです。2010/09/13(月) 23:20:00ID:eE7b0Ftc
>>163
え??

何言ってるの?
0165名前は開発中のものです。2010/09/13(月) 23:20:56ID:rfZsSMdB
ごめんなさい
0166名前は開発中のものです。2010/09/13(月) 23:25:15ID:ThQtFFC1
test
0167名前は開発中のものです。2010/09/13(月) 23:26:16ID:eD2Excdd
>>163
気がつくまで教えないでおこうと思ったが乙。
多分bの初期化エラーでコンパイル通らないと思う。

なんだかなぁ。

C++とかの解説って本当に出来るのかよって思うよ。
生半可な知識で初心者に教えてもこんがらがって初心者が可愛そうだわ。
0168名前は開発中のものです。2010/09/13(月) 23:26:43ID:ThQtFFC1
うひょ、規制あけたぜえ
期待してるぜえ
0169名前は開発中のものです。2010/09/13(月) 23:27:01ID:xFsIn/+a
>>164
え??

わからないの?
0170名前は開発中のものです。2010/09/13(月) 23:28:21ID:uHGV5Rl5
空っぽってなんだよwww
0171名前は開発中のものです。2010/09/13(月) 23:28:42ID:0mVb50Li
>>161
いや、理屈では理解してるよ。同じメモリ領域を色んな変数で使うんでしょ
やさしいC++のunionnの項目でも読んだ。あんまり使わないからピンと来ないのかな
>>162
なるほど!特に3Dで動的に作成するならとても有効だろう。特にグラボのチップセット内部ではかなり使ってそうな感じは伝わてきた
ところでスライムの画像って3Dで事前に用意してメモリに格納しておくとおもってたんだけど、ゲームでは動的に作成するの?

・予め作成してある3Dデータを格納するメモリ
と、
・3Dデータを動的に作成グラボの値段
を天秤にかけると、前者のほうが圧倒的に安い、つまり商業的に敷居が低いと思うんだけど
そこはどうなの。もちろんメモリの扱いもうまく、グラボにも負担をかけないのが理想だけど
開発の経費が決まってるとして、ね
0172名前は開発中のものです。2010/09/13(月) 23:29:59ID:vw14tCDd
絵描きに色が違うと言っても、色調が合っていれば良いと言い張る。

プログラムコードは違う、
1bit違っていてもコードは停止する、bugを探し出すのに数ヶ月を要することもある。
0173名前は開発中のものです。2010/09/13(月) 23:31:25ID:eD2Excdd
>>171
を読んでて、ふとコンストラクタの初期化リストでリソース読み込んでるバカが居たのを思い出した。
0174名前は開発中のものです。2010/09/13(月) 23:31:55ID:eE7b0Ftc
>>169
あ・・・・。


しまった。
0175名前は開発中のものです。2010/09/13(月) 23:33:01ID:eD2Excdd
>>1ってさ、デザインパターンとか大好き?
0176名前は開発中のものです。2010/09/13(月) 23:33:11ID:eE7b0Ftc
初期化を忘れてた・・w

うわwwどうしよう・・。
0177名前は開発中のものです。2010/09/13(月) 23:35:49ID:eE7b0Ftc
いや!

でもちょっと待て。

問題はそこじゃないよね?

あの解説のメインは、
C言語の計算の考え方についての解説なので、
これでいいじゃない。


って言い訳になるか・・ww

あとで修正しておこう。
0178名前は開発中のものです。2010/09/13(月) 23:36:40ID:aVfTnKWR
>>176
気づいたついでに>>142も修正してきたら
0179名前は開発中のものです。2010/09/13(月) 23:38:23ID:Kh1yuN/2
間違いは初期化だけじゃねーからw
0180名前は開発中のものです。2010/09/13(月) 23:38:36ID:0mVb50Li
>>173
ごめんなさい無学なので本気でわかりません
殺す気で教えて頂けないでしょうか
0181名前は開発中のものです。2010/09/13(月) 23:41:27ID:ThQtFFC1
Kazuki先生の解説だとこうなる

int a,b;
a=50*(b+10);

printf("%d",b);

結果----------------------------------------------------------
10
0182名前は開発中のものです。2010/09/13(月) 23:41:59ID:uHGV5Rl5
>>176
> この時点では、領域を確保しただけなので、各領域には何も入っていません。
忘れてたとか言ってる割には意図的に初期化してないじゃんw
つか何も入ってないってどういうことだよw
0183名前は開発中のものです。2010/09/13(月) 23:42:18ID:nTSsO+Fi
笑いながら読ませてもらっていたが、プリプロセッサで定義する定数と、
enumで定義する定数を一緒にすんな馬鹿たれ

気づいてしまったが教えるんじゃなくて、
赤ペンで教えてもらおうとする巧妙なワナだろw
0184名前は開発中のものです。2010/09/13(月) 23:43:27ID:eE7b0Ftc
面倒だから記事を非公開にして、
明日にでも修正しておくよ。

ご指摘ありがとう。
マジで見落としてた・・。

>>178
うん。
>>142の方が致命的ですw
0185名前は開発中のものです。2010/09/13(月) 23:43:42ID:vw14tCDd
>巧妙なワナだろw

俺も、そう思う
0186名前は開発中のものです。2010/09/13(月) 23:44:04ID:0mVb50Li
初期化とか岩せんなよ恥ずかしい・・って言ってVBA厨乙って流れなら笑いとれたのに
0187名前は開発中のものです。2010/09/13(月) 23:46:35ID:xFsIn/+a
>>177
そうだな
問題はそこじゃないな
プログラム的にはあの式でbの中味は変わらないもんな

規約の緩いコンパイラならそのまま通るだろうし
暗黙的に0に初期化されてるなら、問題無く実行されるだろうな

んで、どこを修正するかわかったかい?
0188名前は開発中のものです。2010/09/13(月) 23:47:16ID:eE7b0Ftc
>>183
いやいや。
その時点は別にいいだろう。

領域を確保しただけだから、
領域の中身は空っぽだよ。

その後に初期化するわけだろ?

1.領域確保
2.初期化
3.計算

これが基本じゃないのか?
0189名前は開発中のものです。2010/09/13(月) 23:47:43ID:ZKZVi0D6
>>167
>C++とかの解説って本当に出来るのかよって思うよ。
>生半可な知識で初心者に教えてもこんがらがって初心者が可愛そうだわ。
はなっから教えてあげようなんてつもりは無いだろうよ
専門知識を並べて解説して、プログラム初心者を騙して、自分が如何に優秀で才能持った人間であるかを示そうとしてるんだよ
この人根っからの嘘つきだから、嘘やデタラメでもいいから周りからの信頼を得たい訳なのです
何しろ、お金の話もしているし本格的に商売も計画している、目標1万本以上という事で
だから自分は能力不足だってはっきり言えないんだよ
本当の事言ったら協力者得られないし、どうやってお金を稼げるのか
0190名前は開発中のものです。2010/09/13(月) 23:47:53ID:mHW+Bk/O
明らかに人に教えるレベルにないだろ
もう2〜3年してから公開したほうがいいんじゃね?
いまの注意力と理解力で何かを作るってのが無謀じゃね?
一旦使えないって印象与えるとみんな寄り付かなくなるよ

とりあえず一通りやってんだよ!って気合はわかるけど
経験やら時間やらが圧倒的に足りてないだろ
0191名前は開発中のものです。2010/09/13(月) 23:48:58ID:eE7b0Ftc
訂正:
>>188は、>>182への返信
0192名前は開発中のものです。2010/09/13(月) 23:49:00ID:eD2Excdd
>>180
いや、あんまり関係無かったりする

小規模〜中規模のゲームならば、ローディングシーンとかで一括で読み込んでしまっても問題無い。
場合によってはローディングは分けたりする(初回のロードが長すぎたりする時)
↑ここらへん人による。

で、俺が言ったのは
例えばスライムクラスでスライムのテクスチャだったりモデルを使う時に
コンストラクタでテクスチャ(モデル)の読み込みを行ってたアホが居た事を思い出したって話。

当たり前だけどスライムを生成する時(要するにnew suraimu();とかした時)
に、初期化リスト内でリソースが読み込まれる。(小規模なロードが挟まるって事)

スライムとかのオブジェクトは沢山生成してナンボ(ゲームによるが)なので
100体生成すると、同じリソースをオブジェクト毎に読み込んでいる減少が起こるからマズイってこと。(めちゃ重くなる)
■ このスレッドは過去ログ倉庫に格納されています