-2

私は、c++、opengl、および GLUT を使用して xcode でゲームを作成しています。独自の .h および .cpp ファイルを持つモデルがあり、それを描画しましたが、翻訳したいと考えています。カメラではなく銃だけを動かしたいので、gltranslate を使用できません。モデル ファイルは次のようになります。

//M4.h

extern unsigned int M4NumVerts;
extern float M4Verts [151248];
extern float M4Normals [140064];
extern float M4TexCoords [153680];

//M4.cpp

unsigned int M4NumVerts = 37812;

float M4Verts [151248] = {
// f 1/1/1 1582/2/1 4733/3/1
-0.00205801177070031, 0.0252329378141267, -0.266482197565778,
-0.00205347560809555, 0.015738643990207, -0.265580239652506,
-0.00908273427886488, 0.018200092410135, -0.264843587943923,...};

float M4Normals [140064] = {
// f 1/1/1 1582/2/1 4733/3/1
-0.1361849642872, -0.0937589754128839, -0.986236741371776,
-0.1361849642872, -0.0937589754128839, -0.986236741371776,
-0.1361849642872, -0.0937589754128839, -0.986236741371776,...};

float M4TexCoords [153680] = {
// f 1/1/1 1582/2/1 4733/3/1
0.110088, 0.229552,
0.108891, 0.243519,
0.119508, 0.240861,..};

私の数学クラスには、ポイントを次のように変換する関数があります。

void Math::translatePoint(float P[3], float x, float y, float z){
P[0] += x;
P[1] += y;
P[2] += z;
}

次のようにすると、関数は1つのポイントで機能します。

  Math::translatePoint(M4Verts[x], 0, 0, -0.5);

すべてのポイントで機能するようにしたいので、これを for ループにしました。

for (int x = 0; x < M4NumVerts; x++) {
    Math::translatePoint(M4Verts[x], 0, 0, -0.5);
}

私はこれを行いますが、うまくいかず、次のエラーが表示されます。

タイプ 'float *' のパラメーターをタイプ 'float' の Ivalue で初期化することはできません

私は周りを検索し、代わりに x を float として定義するなどの代替手段を見つけようとしましたが、何も試しませんでした。誰でも助けてくれますか。

4

1 に答える 1

1

translatePoints は、長さ 3 の float の配列を想定しています。しかし、単一の float を渡しています。したがって、コンパイラエラー。残念ながら、あなたが何をしようとしているのかわからないので、正しいコードを提案してください。

于 2013-11-01T19:13:49.903 に答える