C++ 将变量从多个类传递给函数
我正在做一个简单的游戏来捕捉果实,但是我在冲突逻辑和/或使用类中的变量方面遇到了麻烦C++ 将变量从多个类传递给函数,c++,function,class,object,variables,C++,Function,Class,Object,Variables,我正在做一个简单的游戏来捕捉果实,但是我在冲突逻辑和/或使用类中的变量方面遇到了麻烦 class row { public: int x,y; void setpoint (int xi, int yi) { x=xi; y=yi; } float DownSpeed = 5; void down () { y = y+DownSpeed; if (y==1000) { y=0;
class row
{
public:
int x,y;
void setpoint (int xi, int yi)
{
x=xi;
y=yi;
}
float DownSpeed = 5;
void down () {
y = y+DownSpeed;
if (y==1000) {
y=0;
}
}
};
class fruit:public row
{
public:
void draw()
{
setcolor(11);
circle(x,y,20);
}
};
然后我有其他类来创建catcher,如下所示:
class catcher
{
protected:
float moveSpeed = 5;
public:
float catchX, catchY;
void setpoint (int xi, int yi)
{
catchX=xi;
catchY=yi;
}
void MoveLeft () {
catchX = catchX - moveSpeed;}
void MoveRight () {
catchX = catchX + moveSpeed;}
};
class character:public catcher
{
public:
void draw()
{
setcolor(15);
circle(catchX,catchY,50);
}
};
如何调用两个圆的变量来创建碰撞函数?很抱歉,如果代码混乱且无效,我只是刚开始,我被卡住了。谢谢 由于这两组变量都位于类的公共部分,因此您应该能够创建独立于任何一个类的函数,并且只要声明了变量,就应该能够访问它们
void CheckCollision(float x, float y, float catchX, float catchY)
{
If(y =< catchY + 5)
{
//y resets
}
}
void CheckCollision(float x,float y,float catchX,float catchY)
{
如果(y=<朗朗上口+5)
{
//y重置
}
}
不过,你应该检查它是否也在某个x范围内。我希望这能解决您的问题。因为所有函数和变量都是公共的。从修改x、catchX的函数返回x、catchX的值。修改值后使用绘图函数 例如,像这样修改down函数
int down()
{
y = y+DownSpeed;
if (y==1000)
{
y=0;
}
return y;
}
像wise那样修改另一个函数,最终将得到x,y和catchX,catchY值。使用这些值创建collison函数。谢谢您的回答!不幸的是,我仍然无法让它工作。我将x、y、catchX和catchY分别声明为a、b、c、d,在新变量中插入一些数字,并将其用于a.setpoint(水果)和CH.setpoint(捕捉器),如下所示:a.setpoint(a,b)。然后我对碰撞函数使用了一个bcd,但它仍然不起作用。出了什么问题?你是如何使用这些课程的?您当前没有对象,只有定义