在createShape()中使用字符串而不是形状

时间:2018-11-13 01:36:11

标签: java processing

我想将字符串数组传递给new YT.Player(video, { width: 606, height: 344, new YT.Player(video, { width: "606", height: "344", 中的函数,并让该函数使用第一个参数指定要绘制的形状类型来绘制每个形状。这是我的代码(在draw()内部):

draw()

如果语句使用不同数量的参数,则省略号表示其他含义。我知道以这种方式将值传递给createShape()似乎是多余的,但这是我可以找到达到目的的最佳方法,并且我想知道如何使其工作。目前,此代码给我一个错误,并说params = new String[]{"LINE","0","0","2","3"}; if (params.length == 2) { createShape(params[0],float(params[1])); } else if (params.length == 3) { createShape(params[0],float(params[1]),float(params[2])); } ... } else if (params.length == 5) { createShape(params[0],float(params[1]),float(params[2]),float(params[3]),float(params[4])); } ...

有什么办法解决这个问题,还是我必须为每种形状指定一个案例?

1 个答案:

答案 0 :(得分:0)

您不能开箱即用,但是可以执行以下操作:

void createMyShape(String[] myArray){
  if(myArray[0].equals("LINE")){
    Shape s = createShape(LINE);
    s.vertex(int(myArray[1]), int(myArray[2]));
    s.vertex(int(myArray[3]), int(myArray[4]));
    s.endShape();
  }
  else if ...
}

此函数解析myArray参数,并使用if语句采取正确的操作来创建形状。它还使用int()函数来解析字符串数组。

请注意,这不是一个很好的设计。您可能不应该为此使用String数组。最好使用类来封装数据。