トップページ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制作に挑戦します。

※本格的にゲーム制作に協力していただけるメインメンバー様へは、
 ゲーム完成後に平等に利益分配されます。
 (詳細は公式サイトのメンバーページ)
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体生成すると、同じリソースをオブジェクト毎に読み込んでいる減少が起こるからマズイってこと。(めちゃ重くなる)
0193名前は開発中のものです。2010/09/13(月) 23:50:02ID:uHGV5Rl5
よくこんな知識でDXライブラリは認めないとか言えるねw
0194名前は開発中のものです。2010/09/13(月) 23:57:16ID:ThQtFFC1
確保したのに領域が空っぽとか何もないとかどういうことなんだぜ
0195名前は開発中のものです。2010/09/13(月) 23:57:20ID:eE7b0Ftc
修正面倒だな・・。

あれ画像で作ってるから、
全部作り直さないといけない。

b=0を入れるだけなんだけど・・。
0196名前は開発中のものです。2010/09/13(月) 23:58:05ID:0mVb50Li
>>192
なるほど。ロードは動画・複数の音楽とか挟んだら大変でしょうね

ちなみにそれはnewじゃなければどう解決するべきでしょうか?
一度弾幕ゲームを作ったことがあるのですが、その時、まず弾の構造体を1000-10000ぐらい用意しておき、
loopで 出現/非出現 判定から軌道計算、接触判定全てを行っていました

やはりC++では関数ポインタ、C#でデリゲートですか?
一度も使えたことがありません・・・
0197名前は開発中のものです。2010/09/13(月) 23:58:07ID:uHGV5Rl5
>>188
なるほど、未初期化の変数は空っぽになるんですね

空っぽってなんですか?www
0198名前は開発中のものです。2010/09/14(火) 00:06:47ID:pI9OYyYQ
>>197
うっせーなw
0199名前は開発中のものです。2010/09/14(火) 00:08:22ID:YCDdRPmA
>>196
そこらへん俺のやり方ではC++にあるSTLのlistを使って管理している。
敵のコンテナと味方(玉とか)のコンテナに分けて
そいつらをイテレーターでブン回して全判定かな。

オブジェクトの削除とかはdeleteとかよりも準標準ライブラリのboostのスマートポインタをオススメする。

弾幕ゲーだったら玉一つ一つをオブジェクトとして考えて、一つ一つに動きを付けると良い。
玉の生成時にスピードとか角度とかをコンストラクタから渡して、それを元に動くみたいな。

玉が生成されてから、玉が消えたり、敵に当たったりするまでを玉クラスで完結するのが一番ベスト。


まぁ作り方が楽でも面倒でも、C++だろうとCだろうと動けばいいんだよ。
細かい事気にしたらキリが無いから、個人製作ならばあんまり設計とかコードに凝らないほうが良い。
0200名前は開発中のものです。2010/09/14(火) 00:12:12ID:4HJgK4wQ
マジレスするだけ無駄だぞお前ら
今まで見てきたから分かる
完全に無駄
0201名前は開発中のものです。2010/09/14(火) 00:19:51ID:79ii0GBv
>>199
ありがとうございます
僕も>ならばあんまり設計とかコードに凝らないほうが良い。
派だったのですが、弾幕ゲームって、一つ要素を入れただけでものすごく重くなってしまって、
これは基本を大事にしないと大変なものができるなと思ったんです
>>200
まぁいいんじゃないでしょうか
無駄でも回答することにより自分の記憶がより強固になり、
また、間違った知識なら誰かに突っ込まれる
常に本気で回答するのもいいことだと思いますよ(自分の分野で常にそうしてるので)
0202名前は開発中のものです。2010/09/14(火) 00:33:36ID:pI9OYyYQ
これまでフォトショで解説画像を作っていたけど、
これからは、Visual C++ 2010のエディタ画面をキャプチャーして作ることにしよう。

その方が確実だし楽だ。。

ついでに実行結果もキャプチャーして載せれば
完璧だろう。


ああ・・。今日はもう疲れた。

少しネトゲで狩りにでも行って
憂さ晴らししてくるw
0203名前は開発中のものです。2010/09/14(火) 00:35:56ID:pI9OYyYQ
今回のミスはマジで凹んだ・・・。

穴があったら入りたいぜ・・・。
0204名前は開発中のものです。2010/09/14(火) 00:36:07ID:hroAEm3n
Kazukiって無職なの?
0205名前は開発中のものです。2010/09/14(火) 00:37:35ID:NJhMEymm
>>201
全力でやるのはいいけど
そこにお前の見栄やら嘘やら、相手の見栄やら嘘やら入ってくるから
おかしくなっちゃうと思うけどね
こうやってやりとりするだけで結構時間とっちゃうし

