Object 处理:传入对象
我有一个机器人类,宝石类,和一个主程序 在Gem类中: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(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对象是您的全局变量之一,您不需要传递给函数:/)