Object 处理:传入对象

Object 处理:传入对象,object,processing,Object,Processing,我有一个机器人类,宝石类,和一个主程序 在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); } 然后

我有一个机器人类,宝石类,和一个主程序

在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);
}
然后在机器人类中,我得到:

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;
}
void seek(浮点xTarg,浮点yTarg)
{
如果(防抱死制动系统(xTarg-xLoc)xLoc)
xDir=1;
否则如果(xTargyLoc)
yDir=1;
else if(yTarg
基本上,当屏幕上出现宝石时,机器人会移动到宝石

我被告知将gem1传递到bot的seek方法中,而不是使用
bot1.seek(gem1.xLoc,gem1.yLoc)
,但我不知道该怎么做

像这样:

void draw()
{
  if (seekGem)
     bot1.seek(gem1);
}
以及bot中的seek方法:

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;
}
void seek(Gem gemToSeek)
{
float xTarg=gemToSeek.xLoc;
浮动yTarg=gemToSeek.yLoc;
如果(防抱死制动系统(xTarg-xLoc)xLoc)
xDir=1;
否则如果(xTargyLoc)
yDir=1;
else if(yTarg
你能在代码中写下你的全局变量吗?将对象传递给函数意味着:您应该像这样更改seek函数定义:seek(Gem myobject)并使用:seek(gem1)调用它(但我认为gem1对象是您的全局变量之一,您不需要传递给函数:/)