上げ足とるのに精を出す人間も出てくるし
また、くだらない虚栄心を取り繕うためにお前も妙なレスするし
やっぱり突っ込まれる部分は最小になるようにしろよ
せめて自分で5回は見直してから上げたらどうなの?
回数が無理なら1週間置いてからもう一度読んでみるとか・・・
0206名前は開発中のものです。2010/09/14(火) 00:40:33ID:79ii0GBv
>>205
ちょ、ちょっと待って!俺は自分の専攻してる学問のスレでレスしてるだけだよ
ちなみに理系一般板
ここでは質問してるだけだよ
0207名前は開発中のものです。2010/09/14(火) 00:47:48ID:NJhMEymm
>>206
おお、人違いすまんかった
0208名前は開発中のものです。2010/09/14(火) 00:53:41ID:pI9OYyYQ
>>204
いいや。
無職じゃないよ。

これでもSOHO個人WEBデザイン事務所を一人で経営している。

肩書きはフリーWEBデザイナー。

本来はこっちがメイン。

そもそも、プログラミングを勉強しようとしたキッカケは、
これまで外注に任せていたWEBシステムを自分で作って、
コストを抑えようと思ったのがキッカケ。

だが、ただ単にプログラミングを勉強するだけではつまらないので、
ゲームでも作りながらプログラムを学ぼうと思っていたら、
こっちの方が面白かったので、
ゲームプログラミングがメインになってしまったw

掲示板かブログとか、
そういうWEBシステムを作るのに
DirectXとか、扱わないと思うしw
0209名前は開発中のものです。2010/09/14(火) 05:44:35ID:4HJgK4wQ
要約すると無職です
0210名前は開発中のものです。2010/09/14(火) 09:47:26ID:m5PuDjuc
とりあえず int って 4byte じゃねえの
0211名前は開発中のものです。2010/09/14(火) 09:48:23ID:dA9hCkod
そういやそうだw
0212名前は開発中のものです。2010/09/14(火) 09:51:53ID:QB7AcnS4
指摘はもうやめよう
思う壺だよ
0213名前は開発中のものです。2010/09/14(火) 09:55:45ID:m5PuDjuc
なんだかんだで期待はしている。
俺は3DSTG作ってたけど1ヶ月くらいで飽きてやめちゃったからな・・・。
グラフィックデータが作れないのが痛いわ。
0214名前は開発中のものです。2010/09/14(火) 11:07:23ID:JMWUq/2Y
発展途上中の素人ならこんなもんだろう。
0215名前は開発中のものです。2010/09/14(火) 11:29:19ID:pI9OYyYQ
>>210
そうだったのか。
int型って4バイトだったのか。

さすが2chのゲー製作技術板ですね。

口先だけの馬鹿と違ってよくご存知ですね。
適当なことを言うとすぐに叩かれそうだな。

というか即答で指摘しているところに驚いた。


ちょっと調べてみたけど、
正確にはint型は32ビットです。

値は-2147483648〜2147483647までです。

int a = 2147483647;
int b = a +1;

つまり、こんな感じにaを2147483647で初期化して、
aに1を足すと、-2147483648になって、
オーバフローになる。
0216名前は開発中のものです。2010/09/14(火) 11:36:59ID:pI9OYyYQ
>>209
そうだったのか、
個人業って無職だったのか。
それは知らなかった。。

前から気になっていたんだけど、
教えてくれてありがとう。

てか、ちょっと知識を知ってるからって偉そうにすんなよw

まあ、教えてくれたことには感謝するけどな。
0217名前は開発中のものです。2010/09/14(火) 11:40:19ID:hgp+4eCV
素人を装ってるな。
ワシの目はごまかされない!
0218名前は開発中のものです。2010/09/14(火) 11:44:15ID:QB7AcnS4
intのサイズは環境依存
ほとんどが4byteだけど
H8で組んでた時は2byteだったな
つか、解説するんならこれくらい知っとけw
0219名前は開発中のものです。2010/09/14(火) 11:48:01ID:pI9OYyYQ
ちなみに俺が個人業をやろうと思ったキッカケは、
サラリーマン時代に、
アフェリエイトをしたのがキッカケです。

それまで個人業を難しく考えていたけど、
わりと簡単に稼ぐことができたから。

だったら、WEBデザイナーとして
本格的に個人事業を開業してみようと思い、
知り合いの社長に教えてもらって事務所を立ち上げました。


