Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
function onKeyDown(event)
{
switch (event.keyCode)
{
case 39:
case 40:
case 37:
case 38:
event.preventDefault();
}
switch (win)
{
case 0:
switch (event.keyCode)
{
case 39:
case 68:
playerRotation = 1;
moveHorizontal(1);
break;
case 40:
case 83:
playerRotation = 2;
moveVertical(1);
break;
case 37:
case 65:
playerRotation = 3;
moveHorizontal(-1);
break;
case 38:
case 87:
playerRotation = 0;
moveVertical(-1);
break;
}
break;
case 1:
if (level != maxLevel)
{
level++;
newLevel();
}
break;
case 2:
win = 0;
}
renderMap(mapW, mapH);
}
function moveHorizontal(n)
{
if (mapTiles[playerY][playerX + n] != 1)
{
if (boxData[playerY][playerX + n])
{
let newX = playerX;
let newY = playerY;
if (mapTiles[playerY][playerX + n] == 3)
{
newCoords = portalPositions[tileData[playerY][playerX + n]][portalData[playerY][playerX + n]];
newX = newCoords[0] - n;
newY = newCoords[1];
}
if (mapTiles[newY][newX + n + n] != 1 && !boxData[newY][newX + n + n])
{
newX += n;
playerX += n;
if (mapTiles[newY][newX] == 3) boxData[playerY][playerX] = false;
boxData[newY][newX] = false;
boxData[newY][newX + n] = true;
if (mapTiles[newY][newX + n] == 3)
{
boxPos = portalPositions[tileData[newY][newX + n]][portalData[newY][newX + n]];
boxData[boxPos[1]][boxPos[0]] = true;
}
portalCheck();
}
}
else
{
playerX += n;
portalCheck();
}
function portalCheck()
{
if (mapTiles[playerY][playerX] == 3)
{
playerPos = portalPositions[tileData[playerY][playerX]][portalData[playerY][playerX]];
playerX = playerPos[0];
playerY = playerPos[1];
}
}
}
}
function moveVertical(n)
{
if (mapTiles[playerY + n][playerX] != 1)
{
if (boxData[playerY + n][playerX])
{
let newX = playerX;
let newY = playerY;
if (mapTiles[playerY + n][playerX] == 3)
{
newCoords = portalPositions[tileData[playerY + n][playerX]][portalData[playerY + n][playerX]];
newX = newCoords[0];
newY = newCoords[1] - n;
}
if (mapTiles[newY + n + n][newX] != 1 && !boxData[newY + n + n][newX])
{
newY += n;
playerY += n;
if (mapTiles[newY][newX] == 3) boxData[playerY][playerX] = false;
boxData[newY][newX] = false;
boxData[newY + n][newX] = true;
if (mapTiles[newY + n][newX] == 3)
{
boxPos = portalPositions[tileData[newY + n][newX]][portalData[newY + n][newX]];
boxData[boxPos[1]][boxPos[0]] = true;
}
portalCheck();
}
}
else
{
playerY += n;
portalCheck();
}
function portalCheck()
{
if (mapTiles[playerY][playerX] == 3)
{
playerPos = portalPositions[tileData[playerY][playerX]][portalData[playerY][playerX]];
playerX = playerPos[0];
playerY = playerPos[1];
}
}
}
}