1人でゲームが作れるように修行します。2 (487レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
70(2): SGGK ◆6pZCoAtaxk [sage] 2010/09/02(木) 23:42:53 ID:N3a4x6pe(1) AAS
とりあえずベクトル関係の変数と関数を宣言したヘッダーファイル、vector3.hと
それらの変数や関数を定義したファイル、vector3.cppを作成してみた。
とは言うものの、中身は変数を3つ持つ構造体とその構造体の型を持つ変数を引数にもつ関数で
関数は、
ベクトル=ベクトル+ベクトル
微小時間後の位置を示すベクトル=現在の位置を示すベクトル+微小時間xその時点での速度を表すベクトル
の2式だけ。
この微小時間がいわゆるフレームタイムであり、今までのプログラムだと
メインループ関数の中で、DXライブラリのScreenFlip()関数を30回ループしてその平均を
フレームタイムとしてる。ScreenFlip()関数は画面のリフレッシュレートとやらと同期して動くらしいので
そういうやり方でフレームタイムが計算できるらしい。
でも、これだとメインループ関数の外側で宣言・定義されてる微小時間後の位置を示すベクトルを計算するための
関数に必要な微小時間(フレームタイム)が読み取れないと予想。
とりあえず、30回ループする部分を関数にして、vector3.h、vector3.cppで宣言・定義して、
その30回ループする部分を関数にしたのをメインループで呼び出してなんとかできないかと思ったところで終了。
72: SGGK ◆6pZCoAtaxk [sage] 2010/09/05(日) 00:15:21 ID:t7yjfHHg(1) AAS
>>7171(1): 名前は開発中のものです。 [sage] 2010/09/04(土) 10:45:00 ID:BWH+wHQ4(1) AAS
>>69
> + の意味を定義しなおす機能があるようなので、これかなと思ったけど、あまりにも内容が難しいので、諦める。
class Vector3{
public:
float x;
Vector3(){}
Vector3(float x_) : x(x_){}
Vector3 operator+(Vector3 &obj){
return Vector3(x + obj.x);
}
};
class A{
public:
A(float x) : vec(x){}
Vector3 vec;
};
void main(){
A a(1),b(2);
a.vec = a.vec + b.vec;
cout << a.vec.x << endl;
}
こういう事?
operator+はその性質上、returnで新しいクラスを作る必要があるから処理速度の面で微妙
俺だったら使わない
す…凄いです。そうです!そのoperatorがなんとかというそれでした。
まだ自分は答えを見ても何がわからないかもわからない初心レベルですが感謝します。
処理速度が微妙であるとのコメントを参考にして、なんとか>70のやり方(C言語風?)でやれるよう頑張ってみます。
73(1): SGGK ◆6pZCoAtaxk [sage] 2010/09/05(日) 23:38:53 ID:glSoiJ6G(1) AAS
>>70の下から4行に書いたやり方は諦める事にした。
vector3.hにfloat frametime=0;と書いてコンパイルすると
frametimeは既に定義されてると言う内容のエラーが続々発生。
これは、vector3.hがいろんなcppファイルのヘッダーファイルにインクルードされてるからだろうと予想。
float frametime;と書き直しても同じ結果。初期化の有無は関係なかった様子。
vector3.hの中でfloat frametime;と書いておき、他のcppファイルでframetimeを使いたい場合には、
そのcppファイルのヘッダーファイルでなく、cppファイルの上の方の行でextern float frametime;と書いたら直った。
たぶんこれでframetimeは外部変数扱いになってどこからでも使える変数になったかなと思うけど、
ベクトル計算の関数定義の中で使おうと考えているframetimeの値が外部変数として渡すやり方だと
なんとなく後々の問題になりそうなので、ベクトル計算用関数の引数を増やして、その引数に値経由でframetimeを渡せないかと考えて終了。
そして、frametimeの外部変数化も中止。(あまり進まず。)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s