まあ、最初はほとんど仕事がなくて苦労したけど、
人脈をうまく使って
「仕事回してください。」とか言いまくっていたら、
少し仕事が入って、
また、そこから仕事が入る。

仕事をやればやるほど仕事が入ってきて、
実績がついて、口コミでまた仕事が入ってくる。


しかも、一人でやってるから全部自分の報酬なので
やればやるほど稼げる。
給料なんてサラリーマン時代では、考えられない金額です。

もうサラリーマンには戻れません(^^;

ちなみに俺、FXとかもやってたりする。
0220名前は開発中のものです。2010/09/14(火) 11:59:33ID:pI9OYyYQ
前は個人業でバリバリ稼いでいたけど、
もう、いっぱい稼いでしまったら、
何かやる気がなくなってしまってね。

今では、月に1、2件やる程度です。

個人業な生活ってすごく退屈。。

そりゃ、バリバリ仕事をやっている頃は、
すごく忙しくて、
一ヶ月でどこまで稼げるか挑戦してみたこともあるけど、
たくさん稼いでしまったら、
これ以上稼ぐ気になれなくてね。

サラリーマンと違って、
自宅が職場です。

お茶を出してくれる可愛いOLさんもいなければ、
同僚も上司もいない・・。

俺はいつも独り・・。

まあ、そんなわけだから、
こんな真昼間から2chやったりネトゲ三昧の生活を送っております。

同人ゲームが完成して、
そこそこ売れたら、
別会社を作ってゲーム制作事業をやってみたいとか真剣に考えてるよ。
0221名前は開発中のものです。2010/09/14(火) 12:06:40ID:pI9OYyYQ
俺の銀行通帳みせてやろうか?

今度オフ会でも開いて見せてあげるよ。

多分、その金額に誰もが驚くと思う。
0222名前は開発中のものです。2010/09/14(火) 12:07:50ID:FW6HEKO5
>正確にはint型は32ビットです。
正確にも4Byteだろw
4[Byte]*8[Bit]=32[Bit]だぜ?
こんな計算も出来んのか

まぁ>>218が正解なんだけどな

何でこう知ったかぶろうとするかなー
0223名前は開発中のものです。2010/09/14(火) 12:16:35ID:BvU3tXWR
64bit環境なら8バイトだぜ
ちなみに昔作った奴移植するのどうするか途方にくれてるぜ
0224名前は開発中のものです。2010/09/14(火) 12:29:22ID:XpWGSie1
気になったのでちょっとだけ補足。

C言語の規格としてはint型のサイズは処理系依存ってことになっていますが、最低限保証されているのは2byteです。
32bitの処理系はほぼ4byteになるようですが、組み込み系ではまだまだ2byteでまかり通っているところもあるようです。

intで宣言した実体が1byteになるとしたら、それは少なくともC99の仕様に則っているC言語ではありませんね。
0225名前は開発中のものです。2010/09/14(火) 13:55:46ID:WJ31r0pz
>>215
こんなことで関心するとは、kazukiは本当にコンピュータやプログラミングに関して無能なんだな
1byteなら0〜255のような256通りの数値しか格納できない、1000や10000などの値を使用できない
1byte,1bitの意味が理解できないとかC言語プログラミング学んでて恥ずかしいレベルだ
0226名前は開発中のものです。2010/09/14(火) 14:38:45ID:DvriFlDD
昔はアセンブラを使わなきゃゲームを作れなかったから
C言語のそのへんはすぐに理解できたのに。

戻り値とかポインタとか、アセンブラでスタックやインデックスレジスタを知ってたから
一発で理解できた。
0227名前は開発中のものです。2010/09/14(火) 15:38:18ID:XWdrVcFF
修正したの初期化だけじゃんか
普段なら適当なこと言っても困るのは本人だし、突っ込んでる人も遊び半分だからいいけど
言語解説とかは困るのは参考にした初心者の人だからマジで
int main(void){
  int a,b;
  {
    b=0;
    a=50*(b+10);
    printf("%d,",a);
  }
  printf("%d,\n",a);

  return 0;
}
> このようなコードを書いた場合、ローカル変数は関数を抜けた時に解放されるため、
> aとbの領域は空っぽの状態にリセットされます。
実行結果が「500,500」になりました。値生きてます。
話の流れ的にここは「関数」というよか「ブロック」じゃないの?

a=50*(b+10);
> 10の変数(数値)をbの領域に代入します。
> この時点では、aの領域は空っぽです。
10は変数なの?+は代入の機能持ってんの?変数bのメモリ領域に10が入ってるけどどうしてくれんのこれ?

あと初期化についてだけど
僕の環境では初期化しないとコンパイルの時に警告 演算に使用とすると強制終了。
でもリリースではコンパイル警告後 演算は通った。
初期化しない状態では2015115236が入ってた。
偶然でた値なのか決まってる値なのかは別として、これを値として扱える以上は空っぽではないんじゃないの?

初心者なめすぎじゃね?初心者でもこの程度は気になるほどには賢い人は賢いよ
0228名前は開発中のものです。2010/09/14(火) 16:07:16ID:FW6HEKO5
>>227検証乙

さて、>>1>>142に指摘された点がどこかようやくわかったかな?
あんたの間違いはスコープの理解と変数の寿命だよ
初期化とかよりよっぽど致命的だよね

とりあえずこのソース実行結果どうなると思う?
答えてみなよ

#include <stdio.h>
int main(){
int a,b;
printf("%d %d",a,b);
{
b=0;
a=50*(b+10);
printf("%d %d",a,b);
}
printf("%d %d",a,b);
return 0;
}

あのページの解説の通りに動くとしたら
1行目: 空っぽ 空っぽ
2行目: 500 10
3行目: 空っぽ 空っぽ
になるね
そもそもコンパイルエラーになるっていってるが、
警告は出るかも知らんがエラー無しで通るよな?
0229名前は開発中のものです。2010/09/14(火) 16:26:25ID:6IA8IO5N
>>226

俺は逆に混乱したw

なんでポインタに1加算すると1バイト次のアドレスじゃなくて数バイト先を指すんだよ! とかw
0230名前は開発中のものです。2010/09/14(火) 16:30:05ID:pI9OYyYQ
>>228
いや。それはもういい。

とりあえず、先に進もう。

こんなところでマゴマゴしてたら、
C++の解説がいつになるかわからんw

俺は早く、ゲームプログラミングを解説したいのだ。

なので、現在、構造体の解説を作ってる。
0231名前は開発中のものです。2010/09/14(火) 16:34:02ID:pI9OYyYQ
>>227
コンパイラによって違うんだって。

とりあえず、間違ったソースを組まなければいいだけの話でしょ。


そんな、コンパイラ別に解説してたら日が暮れるってのww
0232名前は開発中のものです。2010/09/14(火) 16:42:01ID:kwiSf8mq
コンパイラごとに違うならなおさら「どのコンパイラでも同じように動作する」ように
説明しないとまずいだろ。

>>230
それはもういいとか言っちゃう自信はどこから来てるんだろうか。

正直説明サイトを作ってくれるのはありがたい。
ただ、致命的な嘘をさも正常なように言い放っちゃってるサイトが
google検索に引っかかるようになったりするとそれはもうテロ行為だよw
0233名前は開発中のものです。2010/09/14(火) 16:42:29ID:XWdrVcFF
>>231
解説なんてやめちまえよwww
0234名前は開発中のものです。2010/09/14(火) 16:47:27ID:FW6HEKO5
>>230
じゃーCの解説せずにゲーム解説からやれば?
てか製作はどうしたの?
ここって解説スレだっけ?

てかなんでゲーム製作に解説が必要なの?
それを2chに晒して何が目的なの?
ゲーム製作しつつ質問あったら解説とかその辺は良いと思うが
今のところゲーム製作の過程がまったくないんだが?
プログラムの勉強からするなら解説する必要なくね?

ぶっちゃけ、今どこまで製作進んでるのか、からの報告で良いよ

ただし、かまってちゃんは簡便な
0235名前は開発中のものです。2010/09/14(火) 16:51:04ID:xtJ1rdKJ
これぐらいのレベルからやり直した方がいい。
http://9cguide.appspot.com/
間違って覚えると後が大変。
0236名前は開発中のものです。2010/09/14(火) 16:53:43ID:RsxN/3Kk
>PS版のドラクエWクラスのRPGぐらいなら作れるようになってるよ。
↑9月7日の発言
>もうミニゲームをいくつか完成させました。
↑9月12日の発言
0237名前は開発中のものです。2010/09/14(火) 16:55:45ID:LRy0+Jlt
ゲームまだぁ?
0238名前は開発中のものです。2010/09/14(火) 16:59:12ID:WJ31r0pz
>>232
嘘でもデタラメでもどうでもいいんだよ
彼の本音は、教えたり解説したりじゃなくてゲーム作って商売することだから
現にゲーム会社設立して本格的に事業やりたいと言っている訳だし
当然、資金や協力者を集めないといけない
それなのに、正直に間違いを認めてたら信頼無くすし誰も協力してくれなくなる
嘘でも自分が優秀な人材であると主張し信頼を得ないとお金儲け出来なくなるでしょ
■ このスレッドは過去ログ倉庫に格納されています