Aucun de tes codes ne marche. On recommence du début et trouves-moi un solution, ça fait 24h que je rame !!
Fait en sorte que le sprite et le player.shootLightImage s'orientent vers la souris sans affecter la direction de la balle qui doit foncer en ligne droite comme mon pied là où je pense ci tu continue de me dire des conneries!
Et donne moi le code entier stp et évite de m'envoyer un de tes coutumiers "Sorry I couldn't contact the ChatGPT think tank
" !!!
Fait en sorte que le sprite et le player.shootLightImage s'orientent vers la souris sans affecter la direction de la balle qui doit foncer en ligne droite comme mon pied là où je pense ci tu continue de me dire des conneries!
Et donne moi le code entier stp et évite de m'envoyer un de tes coutumiers "Sorry I couldn't contact the ChatGPT think tank
JavaScript:
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.width = document.body.clientWidth;
canvas.height = document.body.clientHeight;
var keys = {};
var mouse = {
x: 0,
y: 0
};
var angle = 0;
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];
});
var player = {
x: (canvas.width / 2),
y: (canvas.height / 2),
width: 41,
height: 97,
speed: 3,
speedDiag: 3 / Math.sqrt(2),
};
player.image = new Image();
player.image.src = "./img/sprite.png";
player.image.onload = function () {
loop();
};
player.shotLightImage = new Image();
player.shotLightImage.src = "./img/shotLight Img.png";
player.shotLightImage.onload = function () {
loop();
}
player.bulletImg = new Image();
player.bulletImg.src = "./img/bullet Img.png";
player.bulletImg.onload = function () {
loop();
}
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.y -= player.speed;
}
if (keys[40] && !keys[37] && !keys[39]) {
player.y += player.speed;
}
if (keys[37] && !keys[38] && !keys[40]) {
player.x -= player.speed;
}
if (keys[39] && !keys[38] && !keys[40]) {
player.x += player.speed;
}
if (keys[38] && keys[37]) {
player.y -= player.speedDiag;
player.x -= player.speedDiag;
}
if (keys[38] && keys[39]) {
player.y -= player.speedDiag;
player.x += player.speedDiag;
}
if (keys[40] && keys[37]) {
player.y += player.speedDiag;
player.x -= player.speedDiag;
}
if (keys[40] && keys[39]) {
player.y += player.speedDiag;
player.x += player.speedDiag;
}
updateAngle();
}
var shotLightVisible = false;
var lastFireTime = 0;
var fireRate = 60;
var shootIntervalId;
var bulletPos = 0;
var bullet = false;
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);
ctx.drawImage(player.image, -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);
bulletPos = 0;
bullet = true;
}
if (bullet) {
ctx.drawImage(player.bulletImg, (-player.width) + 85 / 2, (-player.height / 2) - 42 + bulletPos, 2, 34);
bulletPos -= 10;
if (bulletPos == -1000) {
bullet = false;
}
}
ctx.restore();
}
document.addEventListener("mousedown", function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
// tirer
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
}
clearInterval(shootIntervalId);
shootIntervalId = setInterval(function () {
var currentTime = Date.now();
var timeSinceLastFire = currentTime - lastFireTime;
if (timeSinceLastFire >= fireRate) {
// tirer
var AK47sound = new Audio("./sounds/AK-47.mp3");
AK47sound.play();
shotLightVisible = true;
setTimeout(function () {
shotLightVisible = false;
}, 50);
lastFireTime = currentTime;
}
}, fireRate);
});
document.addEventListener("mouseup", function () {
clearInterval(shootIntervalId);
});
function loop() {
update();
draw();
requestAnimationFrame(loop);
}
loop();