🤖 Robot Question / Réponse (IA)

  • Auteur de la discussion ZZZ
  • Date de début
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
```
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
document.getElementById("bullets").innerHTML = "ammo: 30/30";
function resizeCanvas() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
}
window.addEventListener('resize', resizeCanvas);
resizeCanvas();
var keys = {};
var mouse = {
x: 0,
y: 0
};
var angle = 0;
function menu() {
player.heal = 100;
}
window.addEventListener("mousemove", function (event) {
mouse.x = event.clientX;
mouse.y = event.clientY;
});
window.addEventListener("keydown", function (event) {
keys[event.keyCode] = true;
});
window.addEventListener("keyup", function (event) {
delete keys[event.keyCode];
});
function createImage(path) {
newImage = new Image();
newImage.src = path;
newImage.onload = function () {
loop();
};
return newImage;
}
var player = {
x: canvas.width / 2,
y: canvas.height / 2,
positionX: 0,
positionY: 0,
width: 41,
height: 97,
speed: -0.8,
speedDiag: -(0.8 / Math.sqrt(2)),
heal: 100,
reloading: false,
damages: 10,
image: createImage("./img/sprite.png"),
reloadingImage: createImage("./img/sprite reloading.png"),
shotLightImage: createImage("./img/shotLight Img.png"),
bulletImg: createImage("./img/bullet Img.png"),
loader: createImage("./img/loader.gif")
};
class baril {
positionX;
positionY;
constructor(positionX, positionY) {
this.positionX = positionX;
this.positionY = positionY;
this.width = 66;
this.height = 66;
this.image = createImage("./img/explosive baril.png");
this.heal = 100;
this.currentStat = 1;
}
}
var explosive = [
new baril(500, 500), new baril(800, 100), new baril(1000, 400), new baril(1500, 1000)
]
console.log(explosive[0]);
console.log(explosive[1]);
var bullets = [];
var shotLightVisible = false;
var lastFireTime = 0;
var fireRate = 1000 / 10;
var shootIntervalId;
var barilExplosion = {
currentStat: false
};
var opacity;
var particlesNumber;
var particles;
var radiusMax;
var explosionFramesNumber = 30;
var explosionFramesInterval = 50;
var explosionFrames;
var explosionSound = new Audio("./sounds/barils explosion.mp3");
function updateAngle() {
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
angle = Math.atan2(dy, dx);
angle += Math.PI / 2;
}
function update() {
if (keys[38] && !keys[37] && !keys[39]) {
player.positionY += player.speed;
}
if (keys[40] && !keys[37] && !keys[39]) {
player.positionY -= player.speed;
}
if (keys[37] && !keys[38] && !keys[40]) {
player.positionX += player.speed;
}
if (keys[39] && !keys[38] && !keys[40]) {
player.positionX -= player.speed;
}
if (keys[38] && keys[37]) {
player.positionY += player.speedDiag;
player.positionX += player.speedDiag;
}
if (keys[38] && keys[39]) {
player.positionY += player.speedDiag;
player.positionX -= player.speedDiag;
}
if (keys[40] && keys[37]) {
player.positionY -= player.speedDiag;
player.positionX += player.speedDiag;
}
if (keys[40] && keys[39]) {
player.positionY -= player.speedDiag;
player.positionX -= player.speedDiag;
}
if (keys[82]) {
reload();
}
updateAngle();
}
player.heal = 100
function detectCollision() {
function barilsSetups() {
for (var baril in explosive) {
if (explosive[baril].currentStat != 3) {
if (!explosive.hasOwnProperty(baril)) continue;
for (var i = 0; i < bullets.length; i++) {
var bullet = bullets;
if (explosive[baril].currentStat == 1 && !barilExplosion.currentStat) {
if (bullet.x >= explosive[baril].positionX - player.positionX &&
bullet.x < explosive[baril].positionX + explosive[baril].width - player.positionX &&
bullet.y >= explosive[baril].positionY - player.positionY &&
bullet.y < explosive[baril].positionY + explosive[baril].height - player.positionY) {
explosive[baril].heal -= player.damages;
explosive[baril].width -= 1;
explosive[baril].height -= 1;
explosive[baril].positionX += 0.5;
explosive[baril].positionY += 0.5;
bullets.splice(i, 1);
i--;
}
if (
// condition qui définissent ce qui se pass quand le joueur avance contre un baril en vertical, horizontal, diagonales...
) {
// le joueur est bougé à l'opposé des mouvements qu'il efféctue contre l'objet barril...
}
}
if (explosive[baril].heal <= 0) {
let barilBackup = baril
explosive[barilBackup].currentStat = 2;
img = new Image();
img.onload = function () {
loop();
}
img.src = "";
explosive[barilBackup].image = img;
barilExplosion = {
positionX: explosive[barilBackup].positionX,
positionY: explosive[barilBackup].positionY,
}
explosionSound.play();
let maxDistance = 300;
if (
player.x >= (barilExplosion.positionX - maxDistance) &&
player.x + player.width < (barilExplosion.positionX + explosive[0].width + maxDistance) &&
player.y >= (barilExplosion.positionY - maxDistance) &&
player.y + player.height < (barilExplosion.positionY + explosive[0].height + maxDistance)
) {
player.heal -= 80;
}
explosionFrames = setInterval(() => {
particlesNumber = 360;
particles = [];
for (let i = 0; i < particlesNumber; i++) {
radiusMax = 1000 / i
particles.push({
radius: Math.random() * radiusMax,
})
particles.positionX = particles.radius * Math.cos(i);
particles.positionY = particles.radius * Math.sin(i);
particles.red = (Math.random() * 100) + 155
particles.green = (Math.random() * 100)
particles.color = "rgba(" + particles.red + ", " + particles.green + ", 0, " + particles.radius / radiusMax; + ")"
}
}, explosionFramesInterval);
setTimeout(() => {
clearInterval(explosionFrames);
}, 10 * explosionFramesNumber);
explosive[barilBackup].currentStat = 3;
}
}
}
}
}
barilsSetups();
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = "black";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.save();
ctx.translate(player.x, player.y);
ctx.rotate(angle);
if (player.reloading == false) {
ctx.drawImage(player.image, -player.width / 2, -player.height + 45 / 2, player.width, player.height);
} else {
ctx.drawImage(player.reloadingImage, -player.width / 2, -player.height + 45 / 2, player.width, player.height);
}

if (shotLightVisible) {
ctx.drawImage(player.shotLightImage, -player.width + 65 / 2, -player.height / 2 - 42, 20, 20);
}
ctx.restore();
for (let i = 0; i < explosive.length; i++) {
ctx.drawImage(explosive.image, explosive.positionX - player.positionX, explosive.positionY - player.positionY, explosive.width, explosive.height);
}
ctx.fillStyle = "rgba(" + String(255 - 2.55 * player.heal) + ", " + String(255 - (255 - 2.55 * player.heal)) + ", 0)";
ctx.fillRect((player.x - (player.width / 2) - 19) + ((40) - 0.52 * (player.heal / 1.3)), player.y + 40, player.heal / 1.3, 4);
document.getElementById("heal").style.width = String(20 + 3 * (player.heal)) + "px";
document.getElementById("heal").style.backgroundColor = ctx.fillStyle;
document.getElementById("healText").innerHTML = "hp: " + Math.round(player.heal);
if (player.heal <= 0) {
menu();
}
for (let i = 0; i < particlesNumber; i++) {
ctx.fillStyle = particles.color;
ctx.fillRect(barilExplosion.positionX + explosive[0].width / 2 + particles.positionX - player.positionX, barilExplosion.positionY + explosive[0].height / 2 + particles.positionY - player.positionY, 8, 8);
setTimeout(() => {
particlesNumber = 0;
particles = [];
}, explosionFramesInterval);
}
for (var i = 0; i < bullets.length; i++) {
var bullet = bullets;
ctx.save();
ctx.translate(bullet.x, bullet.y);
ctx.rotate(Math.atan2(bullet.vy, bullet.vx) + Math.PI / 2);
ctx.drawImage(player.bulletImg, -1, 0, 2, 34);
ctx.restore();
bullet.x += bullet.vx;
bullet.y += bullet.vy;
if (Math.sqrt(Math.pow(bullet.x - player.x, 2) + Math.pow(bullet.y - player.y, 2)) >= 1000) {
bullets.splice(i, 1);
i--;
}
}
}
var bulletsNumber = 30;
var AK47Reloadsound = new Audio("./sounds/AK-47 reloading.mp3");
function reload() {
player.reloading = true;
document.getElementById("bullets").innerHTML = "ammo: reloading...";
AK47Reloadsound.play();
setTimeout(function () {
bulletsNumber = 30;
player.reloading = false;
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
}, 3000)
}
document.addEventListener("mousedown", function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
if (bulletsNumber > 0 && player.reloading == false) {
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
var bulletSpeed = 14;
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
var bulletVX = bulletSpeed * Math.cos(Math.atan2(dy, dx));
var bulletVY = bulletSpeed * Math.sin(Math.atan2(dy, dx));
var bullet = {
x: player.x,
y: player.y,
vx: bulletVX,
vy: bulletVY
};
bullet.x += bullet.vx * 5;
bullet.y += bullet.vy * 5;
bullets.push(bullet);
lastFireTime = currentTime;
bulletsNumber -= 1
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
} else if (bulletsNumber <= 0) {
if (player.reloading == false) {
reload();
}
}
}
clearInterval(shootIntervalId);
shootIntervalId = setInterval(function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
if (bulletsNumber > 0 && player.reloading == false) {
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
var bulletSpeed = 14;
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
var bulletVX = bulletSpeed * Math.cos(Math.atan2(dy, dx));
var bulletVY = bulletSpeed * Math.sin(Math.atan2(dy, dx));
var bullet = {
x: player.x,
y: player.y,
vx: bulletVX,
vy: bulletVY
};
bullet.x += bullet.vx * 5;
bullet.y += bullet.vy * 5;
bullets.push(bullet);
bulletsNumber -= 1
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
} else if (bulletsNumber <= 0) {
if (player.reloading == false) {
reload();
}
}
}
}, fireRate);
});
document.addEventListener("mouseup", function () {
clearInterval(shootIntervalId);
});
function loop() {
update();
detectCollision();
draw();
requestAnimationFrame(loop);
}
loop();
```

fait-moi un code pour gérer les collisions du joueur avec le baril, dans la fonction detectCollision => barilsSetups => // commentaires
 
Fofobot 🤖
Assistant virtuel
Donateur 🤲
Messages
3 016
Fofocoins
70 789
```
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
document.getElementById("bullets").innerHTML = "ammo: 30/30";
function resizeCanvas() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
}
window.addEventListener('resize', resizeCanvas);
resizeCanvas();
var keys = {};
var mouse = {
x: 0,
y: 0
};
var angle = 0;
function menu() {
player.heal = 100;
}
window.addEventListener("mousemove", function (event) {
mouse.x = event.clientX;
mouse.y = event.clientY;
});
window.addEventListener("keydown", function (event) {
keys[event.keyCode] = true;
});
window.addEventListener("keyup", function (event) {
delete keys[event.keyCode];
});
function createImage(path) {
newImage = new Image();
newImage.src = path;
newImage.onload = function () {
loop();
};
return newImage;
}
var player = {
x: canvas.width / 2,
y: canvas.height / 2,
positionX: 0,
positionY: 0,
width: 41,
height: 97,
speed: -0.8,
speedDiag: -(0.8 / Math.sqrt(2)),
heal: 100,
reloading: false,
damages: 10,
image: createImage("./img/sprite.png"),
reloadingImage: createImage("./img/sprite reloading.png"),
shotLightImage: createImage("./img/shotLight Img.png"),
bulletImg: createImage("./img/bullet Img.png"),
loader: createImage("./img/loader.gif")
};
class baril {
positionX;
positionY;
constructor(positionX, positionY) {
this.positionX = positionX;
this.positionY = positionY;
this.width = 66;
this.height = 66;
this.image = createImage("./img/explosive baril.png");
this.heal = 100;
this.currentStat = 1;
}
}
var explosive = [
new baril(500, 500), new baril(800, 100), new baril(1000, 400), new baril(1500, 1000)
]
console.log(explosive[0]);
console.log(explosive[1]);
var bullets = [];
var shotLightVisible = false;
var lastFireTime = 0;
var fireRate = 1000 / 10;
var shootIntervalId;
var barilExplosion = {
currentStat: false
};
var opacity;
var particlesNumber;
var particles;
var radiusMax;
var explosionFramesNumber = 30;
var explosionFramesInterval = 50;
var explosionFrames;
var explosionSound = new Audio("./sounds/barils explosion.mp3");
function updateAngle() {
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
angle = Math.atan2(dy, dx);
angle += Math.PI / 2;
}
function update() {
if (keys[38] && !keys[37] && !keys[39]) {
player.positionY += player.speed;
}
if (keys[40] && !keys[37] && !keys[39]) {
player.positionY -= player.speed;
}
if (keys[37] && !keys[38] && !keys[40]) {
player.positionX += player.speed;
}
if (keys[39] && !keys[38] && !keys[40]) {
player.positionX -= player.speed;
}
if (keys[38] && keys[37]) {
player.positionY += player.speedDiag;
player.positionX += player.speedDiag;
}
if (keys[38] && keys[39]) {
player.positionY += player.speedDiag;
player.positionX -= player.speedDiag;
}
if (keys[40] && keys[37]) {
player.positionY -= player.speedDiag;
player.positionX += player.speedDiag;
}
if (keys[40] && keys[39]) {
player.positionY -= player.speedDiag;
player.positionX -= player.speedDiag;
}
if (keys[82]) {
reload();
}
updateAngle();
}
player.heal = 100
function detectCollision() {
function barilsSetups() {
for (var baril in explosive) {
if (explosive[baril].currentStat != 3) {
if (!explosive.hasOwnProperty(baril)) continue;
for (var i = 0; i < bullets.length; i++) {
var bullet = bullets;
if (explosive[baril].currentStat == 1 && !barilExplosion.currentStat) {
if (bullet.x >= explosive[baril].positionX - player.positionX &&
bullet.x < explosive[baril].positionX + explosive[baril].width - player.positionX &&
bullet.y >= explosive[baril].positionY - player.positionY &&
bullet.y < explosive[baril].positionY + explosive[baril].height - player.positionY) {
explosive[baril].heal -= player.damages;
explosive[baril].width -= 1;
explosive[baril].height -= 1;
explosive[baril].positionX += 0.5;
explosive[baril].positionY += 0.5;
bullets.splice(i, 1);
i--;
}
if (
// condition qui définissent ce qui se pass quand le joueur avance contre un baril en vertical, horizontal, diagonales...
) {
// le joueur est bougé à l'opposé des mouvements qu'il efféctue contre l'objet barril...
}
}
if (explosive[baril].heal <= 0) {
let barilBackup = baril
explosive[barilBackup].currentStat = 2;
img = new Image();
img.onload = function () {
loop();
}
img.src = "";
explosive[barilBackup].image = img;
barilExplosion = {
positionX: explosive[barilBackup].positionX,
positionY: explosive[barilBackup].positionY,
}
explosionSound.play();
let maxDistance = 300;
if (
player.x >= (barilExplosion.positionX - maxDistance) &&
player.x + player.width < (barilExplosion.positionX + explosive[0].width + maxDistance) &&
player.y >= (barilExplosion.positionY - maxDistance) &&
player.y + player.height < (barilExplosion.positionY + explosive[0].height + maxDistance)
) {
player.heal -= 80;
}
explosionFrames = setInterval(() => {
particlesNumber = 360;
particles = [];
for (let i = 0; i < particlesNumber; i++) {
radiusMax = 1000 / i
particles.push({
radius: Math.random() * radiusMax,
})
particles.positionX = particles.radius * Math.cos(i);
particles.positionY = particles.radius * Math.sin(i);
particles.red = (Math.random() * 100) + 155
particles.green = (Math.random() * 100)
particles.color = "rgba(" + particles.red + ", " + particles.green + ", 0, " + particles.radius / radiusMax; + ")"
}
}, explosionFramesInterval);
setTimeout(() => {
clearInterval(explosionFrames);
}, 10 * explosionFramesNumber);
explosive[barilBackup].currentStat = 3;
}
}
}
}
}
barilsSetups();
}
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = "black";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.save();
ctx.translate(player.x, player.y);
ctx.rotate(angle);
if (player.reloading == false) {
ctx.drawImage(player.image, -player.width / 2, -player.height + 45 / 2, player.width, player.height);
} else {
ctx.drawImage(player.reloadingImage, -player.width / 2, -player.height + 45 / 2, player.width, player.height);
}

if (shotLightVisible) {
ctx.drawImage(player.shotLightImage, -player.width + 65 / 2, -player.height / 2 - 42, 20, 20);
}
ctx.restore();
for (let i = 0; i < explosive.length; i++) {
ctx.drawImage(explosive.image, explosive.positionX - player.positionX, explosive.positionY - player.positionY, explosive.width, explosive.height);
}
ctx.fillStyle = "rgba(" + String(255 - 2.55 * player.heal) + ", " + String(255 - (255 - 2.55 * player.heal)) + ", 0)";
ctx.fillRect((player.x - (player.width / 2) - 19) + ((40) - 0.52 * (player.heal / 1.3)), player.y + 40, player.heal / 1.3, 4);
document.getElementById("heal").style.width = String(20 + 3 * (player.heal)) + "px";
document.getElementById("heal").style.backgroundColor = ctx.fillStyle;
document.getElementById("healText").innerHTML = "hp: " + Math.round(player.heal);
if (player.heal <= 0) {
menu();
}
for (let i = 0; i < particlesNumber; i++) {
ctx.fillStyle = particles.color;
ctx.fillRect(barilExplosion.positionX + explosive[0].width / 2 + particles.positionX - player.positionX, barilExplosion.positionY + explosive[0].height / 2 + particles.positionY - player.positionY, 8, 8);
setTimeout(() => {
particlesNumber = 0;
particles = [];
}, explosionFramesInterval);
}
for (var i = 0; i < bullets.length; i++) {
var bullet = bullets;
ctx.save();
ctx.translate(bullet.x, bullet.y);
ctx.rotate(Math.atan2(bullet.vy, bullet.vx) + Math.PI / 2);
ctx.drawImage(player.bulletImg, -1, 0, 2, 34);
ctx.restore();
bullet.x += bullet.vx;
bullet.y += bullet.vy;
if (Math.sqrt(Math.pow(bullet.x - player.x, 2) + Math.pow(bullet.y - player.y, 2)) >= 1000) {
bullets.splice(i, 1);
i--;
}
}
}
var bulletsNumber = 30;
var AK47Reloadsound = new Audio("./sounds/AK-47 reloading.mp3");
function reload() {
player.reloading = true;
document.getElementById("bullets").innerHTML = "ammo: reloading...";
AK47Reloadsound.play();
setTimeout(function () {
bulletsNumber = 30;
player.reloading = false;
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
}, 3000)
}
document.addEventListener("mousedown", function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
if (bulletsNumber > 0 && player.reloading == false) {
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
var bulletSpeed = 14;
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
var bulletVX = bulletSpeed * Math.cos(Math.atan2(dy, dx));
var bulletVY = bulletSpeed * Math.sin(Math.atan2(dy, dx));
var bullet = {
x: player.x,
y: player.y,
vx: bulletVX,
vy: bulletVY
};
bullet.x += bullet.vx * 5;
bullet.y += bullet.vy * 5;
bullets.push(bullet);
lastFireTime = currentTime;
bulletsNumber -= 1
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
} else if (bulletsNumber <= 0) {
if (player.reloading == false) {
reload();
}
}
}
clearInterval(shootIntervalId);
shootIntervalId = setInterval(function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
if (bulletsNumber > 0 && player.reloading == false) {
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
var bulletSpeed = 14;
var dx = mouse.x - player.x;
var dy = mouse.y - player.y;
var bulletVX = bulletSpeed * Math.cos(Math.atan2(dy, dx));
var bulletVY = bulletSpeed * Math.sin(Math.atan2(dy, dx));
var bullet = {
x: player.x,
y: player.y,
vx: bulletVX,
vy: bulletVY
};
bullet.x += bullet.vx * 5;
bullet.y += bullet.vy * 5;
bullets.push(bullet);
bulletsNumber -= 1
document.getElementById("bullets").innerHTML = "ammo: " + bulletsNumber + "/30";
} else if (bulletsNumber <= 0) {
if (player.reloading == false) {
reload();
}
}
}
}, fireRate);
});
document.addEventListener("mouseup", function () {
clearInterval(shootIntervalId);
});
function loop() {
update();
detectCollision();
draw();
requestAnimationFrame(loop);
}
loop();
```

fait-moi un code pour gérer les collisions du joueur avec le baril, dans la fonction detectCollision => barilsSetups => // commentaires
Voici un exemple de code pour gérer les collisions du joueur avec le baril :

```javascript
function detectCollision() {

function barilsSetups() {

// Pour chaque baril explosif
for (var baril in explosive) {

// Vérifier que le baril n'a pas déjà explosé
if (explosive[baril].currentStat != 3) {

// Vérifier si le joueur est en collision avec le baril
if (player.x + player.width > explosive[baril].positionX &&
player.x < explosive[baril].positionX + explosive[baril].width &&
player.y + player.height > explosive[baril].positionY &&
player.y < explosive[baril].positionY + explosive[baril].height) {

// Réduire la vie du joueur et de baril, et gérer les déplacements
player.heal -= explosive[baril].damages;
explosive[baril].heal -= player.damages;

if (player.x + player.width / 2 > explosive[baril].positionX &&
player.x + player.width / 2 < explosive[baril].positionX + explosive[baril].width) {
if (player.y < explosive[baril].positionY + explosive[baril].height / 2) {
player.positionY -= player.speed;
} else {
player.positionY += player.speed;
}
}

if (player.y + player.height / 2 > explosive[baril].positionY &&
player.y + player.height / 2 < explosive[baril].positionY + explosive[baril].height) {
if (player.x < explosive[baril].positionX + explosive[baril].width / 2) {
player.positionX -= player.speed;
} else {
player.positionX += player.speed;
}
}

}

// Si la vie du baril atteint 0, le faire exploser
if (explosive[baril].heal <= 0) {

// Mise à jour de l'état du baril
explosive[baril].currentStat = 2;

// Charger une nouvelle image pour le baril explosé et démarrer l'explosion
var img = new Image();
img.onload = function() {
loop();
}
img.src = "./img/explosive baril exploded.png";
explosive[baril].image = img;
barilExplosion = {
positionX: explosive[baril].positionX,
positionY: explosive[baril].positionY,
}
explosionSound.play();
var maxDistance = 300;

// Vérifier si le joueur est dans la zone d'explosion
if (player.x >= (barilExplosion.positionX - maxDistance) &&
player.x + player.width < (barilExplosion.positionX + explosive[0].width + maxDistance) &&
player.y >= (barilExplosion.positionY - maxDistance) &&
player.y + player.height < (barilExplosion.positionY + explosive[0].height + maxDistance)) {
player.heal -= 80;
}

// Création de l'animation d'explosion
explosionFrames = setInterval(() => {
particlesNumber = 360;
particles = [];
for (let i = 0; i < particlesNumber; i++) {
radiusMax = 1000 / i
particles.push({
radius: Math.random() * radiusMax,
})
particles.positionX = particles.radius * Math.cos(i);
particles.positionY = particles.radius * Math.sin(i);
particles.red = (Math.random() * 100) + 155
particles.green = (Math.random() * 100)
particles.color = "rgba(" +
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Ah bah merci piiixel
moi j'ai coché 2 cases sur 3 de mon cahier des choses que je dois faire sur mon jeu;
la stylisation des explosions à particules
les dégâts des explosions
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Voici un exemple de code pour gérer les collisions du joueur avec le baril :

```javascript
function detectCollision() {

function barilsSetups() {

// Pour chaque baril explosif
for (var baril in explosive) {

// Vérifier que le baril n'a pas déjà explosé
if (explosive[baril].currentStat != 3) {

// Vérifier si le joueur est en collision avec le baril
if (player.x + player.width > explosive[baril].positionX &&
player.x < explosive[baril].positionX + explosive[baril].width &&
player.y + player.height > explosive[baril].positionY &&
player.y < explosive[baril].positionY + explosive[baril].height) {

// Réduire la vie du joueur et de baril, et gérer les déplacements
player.heal -= explosive[baril].damages;
explosive[baril].heal -= player.damages;

if (player.x + player.width / 2 > explosive[baril].positionX &&
player.x + player.width / 2 < explosive[baril].positionX + explosive[baril].width) {
if (player.y < explosive[baril].positionY + explosive[baril].height / 2) {
player.positionY -= player.speed;
} else {
player.positionY += player.speed;
}
}

if (player.y + player.height / 2 > explosive[baril].positionY &&
player.y + player.height / 2 < explosive[baril].positionY + explosive[baril].height) {
if (player.x < explosive[baril].positionX + explosive[baril].width / 2) {
player.positionX -= player.speed;
} else {
player.positionX += player.speed;
}
}

}

// Si la vie du baril atteint 0, le faire exploser
if (explosive[baril].heal <= 0) {

// Mise à jour de l'état du baril
explosive[baril].currentStat = 2;

// Charger une nouvelle image pour le baril explosé et démarrer l'explosion
var img = new Image();
img.onload = function() {
loop();
}
img.src = "./img/explosive baril exploded.png";
explosive[baril].image = img;
barilExplosion = {
positionX: explosive[baril].positionX,
positionY: explosive[baril].positionY,
}
explosionSound.play();
var maxDistance = 300;

// Vérifier si le joueur est dans la zone d'explosion
if (player.x >= (barilExplosion.positionX - maxDistance) &&
player.x + player.width < (barilExplosion.positionX + explosive[0].width + maxDistance) &&
player.y >= (barilExplosion.positionY - maxDistance) &&
player.y + player.height < (barilExplosion.positionY + explosive[0].height + maxDistance)) {
player.heal -= 80;
}

// Création de l'animation d'explosion
explosionFrames = setInterval(() => {
particlesNumber = 360;
particles = [];
for (let i = 0; i < particlesNumber; i++) {
radiusMax = 1000 / i
particles.push({
radius: Math.random() * radiusMax,
})
particles.positionX = particles.radius * Math.cos(i);
particles.positionY = particles.radius * Math.sin(i);
particles.red = (Math.random() * 100) + 155
particles.green = (Math.random() * 100)
particles.color = "rgba(" +
```
// ==UserScript==
// @name Craftnite.io cheat
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://craftnite.io/
// @icon https://www.google.com/s2/favicons?sz=64&domain=craftnite.io
// @grant none
// ==/UserScript==

(function () {
"use strict";
var spam_msg = '';
var spam_lock = 'False';
var chat_opened = false;
var spam_count = 0;
var displayInput = true;
var getSpamInput = '';
var SpamInput = document.createElement("input");
var ValidButton1 = document.createElement("button");
var divClass = document.createElement('div');
var ExplainText2 = document.createElement('p');
var cheatKick = ''
document.getElementById("craftnite-io_300x250").remove();
document.getElementById("cross-promo").remove();
var FlyEnabled = false
var BedrockEnabled = false
divClass.style.display = 'block';
divClass.id = "MyDIV";
document.body.appendChild(divClass);
function changeColorAtHover(button, color, returncolor) {
$(document).ready(function () {
$(button).hover(function () {
$(button).css('background', color);
},
function () {
$(button).css('background', returncolor);
});
});
}
function modifyHTML() {
ValidButton1.innerHTML = "valid"
ExplainText2.innerHTML = "To spam, you must activate the spam button and then hold the 'enter' key for as long as you want.<br /><br />This script was made by Raylazzz and was published by Raylazzz, so for those who would like to use it, please respect me in the game, at least in recognition of my work. 😂<br /><br />Now, for the clever little ones who abuse spam or fly, be sure that I have a fairly effective order to calm you down...."
ExplainText2.style = "background-color: white; width: 300px; top: 0px; right: 15px; color: black; border-radius: 15px; border-color: black; padding: 15px; position: absolute; z-index: 100;"
SpamInput.className = 'Spam input';
SpamInput.placeholder = "Spam message...";
ValidButton1.style = "top:15px;left:230px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
SpamInput.style = "top:15px;left:15px;position:absolute;z-index:99999;padding:15px;border-radius: 15px 15px 15px 15px;";
ValidButton1.onclick = "myFunction()";
ValidButton1.style.backgroundColor = "white";
changeColorAtHover(ValidButton1, '#05d1ff', 'white');
ValidButton1.style.backgroundColor = "white";
document.getElementById('MyDIV').appendChild(ExplainText2);
document.getElementById('MyDIV').appendChild(SpamInput);
document.getElementById('MyDIV').appendChild(ValidButton1);
document.getElementById('MyDIV').removeChild(SpamInput);
getSpamInput = SpamInput.value;
spam_msg = getSpamInput;
console.log(getSpamInput);
displayInput = false;
ValidButton1.innerHTML = "change spam message"
ValidButton1.style = "top:15px;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
ValidButton1.style.backgroundColor = "white";
}
function HTMLButtonSpam() {
ValidButton1.onclick = function () {
if (displayInput == true) {
document.getElementById('MyDIV').removeChild(SpamInput);
getSpamInput = SpamInput.value;
if (getSpamInput.slice(0, 1) != '/') {
spam_msg = getSpamInput;
} else {
cheatKick = getSpamInput.slice(1, getSpamInput.length)
console.log(cheatKick);
}
displayInput = false;
ValidButton1.innerHTML = "change spam message"
ValidButton1.style = "top:15px;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
ValidButton1.style.backgroundColor = "white";
} else if (displayInput == false) {
ValidButton1.style = "top:15px;left:230px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
document.getElementById('MyDIV').appendChild(SpamInput);
ValidButton1.innerHTML = "submit"
document.getElementById('MyDIV').appendChild(ValidButton1);
displayInput = true;
}
};
}
function keyboardManagement() {
document.onkeydown = function (m) {
if (m.key == "Enter") {
if (chat_opened == false) {
chat_opened = true;
} else if (chat_opened == true) {
chat_opened = false;
}
if (spam_lock == 'True') {
var elt = document.querySelector('input');
elt.value = '' + spam_count + ' ' + spam_msg;
} else {
null;
}
}
if (cheatKick == playerName) {
alert(playerName + ', you were kicked of the game. Reason : Abusing cheat.');
window.close();
}
if (chat_opened == true) {
spam_count++
}
if (FlyEnabled == true) {
G.CONFIG.a143 = 100
} else if (FlyEnabled == false) {
G.CONFIG.a143 = 0
}
if (BedrockEnabled == true) {
G.CONFIG.environmentOceanFloorHeight = 0
} else if (BedrockEnabled == false) {
G.CONFIG.environmentOceanFloorHeight = 260
}
}
}
function HTMLlabels() {
var HTMLLabelsButton1 = document.createElement('button');
var HTMLLabelsButton1Checked = false
HTMLLabelsButton1.innerHTML = 'En/Disable Fly Mode ✖';
HTMLLabelsButton1.style = "top:75px;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
changeColorAtHover(HTMLLabelsButton1, '#05d1ff', 'white');
HTMLLabelsButton1.onclick = function () {
if (HTMLLabelsButton1Checked == true) {
changeColorAtHover(HTMLLabelsButton1, '#05d1ff', "white");
HTMLLabelsButton1.innerHTML = 'En/Disable Fly Mode ✖';
G.CONFIG.a143 = 0
FlyEnabled = false
HTMLLabelsButton1Checked = false;
} else if (HTMLLabelsButton1Checked == false) {
changeColorAtHover(HTMLLabelsButton1, '#05d1ff', '#05d1ff');
HTMLLabelsButton1.innerHTML = 'En/Disable Fly Mode ✔';
G.CONFIG.a143 = 100
FlyEnabled = true
HTMLLabelsButton1Checked = true;
}
}

var HTMLLabelsButton5 = document.createElement('button');
var HTMLLabelsButton5Checked = false
HTMLLabelsButton5.innerHTML = 'En/Disable bedrock cheat ✖';
HTMLLabelsButton5.style = "top:195px;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
changeColorAtHover(HTMLLabelsButton5, '#05d1ff', 'white');
HTMLLabelsButton5.onclick = function () {
if (HTMLLabelsButton5Checked == true) {
changeColorAtHover(HTMLLabelsButton5, '#05d1ff', "white");
HTMLLabelsButton5.innerHTML = 'En/Disable bedrock cheat ✖';
G.CONFIG.environmentOceanFloorHeight = 260
BedrockEnabled = false
HTMLLabelsButton5Checked = false;
} else if (HTMLLabelsButton1Checked == false) {
changeColorAtHover(HTMLLabelsButton5, '#05d1ff', '#05d1ff');
HTMLLabelsButton5.innerHTML = 'En/Disable bedrock cheat ✔';
G.CONFIG.environmentOceanFloorHeight = 0
BedrockEnabled = true
HTMLLabelsButton5Checked = true;
}
}
document.getElementById('MyDIV').appendChild(HTMLLabelsButton5);


document.getElementById('MyDIV').appendChild(HTMLLabelsButton1);
var HTMLLabelsButton2 = document.createElement('button');
var HTMLLabelsButton2Checked = false
HTMLLabelsButton2.innerHTML = 'En/Disable Spam Mode ✖';
HTMLLabelsButton2.style = "top:135px;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
changeColorAtHover(HTMLLabelsButton2, '#05d1ff', 'white');
HTMLLabelsButton2.onclick = function () {
spam_count = 0;
if (HTMLLabelsButton2Checked == true) {
changeColorAtHover(HTMLLabelsButton2, '#05d1ff', "white");
HTMLLabelsButton2.innerHTML = 'En/Disable Spam Mode ✖';
HTMLLabelsButton2Checked = false;
} else if (HTMLLabelsButton2Checked == false) {
changeColorAtHover(HTMLLabelsButton2, '#05d1ff', '#05d1ff');
HTMLLabelsButton2.innerHTML = 'En/Disable Spam Mode ✔';
HTMLLabelsButton2Checked = true;
}
if (spam_lock == 'True') {
spam_lock = 'False';
} else if (spam_lock == 'False') {
spam_lock = 'True';
}
}
document.getElementById('MyDIV').appendChild(HTMLLabelsButton2);
}
function hideButtonsButton() {
var HTMLLabelsButton3 = document.createElement('button');
var HTMLLabelsButton3Checked = false
HTMLLabelsButton3.innerHTML = '⬅';
HTMLLabelsButton3.style = "top:320px;height: 100px ;left:15px;position:absolute;z-index:99999;padding:15px;cursor: pointer;border-radius: 15px 15px 15px 15px;";
HTMLLabelsButton3.onclick = function () {
if (HTMLLabelsButton3Checked == true) {
divClass.style.display = 'block';
changeColorAtHover(HTMLLabelsButton3, '#05d1ff', 'white');
HTMLLabelsButton3.innerHTML = '⬅';
HTMLLabelsButton3Checked = false
} else if (HTMLLabelsButton3Checked == false) {
divClass.style.display = 'none';
changeColorAtHover(HTMLLabelsButton3, '#05d1ff', '#05d1ff');
HTMLLabelsButton3.innerHTML = '➡';
HTMLLabelsButton3Checked = true
}
}
document.body.appendChild(HTMLLabelsButton3);

}
modifyHTML();
HTMLlabels();
HTMLButtonSpam();
hideButtonsButton();
keyboardManagement();
})();
```

pourquoi dans ce code, quand on coche puis décoche le bouton HTMLLabelsButton5, après on ne peut plus le décocher ?
 

🚫 Alerte AdBlock !

Vous avez activé le mode Ninja, et il cache toutes les pubs ! 😆 Un petit coup de pouce pour notre site serait super apprécié si vous pouvez le désactiver. 🙏

🦸‍♂️ J'ai Désactivé AdBlock !