Неполадка при запуске библиотеки oscp5 и рендерера P3D в процессе обработки 3.x - PullRequest
0 голосов
/ 23 ноября 2018

Я попытался отобразить данные с внешних устройств, чтобы нарисовать шаблоны.Но библиотека oscP5 и рендерер P3D не могли работать вместе при обработке как 3.3.7, так и 3.4, хотя они могут работать отдельно.Они могут работать при обработке 2.2.1, но 2.2.1 не поддерживает звуковую библиотеку.Кто-нибудь знает, как ее решить?

import oscP5.*;
OscP5 oscP5;

float value;

void setup(){
size(400, 400, P3D);
rectMode(CENTER);
oscP5 = new OscP5(this, 60000);
}

void oscEvent(OscMessage theOscMessage){
  if (theOscMessage.checkAddrPattern("/ATT")){
    value = theOscMessage.get(0).floatValue();
  }
}

void draw(){
  background(0);
  noStroke();
  fill(255);
  float r = second()/10;
  rotateZ(r);
  rect(width/2, height/2, value, value);
}

Ошибка при совместной работе oscP5 и P3D

1 Ответ

0 голосов
/ 25 ноября 2018

Я решил проблему.В моем исходном коде есть инициализация frameRate в setup () (минимальный пример показан ниже), я не осознавал, что именно это и стало причиной проблемы (потому что инициализация frameRate не вызывает ошибок, когда она работает с oscP5 или P3D соответственно), поэтомуЯ не написал это в своем вопросе.Теперь я удалил строку инициализации frameRate (frameRate (30)), после чего oscP5 и P3D могут окончательно работать вместе (даже я все еще в замешательстве, но это не влияет на мою текущую работу).

import oscP5.*;
OscP5 oscP5;

float value;

void setup(){
size(400, 400, P3D);
// the following line causes the error when oscP5 and P3D attempt to work together,
// but the code works when there is either oscP5 and P3D, oscP5 and frameRate or P3D and frameRate.
frameRate(30);
rectMode(CENTER);
oscP5 = new OscP5(this, 60000);
}

void oscEvent(OscMessage theOscMessage){
  if (theOscMessage.checkAddrPattern("/ATT")){
  value = theOscMessage.get(0).floatValue();
  }
}

void draw(){
  background(0);
  noStroke();
  fill(255);
  float r = second()/10;
  rotateZ(r);
  rect(width/2, height/2, value, value);
}

Надеюсь, чтоЯ объяснил ясно.:)

...