xxxxxxxxxx
140
// personagem
let x = 250;
let y = 250;
let vel = 5;
// vilões
let xV = [];
let yV = [];
let velV = [];
let xS = 0;
let yS = 2500;
let statusJogo = false;
function setup() {
createCanvas(500, 500);
frameRate(30);
for (let i = 0; i < 3; i++) {
xV.push(-150);
yV.push(random(0, 500));
velV.push(random(4, 10));
}
}
function draw() {
background(220);
// aqui nossa AI controla o personagem
let maisProximo = 1000;
let mP = -1;
if ((statusJogo = true)) {
for (let i = 0; i < 3; i++) {
let d = dist(x, y, xV[i], yV[i]);
if (d < maisProximo) {
maisProximo = d;
mP = i;
}
}
let direcao = "";
let proximasDistancias = [];
// posição se eu for para baixo
let baixo = y + 1;
let dProximoBaixo = dist(x, baixo, xV[mP], yV[mP]);
// posição se eu for para cima
let cima = y - 1;
let dProximoCima = dist(x, cima, xV[mP], yV[mP]);
// console.log(maisProximo, dProximoCima, dProximoBaixo, "controle")
if (dProximoCima > dProximoBaixo) {
// console.log(maisProximo, dProximoBaixo, "baixo")
direcao = "cima";
} else if (dProximoCima < dProximoBaixo) {
// console.log(maisProximo, dProximoCima, "cima")
direcao = "baixo";
}
if (direcao == "cima" && y <= 350 && y >= 100) {
y = y - vel;
} else if (direcao == "baixo" && y <= 350 && y >= 30) {
y = y + vel;
}
}
// inicio do personagem
rectMode(CENTER);
fill("yellow");
rect(x, y, 50, 50);
fill("black");
square(x - 10, y - 10, 10);
fill("black");
square(x + 10, y - 10, 10);
fill("black");
rect(x, y + 10, 40, 10);
if (statusJogo == true) {
//inicio do vilao
for (let i = 0; i < 3; i++) {
xV[i] = xV[i] + velV[i];
vilao(xV[i], yV[i], "black");
}
} else {
//inicio do vilao
for (let i = 0; i < 3; i++) {
if(i == mP){
vilao(xV[i], yV[i],"#f00");
}else{
vilao(xV[i], yV[i],"#000");
}
}
}
// quando chega ao final (500) ele volta para o -200
for (let i = 0; i < 3; i++) {
if (xV[i] >= 500) {
yV[i] = random(0, 500);
xV[i] = -150;
}
}
textSize(32);
text(xS, 40, 40);
square(xS, yS, 10, 10);
if (statusJogo == true) {
xS++;
}
// verifica colisão (morte do personagem)
for (let i = 0; i < 3; i++) {
let d = dist(x, y, xV[i], yV[i]);
if (d <= 40) {
console.log(d);
statusJogo = false;
x = 250;
y = 250;
xV[i] = 0;
yV[i] = random(0, 500);
xS = 0;
}
}
}
function vilao(x, y, c) {
fill(c)
rect((x = x + 20), y, 100, 30);
}
function mouseClicked() {
statusJogo = true;
}