我是一名意大利学生,我是编程新手。我需要你帮助学校的项目。
我正在使用Daniel Shiffman的教程制作blob跟踪程序。目前我在屏幕上有2个blob。我使用2个ID识别他们:号码0
和号码1
。
我需要在这些blob上设置一些条件:如果一个blob在屏幕的某个部分而另一个在另一个部分,我需要调用一个函数。
我不知道如何分别为这两个ID设置if
条件。下面是我想要实现的一些伪代码:
for (id==0)
if (...) and
for (id==1)
if(...) then {
void()
}
我真的很感激任何帮助!
答案 0 :(得分:2)
当所需的功能触发时,我真的不知道你想要blob的位置,但我可以尝试给你一个例子...
将某种位置变量(在本例中为PVector)分配给blob对象。
class Blob {
PVector position;
Blob (PVector position) {
this.position = position;
}
void update() {
*random movements, etc...*
}
}
创建两个对象并为每个对象指定一个位置。
Blob[] blobs = new Blob[2];
void setup() {
size(400, 400);
blobs[0] = new Blob(5, new PVector(40, 40));
blobs[1] = new Blob(13, new PVector(100, 100));
}
我检查blob [0]是否位于屏幕左侧,blob [1]是否位于屏幕右侧。如果它们同时 desiredFunction(); 将会触发。
void draw() {
for (int i = 0; i < blobs.length; i++) {
blobs.update();
}
if (blobs[0].position.x < (width / 2) && blobs[1].position.x < (width / 2) {
desiredFunction();
}
}
这只是一个例子。您当然可以检查屏幕的其他部分而不是左右部分。您也可以在Blob上使用ID而不是数组,我只是认为在这种情况下使用数组会更好。
PS:我没有开始处理就写了这个答案。代码肯定有几个输入错误。
答案 1 :(得分:0)
对于您所描述的示例,您可以在一个&&
语句中使用if
运算符来实现此目的。
首先将要测试的条件分配给boolean
个变量。例如,创建boolean
变量id0IsThere
和id1IsThere
,如果blob位于您希望它们所在的位置,则将它们设置为true
。然后使用关注if
声明:
if (id0IsThere && id1IsThere) {
yourFunction();
}
&&
运算符意味着执行if
的{{1}}语句中的代码仅在两个条件均为真时执行。在这种情况下,如果两个blob都在你希望它们所在的位置。希望有所帮助。在此处详细了解yourFunction()
语句和if
运算符: