У меня была система с проверкой, но по мере ее прокрутки я практически проваливался в пол. Чтобы помочь с этим, я попросилchatGPT прокомментировать мой код.
Основные проблемы, по-видимому, связаны с ReassignCollisionBox(), который вызывает ошибку памяти, и в нижней части update(). Я не уверен, как заставить это столкновение работать, поскольку все источники, которые я могу найти, предназначены для какого-то игрового движка, а не для JavaScript.
//Reassign the collisions and clear the orginal.
CollisonBoxes.length = 0;
for(let i=0; level.length; i++) {
for(let k=0; level[i].length; k++) {
ReassignCollisionBox(i,k);
}
}
//Note these code is not actually next to each other, this is in the update ^
function ReassignCollisionBox(down,right) {
let xmin = down * tilesize; //Upper Left Corner, X
let ymin = down * tilesize; //Upper Left Corner, Y
let xmax = xmin + tilesize; //Bottom Right corner, X
let ymax = ymin + tilesize; //Bottom Right Corner, Y
CollisonBoxes.push([[xmin,ymin],[xmax,ymax]])
return(true);
}
Я думаю, что это довольно надежный код для моего уровня опыта, но коллизии никогда не бывают для меня естественными.
Это... в основном рабочий код, без функций CollisionBox, но проблема все равно проваливается под пол.
< pre class="snippet-code-js lang-js" Prettyprint-override">
У меня была система с проверкой, но по мере ее прокрутки я практически проваливался в пол. Чтобы помочь с этим, я попросилchatGPT прокомментировать мой код. Основные проблемы, по-видимому, связаны с ReassignCollisionBox(), который вызывает ошибку памяти, и в нижней части update(). Я не уверен, как заставить это столкновение работать, поскольку все источники, которые я могу найти, предназначены для какого-то игрового движка, а не для JavaScript. [code]//Reassign the collisions and clear the orginal. CollisonBoxes.length = 0; for(let i=0; level.length; i++) { for(let k=0; level[i].length; k++) { ReassignCollisionBox(i,k); } }
//Note these code is not actually next to each other, this is in the update ^
function ReassignCollisionBox(down,right) { let xmin = down * tilesize; //Upper Left Corner, X let ymin = down * tilesize; //Upper Left Corner, Y let xmax = xmin + tilesize; //Bottom Right corner, X let ymax = ymin + tilesize; //Bottom Right Corner, Y CollisonBoxes.push([[xmin,ymin],[xmax,ymax]]) return(true); } [/code] Я думаю, что это довольно надежный код для моего уровня опыта, но коллизии никогда не бывают для меня естественными. Это... в основном рабочий код, без функций CollisionBox, но проблема все равно проваливается под пол.
game = { cameraX: 0, cameraY: 0, pause: false, pausedelay: 0, fontSize: 16, font: function() { return this.fontSize.toString() + "px Arial"; } }; player = { x: 0, // Starting position for the player y: 48, width: 16, height: 16, dx: 0, // Change in x (velocity) dy: 0, // Change in y (velocity for gravity) speed: 2, // Player movement speed gravity: 0.5, // Gravity force jumpPower: -10, // Jump force (upward) grounded: false // Check if the player is on the ground };