KeyPressed BACKSPACE并删除一个形状

时间:2016-06-02 09:40:45

标签: processing shape backspace deleteallonsubmit

我已经为生成"创建了一个代码。 logo {喜欢这个http://ebologna.it/}(它在开始时并没有完成),我希望在按下一次BACKSPACE时我可以回到一个形状。就像我有我的代码一样,当我按Backspace时它会全部删除。

以下是代码:

 
select table1.ProductID
     , table1.Quantity
     , table2.Productname
     , table2.Desc
     , table2.Price
     , table2.Stock
     , table2.Image 
FROM table1 
JOIN table2 ON table1.productid=table2.productid

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您希望能够更改屏幕上的内容,您将不得不采用这种方法:

第1步:将您需要绘制的所有内容存储到数据结构中的屏幕上。对于您而言,这可能是ArrayList,其中包含您创建的Circle类的实例。

第2步:每次调用draw()时,通过调用background()函数清除以前的帧,然后将数据结构中的所有内容绘制到屏幕上。

第3步:要修改屏幕上的内容,只需修改数据结构中的内容即可。对于您,您可以删除Circle的最后位置中的ArrayList

答案 1 :(得分:0)

另一种选择是使用for循环遍历文本String的每个字符并绘制相应的形状。

for循环可能看起来很复杂,因为它的语法,但如果你把它看作是一个给定次数/步骤重复一组指令的方法,那也不算太糟糕。语法大致如下:

for( intial step ; condition to stop ; incrementation ){
//something to repeat while the condition to stop is still false
}
想到走10步,一步一步:

for(int step = 0 ; step < 10 ; step = step+1){
   println("step index: " + i); 
}

如果你一次只能做一步,你也可以跳:

for(int step = 0 ; step < 10 ; step = step+2){
       println("step index: " + i); 
    }

回到挑战中,您可以使用for循环遍历文本的每个字符。例如:

String text = "go";
for(int letterIndex = 0 ; letterIndex < text.length(); letterIndex = letterIndex + 1){
    //get the character
    char letter = text.charAt(letterIndex);
    println(letter);
}

上面的代码片段使用String的length()函数来检索字符数,并使用charAt()通过字符串中的索引检索字符

应用于您的代码:

import controlP5.*;

ControlP5 cp5;



void setup() {
   size(700,800);

  PFont font = createFont("arial",20);

  cp5 = new ControlP5(this);

  cp5.addTextfield("INPUT")
     .setPosition(width/2-100,600)
     .setSize(200,40)
     .setFont(font)
     .setFocus(true)
     .setColor(color(255,255,255));

  textFont(font);
  background(0);
  noStroke();
}
void draw() {
  background (0);
  //get the text string
  String text = cp5.get(Textfield.class,"INPUT").getText();
  //loop through each character
  for(int letterIndex = 0 ; letterIndex < text.length(); letterIndex = letterIndex + 1){
    //get the character
    char letter = text.charAt(letterIndex);
    //draw the coresponding shape
    if (letter == 'o' || letter == 'O') {
      fill(205, 152, 59, 100);
      ellipse(width/2, height/2, 50, 50);
    } 
    if (letter == 'b' || letter == 'B') {
      fill(20, 84, 42, 100);
      rectMode(CENTER);
      rect(width/2, height/2, 50, 50);
    } 
  }
}