1人でゲームが作れるように修行します。2 (487レス)
1人でゲームが作れるように修行します。2 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
74: 名前は開発中のものです。 [sage] 2010/09/06(月) 06:18:19 ID:WWj0DWld ・Vector3.hのクラス定義内にて、 static float frametime; ・適当なcppにて、float Vector3::frametime=初期値; ということがしたいのかな? http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/74
75: SGGK ◆6pZCoAtaxk [sage] 2010/09/06(月) 23:10:19 ID:5jVgy4R8 >>74 その通りです。 ただVector3.hでは、クラスの宣言や定義はしていなくて、ベクトルを表す構造体などを引数にしてベクトルを表す構造体をreturnする関数を宣言するのみ。 そうすればベクトル関係の関数は外部関数になってどのcppファイルからでも使えるかなというのを期待して書いてます。 そしてVector3.cppでその関数の定義をしようとすると関数内のframetimeという変数がメインループで計算するframetimeと名前を同じにしても このままでは中身が別物なはずなので、Vector3.hかframetimeを使うcppファイルのどこかで1度だけ frametimeを定義して、他の残りについては、extern float frametime;とすれば動きそうだと思ったわけです。 externにしたのは、cppファイルが複数あるからstaticよりこちらがいいかなと思っただけであまり自信無し。 「extern static 違い C言語」で検索するとろいろ出てきて読むと自信無くなってきたけど なんとかトライしてみます。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/75
79: SGGK ◆6pZCoAtaxk [sage] 2010/09/12(日) 23:34:04 ID:zuikLtmE ヘッダファイルあと残り1つ。 これは選手の移動関数を定義してるファイルだけど、気になる箇所があった。 今のプログラムは、どのような速度のパソコンでも60Hzで1フレーム時間あたりの移動量を1〜20ドットにしたい場合の移動量を 20個の配列を用意して入れてるんだけど、これが外部の移動関数から読めてる。 …というのは知ってたけどそういえばextern使ってないのに何故だろうと思い、14歳わくわくC++を調べてみると、 メンバ関数やメンバ変数にstaticを付けるとグローバルな関数、変数扱いに出来るとのこと。 そして呼び出すときには、クラス名::変数または関数とすればよいらしい。 さらに変数の場合は、外部に実体の定義が必要。 忘れてた…。 これは>>74氏のそのままでOKではないか〜!ということでextern無しで書くことにした。 よって>>73で言ってた >ベクトル計算用関数の引数を増やして、その引数に値経由でframetimeを渡せないかと も中止。 とりあえず、最後に残ったヘッダファイルにある移動関数の一つを書き直してコンパイルしてみたら通った。 移動関数はあと3つ残ってる。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/79
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s