处理 - If 语句和 id
Processing - If statement and ids
我是一名意大利学生,我是编程新手。我的学校项目需要你的帮助。
我正在使用 Daniel Shiffman 的教程制作一个 blob 跟踪程序。目前我在屏幕上有 2 个斑点。我用 2 个 ID 来识别它们:数字 0
和数字 1
。
我需要对这些 blob 设置一些条件:如果一个 blob 在屏幕的某个部分而另一个在另一部分,我需要调用一个函数。
不知道怎么把两个id的if
条件分开。下面是我想要实现的一些伪代码:
for (id==0)
if (...) and
for (id==1)
if(...) then {
void()
}
非常感谢任何帮助!
对于您所描述的示例,您可以在一个 if
语句中使用 &&
运算符来实现此目的。
首先将要测试的条件分配给boolean
变量。例如,创建 boolean
变量 id0IsThere
和 id1IsThere
,如果 blob 位于您希望它们所在的位置,则将它们设置为 true
。然后使用以下 if
声明:
if (id0IsThere && id1IsThere) {
yourFunction();
}
&&
运算符意味着 if
语句中执行 yourFunction()
的代码仅在两个条件都为真时才执行。在这种情况下,如果两个 blob 都处于您希望它们处于的位置。希望对您有所帮助。在此处阅读有关 if
语句和 &&
运算符的更多信息:
我真的不知道当所需函数触发时您希望 blob 位于何处,但我可以尝试给您举个例子...
- Blob
将某种位置变量(在本例中为 PVector)分配给您的 blob 对象。
class Blob {
PVector position;
Blob (PVector position) {
this.position = position;
}
void update() {
*random movements, etc...*
}
}
- 创建两个 blob 对象
创建两个对象并为每个对象分配一个位置。
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: 我在没有开始处理的情况下写了这个答案。该代码肯定有几个打字错误。
我是一名意大利学生,我是编程新手。我的学校项目需要你的帮助。
我正在使用 Daniel Shiffman 的教程制作一个 blob 跟踪程序。目前我在屏幕上有 2 个斑点。我用 2 个 ID 来识别它们:数字 0
和数字 1
。
我需要对这些 blob 设置一些条件:如果一个 blob 在屏幕的某个部分而另一个在另一部分,我需要调用一个函数。
不知道怎么把两个id的if
条件分开。下面是我想要实现的一些伪代码:
for (id==0)
if (...) and
for (id==1)
if(...) then {
void()
}
非常感谢任何帮助!
对于您所描述的示例,您可以在一个 if
语句中使用 &&
运算符来实现此目的。
首先将要测试的条件分配给boolean
变量。例如,创建 boolean
变量 id0IsThere
和 id1IsThere
,如果 blob 位于您希望它们所在的位置,则将它们设置为 true
。然后使用以下 if
声明:
if (id0IsThere && id1IsThere) {
yourFunction();
}
&&
运算符意味着 if
语句中执行 yourFunction()
的代码仅在两个条件都为真时才执行。在这种情况下,如果两个 blob 都处于您希望它们处于的位置。希望对您有所帮助。在此处阅读有关 if
语句和 &&
运算符的更多信息:
我真的不知道当所需函数触发时您希望 blob 位于何处,但我可以尝试给您举个例子...
- Blob
将某种位置变量(在本例中为 PVector)分配给您的 blob 对象。
class Blob {
PVector position;
Blob (PVector position) {
this.position = position;
}
void update() {
*random movements, etc...*
}
}
- 创建两个 blob 对象
创建两个对象并为每个对象分配一个位置。
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: 我在没有开始处理的情况下写了这个答案。该代码肯定有几个打字错误。