Я работаю над файлом обработки, он работает как караоке-система. Караоке - это фильм. Он также работает с очками.Обработка - void необходимо выполнить на keyPressed, но не задерживается
Перед началом игры. Я хочу показать изображение. Когда нажата любая клавиша, а затем отпустите, список действий должен начинаться оттуда. Я попытался использовать функцию if, нажав кнопку, но фильм (с музыкой), кажется, воспроизводится с самого начала. Он работает только тогда, когда вы держитесь за ключ. Я хочу, чтобы он работал, когда был освобожден случайный ключ.
Та часть, которая должна отображать до начала игры:
image(beginscherm, 0, 0, 1280, 720);
Та часть, которая должна работать после отпускания ключа от:
image(mov, 0, 0, 1280, 720);
Кто здесь, чтобы помочь мне. .
import ddf.minim.*;
import processing.video.*;
Movie mov;
Minim minim;
AudioInput input;
int inputNiveau;
float scoreH = 600;
boolean fotomaken = true;
Capture cam;
int x = 0;
PImage beginscherm;
void setup() {
size(1280, 720);
mov = new Movie(this, "karaoke_4.mp4");
mov.play();
cam = new Capture(this, 320, 180, 30);
cam.start();
textSize(28);
minim = new Minim (this);
input = minim.getLineIn (Minim.STEREO, 512);
beginscherm = loadImage("beginscherm.jpg");
}
void movieEvent(Movie m) {
m.read();
}
void draw() {
image(beginscherm, 0, 0, 1280, 720);
image(mov, 0, 0, 1280, 720);
if (cam.available()) {
cam.read();
}
if ((scoreH >= 448.98) && (scoreH <= 451.00)){
pushMatrix();
scale(-1,1);
image(cam, -320, 0);
popMatrix();
}
if ((scoreH >= 449.99) && (scoreH <= 450.00) && (fotomaken == true)){
saveFrame("images/sing-##.png");
fotomaken = false;
}
inputNiveau = int(input.mix.level()*800);
fill(137,197,255,127);
text(inputNiveau, 800, 700);
rect(900, 680, inputNiveau, 20);
scoreH = constrain(scoreH, 0, 600);
scoreH = constrain(scoreH, 0, 580);
noStroke();
fill(49,127,203);
rect(1090,61,85,605,100);
fill(137,197,255,127);
rect(1090,61,85,scoreH,100,100,0,0);
rotate(0.2);
fill(252,209,22);
rect(1070,-210,150,57);
fill(0,56,147);
rect(1070,-154,150,28);
fill(206,17,38);
rect(1070,-126,150,28);
if(inputNiveau >= 0 && inputNiveau <= 150){
scoreH = scoreH - 0.02;
}
if(inputNiveau >= 150 && inputNiveau <= 500){
scoreH = scoreH - 0.06;
}
if(inputNiveau >= 500 && inputNiveau <= 900){
scoreH = scoreH - 0.16;
}
if(inputNiveau >= 900 && inputNiveau <= 1000){
scoreH = scoreH - 0.5;
}
println(scoreH);
}