Я начинаю изучать p5. js, и, чтобы помочь мне в этом, я начал создавать «игру вождения». Это даже не близко к завершению, но я столкнулся с ошибкой, говоря, что
vehicle.stop не является функцией.
Смысл игры в том, чтобы пользователь нажимает стрелку вверх, чтобы «вести» машину, даже если при нажатии на нее не происходит никакого движения. У пользователя есть 60 секунд для игры, но в определенные моменты игры появляется знак остановки, и пользователь должен нажимать пробел как можно быстрее. Если пробел нажат в течение 1 секунды после появления знака, пользователь получает балл. Я не уверен, почему я получаю сообщение об ошибке, и мне было интересно, может ли кто-нибудь указать мне правильное направление. Любая помощь приветствуется! :)
var count = 6;
let timer = 60;
var score = 0;
function preload() {
car = loadImage('car.png');
stop = loadImage('stop.png');
}
function setup() {
createCanvas(400, 400);
background(100, 200, 255);
stroke(150);
strokeWeight(120);
line(1000, -2000, 10, 400);
line(600, 1000, 250, 20);
strokeWeight(250);
line(200, 600, 200, 200);
strokeWeight(5);
stroke(255);
line(210, 100, 210, 10);
line(210, 300, 210, 150);
image(car, 110, 220);
}
function draw() {
strokeWeight(1);
stroke(200);
fill(0);
text("Score: " + score, 20, 30);
text("Time Left: " + timer, 20, 45);
if ((frameCount % 120 == 0) && (timer > 0)) {
timer--;
}
if ((timer == 60) || (score == 0)) {
fill(0);
rect(115, 225, 200, 70);
fill(255);
text("START DRIVING GAME ", 142, 250);
text("CLICK BUTTON TO BEGIN", 135, 265);
text("USE UP-ARROW KEY TO DRIVE", 130, 280);
}
if ((timer == 0) || (score == count)) {
fill(0);
rect(130, 220, 125, 70);
fill(255);
text("GAME OVER", 150, 250);
text("You scored: " + score, 150, 265);
}
}
function mouseClicked() {
vehicle.stop();
}
function keyPressed() {
if (keyCode == UP_ARROW) {
car.go();
} else if (keyCode == 32) {
car.stop();
}
}
function vehicle() {
this.go = function() {
goTime = new Date();
}
this.stop = function() {
if ((timer == 55) || (timer == 40) || (timer == 32) || (timer == 23) ||
(timer == 15) || (timer == 6)) {
image(stop, 170, 90);
}
stopTime = new Date();
if ((vehicle.stop) && (elapsedTime == 1)) {
score = score + 1;
} else(score = score + 0);
}
elapsedTime = goTime - stopTime;
}