如何为该p5 Javascript草图创建工作菜单屏幕?

时间:2019-01-08 13:18:57

标签: javascript html processing p5.js

我创建了多个不同版本的Pong,并将它们存储为不同的功能。然后,我尝试使用屏幕上的按钮访问这些功能,每次按下按钮都映射到其相应功能。但是,当我单击其中一个按钮时,没有加载任何功能,并且用户只能看到菜单屏幕。基本上什么也没发生。

1 个答案:

答案 0 :(得分:2)

您非常亲密,您有正确的主意。我所做的是我已经设置了如何仅使用您的Epilepsymode代码来执行此操作(主要是因为我很好奇看到的样子):D

我添加了一个标志,因此您可以知道哪个游戏当前处于活动状态,您必须对所有游戏进行类似的操作,并在它们不活动时禁用其相应的标志。

let isEpilepsyMode = false;
let epilepsyMode;  // represents the epilepseMode object
function setup() {
  createCanvas(400,400)
  background(0)
  menu();
}

function draw() {
  if (isEpilepsyMode) {
    epilepsyMode.draw();
  }
}

当您单击按钮时,我添加了一个新的处理程序:

  button5.mousePressed(beginEpilepsyMode);

处理程序:

function beginEpilepsyMode() {
    isEpilepsyMode = true;
    epilepsyMode = new Epilepsymode();
    epilepsyMode.setup();
}

设置和绘制是Epilepsymode对象的方法,因此为了编写epilepsyMode.setup()

function Epilepsymode() {
    clear();
    hideButtons();
    let Lscore = 0;
    let Rscore = 0;
    let r2 = 0;
    let b2 = 255;
    let button;
    balls = []

    this.setup = function() {
        createCanvas(800, 400);
        menu();
        ball = new Ball();
        left = new Paddle(true);
        right = new Paddle(false);

        for (let i = 0; i <= 1000; i++) {
            balls[i] = new Ball()
        }
    }

    this.draw = function() {
        background(0);
        r2 = map(right.y, 0, 400, 255, 0)
        b2 -= map(left.y, 400, 800, 0, 255)
        background(r2, 0, b2)

        for (let i = 0; i < balls.length; i++) {
            balls[i].update();
            balls[i].edges();
            balls[i].show();
            balls[i].checkPaddleRight(right)
            balls[i].checkPaddleLeft(left)
        }
        ball.checkPaddleRight(right);
        ball.checkPaddleLeft(left);

        left.show();
        right.show();
        left.update();
        right.update();

        ball.update();
        ball.edges();
        ball.show();

        fill(255);
        textSize(32);
        text(Lscore, 32, 40);
        text(Rscore, width - 64, 40);

    }

因此,如果转到this sketch,您会看到癫痫按钮产生了游戏的癫痫病版本。