处理 - 如果语句和ID

时间:2017-02-28 15:21:26

标签: processing

我是一名意大利学生,我是编程新手。我需要你帮助学校的项目。

我正在使用Daniel Shiffman的教程制作blob跟踪程序。目前我在屏幕上有2个blob。我使用2个ID识别他们:号码0和号码1

我需要在这些blob上设置一些条件:如果一个blob在屏幕的某个部分而另一个在另一个部分,我需要调用一个函数。

我不知道如何分别为这两个ID设置if条件。下面是我想要实现的一些伪代码:

for (id==0)
if (...) and
for (id==1)
if(...) then {
  void()
}

我真的很感激任何帮助!

2 个答案:

答案 0 :(得分:2)

当所需的功能触发时,我真的不知道你想要blob的位置,但我可以尝试给你一个例子...

  1. 斑点
  2. 将某种位置变量(在本例中为PVector)分配给blob对象。

    class Blob {
        PVector position;
    
        Blob (PVector position) {
            this.position = position;
        }
    
        void update() {
            *random movements, etc...*
        }
    }
    
    1. 创建两个blob对象
    2. 创建两个对象并为每个对象指定一个位置。

      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));
      }
      
      1. 检查blob是在屏幕的左侧还是右侧
      2. 我检查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();
            }
        }
        
        1. 记住
        2. 这只是一个例子。您当然可以检查屏幕的其他部分而不是左右部分。您也可以在Blob上使用ID而不是数组,我只是认为在这种情况下使用数组会更好。

          PS:我没有开始处理就写了这个答案。代码肯定有几个输入错误。

答案 1 :(得分:0)

对于您所描述的示例,您可以在一个&&语句中使用if运算符来实现此目的。

首先将要测试的条件分配给boolean个变量。例如,创建boolean变量id0IsThereid1IsThere,如果blob位于您希望它们所在的位置,则将它们设置为true。然后使用关注if声明:

if (id0IsThere && id1IsThere) {
  yourFunction();
}

&&运算符意味着执行if的{​​{1}}语句中的代码仅在两个条件均为真时执行。在这种情况下,如果两个blob都在你希望它们所在的位置。希望有所帮助。在此处详细了解yourFunction()语句和if运算符: