我是C++的新手,我在通过构造函数设置类变量时遇到问题.
我将所有的.h和.cpp文件设置为我认为正确的方式.
但是我一直在第4行和第5行遇到错误.我使用的是Visual Studio 2013.错误说Vector3:'class'类型重定义.x,y,z不是Vector3类的非静态数据成员或基类.谢谢你的建议.
Vector3.h:
#ifndef VECTOR3_H
#define VECTOR3_H
#include <iostream>
#include <array>
class Vector3
{
public:
float x;
float y;
float z;
Vector3(float _x, float _y, float _z);
Vector3(const Vector3 &v);
Vector3(Vector3 start, Vector3 end);
Vector3 add(Vector3 v);
Vector3 sub(Vector3 v);
Vector3 scale(float scalar);
float length();
void normalize();
float dot(Vector3 v3);
float angleTo(Vector3 n);
Vector3 cross(Vector3 v2);
static bool isInFront(Vector3 front, Vector3 location, Vector3 target);
static Vector3 findNormal(Vector3 points[]);
};
#endif
Run Code Online (Sandbox Code Playgroud)
Vector3.cpp:
#include "Vector3.h"
class Vector3
{ // …Run Code Online (Sandbox Code Playgroud) 我很难理解如何在小行星克隆中移动我的宇宙飞船.我可以沿着世界y轴移动它,但是当我旋转飞船时,它不会在它自己的相对y轴内向前移动.我已经评论了if语句用于宇宙飞船运动的代码.它接近update()方法的底部.谢谢你的建议.
#include "Game.h"
Game::Game()
: mUColorProgram(0)
, mVColorProgram(0)
, mAsteroid(NULL)
, mSpaceship(NULL)
, mManualRotation(0.0f)
, mManualTranslation(0.0f, 0.0f, 0.0f)
, mSpinnerAngle(0.0f)
, mSpinnerAngularVelocity(glm::radians(90.0f))
, mMinX(-1.0f)
, mMinY(-1.0f)
, mMaxX(1.0f)
, mMaxY(1.0f)
, mBouncerPosition(0.0f, 0.0f, 0.0f)
, mBouncerVelocity(0.0f, 0.0f, 0.0f)
, mMinScale(0.5f)
, mMaxScale(5.0f)
, mCurrScale(mMinScale)
, mScalingSpeed(2.0f)
, mBlendColor1(1.0f, 1.0f, 0.0f, 1.0f)
, mBlendColor2(1.0f, 0.0f, 0.0f, 1.0f)
, mAlpha(1.0f)
, mBlendSpeed(-0.5f)
, mBlendedColor(mAlpha * mBlendColor1 + (1 - mAlpha) * mBlendColor2)
{
glsh::InitRandom(); // initialize random number generator
mBouncerPosition.x = glsh::Random(mMinX, …Run Code Online (Sandbox Code Playgroud)