Skip to content
Snippets Groups Projects
Commit d99c9dff authored by Sofiane Lasoa's avatar Sofiane Lasoa :grin:
Browse files

Implement canvas move width player in the center

parent 5d101165
No related branches found
No related tags found
No related merge requests found
...@@ -60,8 +60,12 @@ var Player = /*#__PURE__*/function () { ...@@ -60,8 +60,12 @@ var Player = /*#__PURE__*/function () {
} }
}, { }, {
key: "move", key: "move",
value: function move(ctx) { value: function move(ctx, mouseX, mouseY) {
// Déplacer le cercle en fonction de la direction // Déplacer le cercle en fonction de la direction
if (mouseX > ctx.canvas.width / 2 - this.radius && mouseX < ctx.canvas.width / 2 + this.radius && mouseY > ctx.canvas.height / 2 - this.radius && mouseY < ctx.canvas.height / 2 + this.radius) {
return;
}
console.log(mouseX, ctx.canvas.width / 2);
this.x += this.direction.x * this.speed; this.x += this.direction.x * this.speed;
this.y += this.direction.y * this.speed; this.y += this.direction.y * this.speed;
if (this.x < this.radius) this.x = this.radius; if (this.x < this.radius) this.x = this.radius;
...@@ -213,7 +217,7 @@ var canvas = document.querySelector(".map"); ...@@ -213,7 +217,7 @@ var canvas = document.querySelector(".map");
var ctx = canvas.getContext("2d"); var ctx = canvas.getContext("2d");
canvas.width = document.documentElement.clientWidth; canvas.width = document.documentElement.clientWidth;
canvas.height = document.documentElement.clientHeight; canvas.height = document.documentElement.clientHeight;
ctx.width = 2000; ctx.width = 2300;
ctx.height = 2000; ctx.height = 2000;
window.addEventListener("resize", function (e) { window.addEventListener("resize", function (e) {
e.preventDefault(); e.preventDefault();
...@@ -277,11 +281,7 @@ document.addEventListener("keyup", function (event) { ...@@ -277,11 +281,7 @@ document.addEventListener("keyup", function (event) {
break; break;
} }
}); });
canvas.addEventListener("mousemove", function (event) { var rect = canvas.getBoundingClientRect();
var mouseX = event.offsetX;
var mouseY = event.offsetY;
player.moveTo(mouseX, mouseY);
});
var sushis = []; var sushis = [];
for (var i = 0; i < 400; i++) { for (var i = 0; i < 400; i++) {
var x = Math.random() * ctx.width; var x = Math.random() * ctx.width;
...@@ -289,22 +289,36 @@ for (var i = 0; i < 400; i++) { ...@@ -289,22 +289,36 @@ for (var i = 0; i < 400; i++) {
var test = new _Ressources_js__WEBPACK_IMPORTED_MODULE_1__.Sushi(x, y, 5); var test = new _Ressources_js__WEBPACK_IMPORTED_MODULE_1__.Sushi(x, y, 5);
sushis.push(test); sushis.push(test);
} }
var mouseX;
var mouseY;
canvas.addEventListener("mousemove", function (event) {
event.preventDefault();
mouseX = event.clientX;
mouseY = event.clientY;
player.moveTo(mouseX, mouseY);
});
function update() { function update() {
ctx.save();
ctx.clearRect(0, 0, ctx.width, ctx.height); ctx.clearRect(0, 0, ctx.width, ctx.height);
ctx.beginPath(); ctx.beginPath();
ctx.drawImage(backgroundImage, 0, 0, ctx.width, ctx.height);
// Déplacer le joueur en fonction de la direction // Déplacer le joueur en fonction de la direction
var cameraX = canvas.width / 2 - player.x; var cameraX = canvas.width / 2 - player.x;
var cameraY = canvas.height / 2 - player.y; var cameraY = canvas.height / 2 - player.y;
//ctx.translate(cameraX, cameraY); ctx.translate(cameraX, cameraY);
// Déplacer le contexte pour centrer la caméra ssur le joueur // Déplacer le contexte pour centrer la caméra ssur le joueur
// Dessiner le joueur et les autres éléments du jeu // Dessiner le joueur et les autres éléments du jeu
ctx.drawImage(backgroundImage, 0, 0, ctx.width, ctx.height);
sushis.forEach(function (sushi) { sushis.forEach(function (sushi) {
sushi.draw(ctx); sushi.draw(ctx);
}); });
player.draw(ctx, image);
player.move(ctx); //player.move(ctx);
player.eatSushi(sushis); player.eatSushi(sushis);
player.draw(ctx, image);
player.move(ctx, mouseX, mouseY);
ctx.restore();
// Déplacer le contexte pour centrer la caméra sur le joueur // Déplacer le contexte pour centrer la caméra sur le joueur
//ctx.translate(-cameraX, -cameraY); //ctx.translate(-cameraX, -cameraY);
requestAnimationFrame(update); requestAnimationFrame(update);
......
This diff is collapsed.
...@@ -43,8 +43,17 @@ class Player { ...@@ -43,8 +43,17 @@ class Player {
}); });
} }
move(ctx) { move(ctx, mouseX, mouseY) {
// Déplacer le cercle en fonction de la direction // Déplacer le cercle en fonction de la direction
if (
mouseX > ctx.canvas.width / 2 - this.radius &&
mouseX < ctx.canvas.width / 2 + this.radius &&
mouseY > ctx.canvas.height / 2 - this.radius &&
mouseY < ctx.canvas.height / 2 + this.radius
) {
return;
}
console.log(mouseX, ctx.canvas.width / 2);
this.x += this.direction.x * this.speed; this.x += this.direction.x * this.speed;
this.y += this.direction.y * this.speed; this.y += this.direction.y * this.speed;
...@@ -62,7 +71,6 @@ class Player { ...@@ -62,7 +71,6 @@ class Player {
const directionY = y - this.y; const directionY = y - this.y;
const distance = Math.sqrt(directionX ** 2 + directionY ** 2); const distance = Math.sqrt(directionX ** 2 + directionY ** 2);
this.direction.x = directionX / distance; this.direction.x = directionX / distance;
this.direction.y = directionY / distance; this.direction.y = directionY / distance;
} }
......
...@@ -6,7 +6,7 @@ const ctx = canvas.getContext("2d"); ...@@ -6,7 +6,7 @@ const ctx = canvas.getContext("2d");
canvas.width = document.documentElement.clientWidth; canvas.width = document.documentElement.clientWidth;
canvas.height = document.documentElement.clientHeight; canvas.height = document.documentElement.clientHeight;
ctx.width = 2000; ctx.width = 2300;
ctx.height = 2000; ctx.height = 2000;
window.addEventListener("resize", (e) => { window.addEventListener("resize", (e) => {
...@@ -68,12 +68,7 @@ document.addEventListener("keyup", (event) => { ...@@ -68,12 +68,7 @@ document.addEventListener("keyup", (event) => {
} }
}); });
canvas.addEventListener("mousemove", (event) => { const rect = canvas.getBoundingClientRect();
const mouseX = event.offsetX;
const mouseY = event.offsetY;
player.moveTo(mouseX, mouseY);
});
let sushis = []; let sushis = [];
...@@ -84,22 +79,39 @@ for (let i = 0; i < 400; i++) { ...@@ -84,22 +79,39 @@ for (let i = 0; i < 400; i++) {
sushis.push(test); sushis.push(test);
} }
let mouseX;
let mouseY;
canvas.addEventListener("mousemove", (event) => {
event.preventDefault();
mouseX = event.clientX;
mouseY = event.clientY;
player.moveTo(mouseX, mouseY);
});
function update() { function update() {
ctx.save();
ctx.clearRect(0, 0, ctx.width, ctx.height); ctx.clearRect(0, 0, ctx.width, ctx.height);
ctx.beginPath(); ctx.beginPath();
ctx.drawImage(backgroundImage, 0, 0, ctx.width, ctx.height);
// Déplacer le joueur en fonction de la direction // Déplacer le joueur en fonction de la direction
const cameraX = canvas.width / 2 - player.x; const cameraX = canvas.width / 2 - player.x;
const cameraY = canvas.height / 2 - player.y; const cameraY = canvas.height / 2 - player.y;
//ctx.translate(cameraX, cameraY); ctx.translate(cameraX, cameraY);
// Déplacer le contexte pour centrer la caméra ssur le joueur // Déplacer le contexte pour centrer la caméra ssur le joueur
// Dessiner le joueur et les autres éléments du jeu // Dessiner le joueur et les autres éléments du jeu
ctx.drawImage(backgroundImage, 0, 0, ctx.width, ctx.height);
sushis.forEach((sushi) => { sushis.forEach((sushi) => {
sushi.draw(ctx); sushi.draw(ctx);
}); });
player.draw(ctx, image);
player.move(ctx); //player.move(ctx);
player.eatSushi(sushis); player.eatSushi(sushis);
player.draw(ctx, image);
player.move(ctx, mouseX, mouseY);
ctx.restore();
// Déplacer le contexte pour centrer la caméra sur le joueur // Déplacer le contexte pour centrer la caméra sur le joueur
//ctx.translate(-cameraX, -cameraY); //ctx.translate(-cameraX, -cameraY);
requestAnimationFrame(update); requestAnimationFrame(update);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment