我有一个Bot类,Gem类和一个主程序。
在Gem课程中:
Gem(float x, float y)
{
xLoc = x;
yLoc = y;
}
在主程序中:
void mousePressed()
{
gem1 = new Gem(mouseX, mouseY);
seekGem = true;
}
void draw()
{
if (seekGem)
bot1.seek(gem1.xLoc, gem1.yLoc);
}
然后在Bot课程中我得到了:
void seek(float xTarg, float yTarg)
{
if (abs(xTarg - xLoc) < bodyW/4)
xDir = 0;
else if (xTarg > xLoc)
xDir = 1;
else if (xTarg < xLoc)
xDir = -1;
xLoc = xLoc + xDir * speed;
if (abs(yTarg - yLoc) < bodyH/4)
yDir = 0;
else if (yTarg > yLoc)
yDir = 1;
else if (yTarg < yLoc)
yDir = -1;
yLoc = yLoc + yDir * speed;
}
基本上,当宝石出现在屏幕上时,机器人会移动到宝石。
我被告知要将gem1传递给机器人的搜索方法而不是bot1.seek(gem1.xLoc, gem1.yLoc)
,但我不知道该怎么做。
答案 0 :(得分:0)
void draw()
{
if (seekGem)
bot1.seek(gem1);
}
和bot中的搜索方法:
void seek(Gem gemToSeek)
{
float xTarg = gemToSeek.xLoc;
float yTarg = gemToSeek.yLoc;
if (abs(xTarg - xLoc) < bodyW/4)
xDir = 0;
else if (xTarg > xLoc)
xDir = 1;
else if (xTarg < xLoc)
xDir = -1;
xLoc = xLoc + xDir * speed;
if (abs(yTarg - yLoc) < bodyH/4)
yDir = 0;
else if (yTarg > yLoc)
yDir = 1;
else if (yTarg < yLoc)
yDir = -1;
yLoc = yLoc + yDir * speed;
}