在基本字母按游戏中按正确的字母时,如何删除椭圆?

时间:2019-01-11 23:27:06

标签: processing

我是编程的完整初学者,它是用于处理类的任务的,因此,如果这确实很明显,我们深感抱歉。对于此任务,我正在做一个简单的游戏,圆圈朝顶部漂浮,您必须键入屏幕上显示的字母才能一次弹出其中的一个。我完成了程序的大多数部分,除了使之正确,因此每个正确的字母笔划都删除了一个圆圈。我将如何去做?

int l=97;
int s=0;
int visa = 0;

Bubble[] bubbles = new Bubble[20]; 

void setup(){
    size(640,360,P2D);

    for (int i = 0; i< bubbles.length; i++){ 
        bubbles [i] = new Bubble (random(40,40));
    }
}

void draw(){
    background(255);
    char c=char(l);
    fill(0, 102, 153);
    textSize(22);
    text("Press this letter:  "+c,160, 100);//text(stringdata, x, y, width, height)

    if(millis()< 300000000&&key==c)//30 seconds
    {
        l=int(random(97,122));s++;
    }//here is where the score gets added! s++
    //random(low, high)

    for (int i = 0; i < bubbles.length; i++){

        bubbles[i].display();
        bubbles[i].acsend();
        bubbles[i].top();
    }
}
class Bubble{
    float x;
    float y;
    float diameter;
    float yspeed;

    Bubble(float tempD){
        x =  random(width);
        y = height;
        diameter = tempD;
        yspeed = random(0.5,1.5);
    }

    void display(){
        stroke(255);
        fill(60,120,200,100);
        ellipse(x,y,diameter,diameter);
    }

    void acsend(){
        if (y > 0){
            y = y - yspeed;
            x = x + random(-0.5, 0.5);
        }
    }

    void top(){
        if (y < diameter/2){
            y = height;
            x = random(width);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

将气泡的初始数量存储到变量中:

Bubble[] bubbles = new Bubble[20]; 
int noOfBubbles = bubbles.length; 

使用keyPressed()来评估是否按下了正确的键。
减少气泡数,增加分数并创建一个新的随机字符:

void keyPressed() {
    char c=char(l);
    if (key == c) {

        if (noOfBubbles > 0) {
            noOfBubbles --;
            s ++;
            l=int(random(97,122));
        }
    }
}

仅绘制剩余的气泡数(for (int i = 0; i < noOfBubbles; i++)

void draw(){
    background(255);
    fill(0, 102, 153);

    textSize(22);
    char c=char(l);
    text("Press this letter:  "+c,160, 100);//text(stringdata, x, y, width, height)

    for (int i = 0; i < noOfBubbles; i++){

        bubbles[i].display();
        bubbles[i].acsend();
        bubbles[i].top();
    }
}