【问题标题】:How to add/remove a shape with a key press in Processing?如何在处理中通过按键添加/删除形状?
【发布时间】:2013-10-12 05:46:21
【问题描述】:

我想在处理中通过按下按钮来添加/删除椭圆。我使用 void keyPressed() 和 void keyReleased() 作为键。但是如何使用 if 语句来添加/删除椭圆?

现在我可以添加更多,并删除一些省略号。例如,如果我有一个,我可以按一个按钮,然后再有一个。或按一个按钮删除一个。但现在我想为每个椭圆使用不同的键集来移动这些椭圆(最多 4 个)。我该怎么做?

【问题讨论】:

    标签: processing ellipse


    【解决方案1】:

    您需要做的是在绘制椭圆时读取一个布尔值。如果是真的画它,如果不是不要!按键应该只是切换该布尔值。像这样:

    boolean iShouldDrawTheEllipse = true;
    void draw() {
      background(0);
      if(iShouldDrawTheEllipse) ellipse(50,50,10,10);
    }
    void keyPressed() {
      iShouldDrawTheEllipse = !iShouldDrawTheEllipse;
    }
    

    【讨论】:

    • 现在我可以添加更多,并删除一些省略号。例如,如果我有一个,我可以按一个按钮,然后再有一个。或按一个按钮删除一个。但现在我想为每个椭圆使用不同的键集来移动这些椭圆(最多 4 个)。我该怎么做?
    • 那么请把它变成一个不同的问题,如果它回答了你的第一个问题,请接受这个问题!
    【解决方案2】:

    您可以使用一些booleans 来确定您必须打印哪个椭圆,哪些不需要。

    例如

    void keyPressed(){
      switch(keyCode){
        case 'z':
          drawingFirstEllipse = !drawingFirstEllipse;
          break;
        case 'x':
          drawingSecondEllipse = !drawingSecondEllipse;
        break;
        case 'c':
          drawingThirdEllipse = !drawingThirdEllipse;
        break;
        case 'v':
          drawingFourthEllipse = !drawingFourthEllipse;
        break;
      }
    }
    

    然后在您的void draw(void) 方法中,您可以轻松绘制椭圆:

    void draw(){
      background(0);
      if(drawingFirstEllipse) ellipse(50, 50, 10, 10);
      if(drawingSecondEllipse) ellipse(50, 50, 70, 10);
      if(drawingThirdEllipse) ellipse(50, 50, 130, 10);
      if(drawingFourthEllipse) ellipse(50, 50, 190, 10);
    }
    

    希望对我有所帮助[;

    【讨论】:

      猜你喜欢
      • 2017-11-21
      • 2023-03-29
      • 2013-05-06
      • 2013-05-27
      • 2022-01-06
      • 1970-01-01
      • 2014-05-21
      • 2020-02-06
      • 2020-01-16
      相关资源
      最近更新 更多