Я использую версию CodeHS javaScript. Я делаю программу для змей. Я пытаюсь вызвать элемент (SNAKEY) при запуске, чтобы остановить программу, однако, когда я пытаюсь
if(direction == NORTH) {
if(elemTopRight == SNAKEY)
{
gameOver();
} else if(elemTopLeft == SNAKEY) {
gameOver();
}
}
(elemTopRight и elemTopLeft являются getElementVariable)
, он возвращает только [ объект Object] в моем терминале. И мой getElements, и мой элемент SNAKEY являются глобальными переменными, но getElementAt не будет возвращать SNAKEY, когда сталкивается с ним. Мне нужно, чтобы он возвращал имена элементов, когда сталкиваюсь с ними.
для остального контекста кода (нет, это не красиво):
var elemTopRight = getElementAt(posX - 1, posY - 1);
var elemTopLeft = getElementAt(posX + 11, posY - 1);
var elemBottomRight = getElementAt(posX - 1, posY + 11);
var elemBottomLeft = getElementAt(posX + 11, posY + 11);
var elemCenterTop = getElementAt(posX + 5, posY - 1);
var elemCenterBottom = getElementAt(posX + 5, posY + 11);
var elemCenterRight = getElementAt(posX + 11, posY + 5);
var elemCenterLeft = getElementAt(posX - 1, posY + 5);
function checkCollision() {
elemTopLeft = getElementAt(posX - 1, posY - 1);
elemTopRight = getElementAt(posX + 11, posY - 1);
elemBottomLeft = getElementAt(posX - 1, posY + 11);
elemBottomRight = getElementAt(posX + 11, posY + 11);
elemCenterTop = getElementAt(posX + 5, posY - 1);
elemCenterBottom = getElementAt(posX + 5, posY + 11);
elemCenterRight = getElementAt(posX + 11, posY + 5);
elemCenterLeft = getElementAt(posX - 1, posY + 5);
if(direction == NORTH) {
if(elemTopRight == SNAKEY)
{
gameOver();
} else if(elemTopLeft == SNAKEY) {
gameOver();
}
}
println(elemTopRight + ", " + elemTopLeft);
if(direction == SOUTH) {
if(elemBottomLeft != null && elemBottomLeft != food) {
gameOver();
} else if(elemBottomRight != null && elemBottomRight != food) {
gameOver();
}
}
if(direction == EAST) {
if(elemBottomRight != null && elemBottomRight != food) {
gameOver();
} else if(elemTopRight != null && elemTopRight != food) {
gameOver();
}
}
if(direction == WEST) {
if(elemBottomLeft != null && elemBottomLeft != food) {
gameOver();
} else if(elemTopLeft != null && elemTopLeft != food) {
gameOner();
}
}
}
/////////////////////////////////////////////////////////////
var SNAKEY = new Rectangle(SNAKE_DIM, SNAKE_DIM);
function draw() {
checkCollision();
checkWalls();
SNAKEY = new Rectangle(SNAKE_DIM, SNAKE_DIM);
SNAKEY.setPosition(posX, posY);
SNAKEY.setColor(Color.green);
add(SNAKEY);
move();
}