#javascript
#javascript
Вопрос:
В настоящее время я застрял и не уверен, как изменить положение символа на 20 пикселей вправо и на 20 пикселей влево. Я смог создать символы и отобразить их информацию. Это был код, который я получил обратно, когда обратился за помощью, и до сих пор оставил меня в замешательстве. Это та часть, которую я пытаюсь выполнить, завершите метод для изменения положения x и завершите метод для изменения положения y.
Ваша задача
Вам поручено создать персонажей для браузерной игры на основе предоставленного скелетного кода JavaScript.
В игре будет 3 символа, каждый из которых основан на объектах в коде JavaScript. Каждый символ имеет следующие черты:
Имя
Начальная позиция на экране (которая состоит из двух координат [x и y]. Эти координаты показывают положение в пикселях по оси x и вниз по оси y. Например, (150, 230) будет 150 пикселей по экрану с левой стороны вдоль оси x и 230 пикселей вниз по экрану сверху вдоль оси y. (Смотрите Изображение ниже.)
Подсказка: используйте отдельные переменные для позиции x и позиции y
Возможность перемещать 20 пикселей одновременно (для x это перемещение влево или вправо, а для y это перемещение вверх или вниз) [это похоже на метод]. Например. если символ находится на (100, 30), перемещение влево на 20 пикселей помещает символ в (80, 30).
Для x перемещение влево равно -20, а перемещение вправо — 20 пикселей
Для y перемещение вверх равно -20, а перемещение вниз — 20 пикселей
var Character = function(name, xPos, yPos) {
this.name = name;
this.xPos = xPos;
this.yPos = yPos;
// the changedXPos and changedYPos functions are part of the prototype itself
// therefore they should be inside the prototype's outer braces { }
this.changedXPos = function(value) {
this.xPos = xPos value;
// change the x position here
value = 20;
}
console.log(value);
this.changedYPos = function(value) {
// complete this similar to what we've done in the changedXPos function
}
this.details = function() {
return "The person's name is: " this.name " and their xPos is: " this.xPos "and their yPos is: " this.yPos
};
Character.prototype.toString = function toString() {
var info = "Name: " this.name " xPos is " this.xPos " and yPos is " this.yPos;
return info;
};
} // end of prototype
// create the 3 character objects here
// output the name and currect position of each character
var john = new Character("John", 10, 30);
console.log(john.toString(john));
var joe = new Character("Joe", 40, 20);
console.log(joe.toString(joe));
var doe = new Character("Doe", 50, 10);
console.log(doe.toString(doe));
// change the position of each character
// output the new position of each character
// now call the changedXPos and changedYPos functions
john.changedXPos(20);
john.changedYPos(50);
// print the new position to the console
console.log("new position for john: " john.toString(john));
Комментарии:
1. что вы подразумеваете под изменением положения вправо и влево? можете ли вы объяснить подробнее, в любом случае проверьте эту ссылку, если это то, что вы хотите js.do/code/changeposition Я опубликую это в качестве ответа
2. Что не работает с тем, как вы реализовали
changedXPos
? Как вы думаете, какова цельvalue = 20;
? Откуда вы ожидаетеconsole.log(value);
получитьvalue
? Комментарии в коде бесполезны, поскольку они ничего не проясняют. Каковы (плохо названные) методыchangedXPos
иchangedYPos
что они должны делать?3. Я добавил информацию из оценки, которую мне дали, и что они просят меня сделать
4. @Bec Это больше похоже на то, что реализация должна включать a
moveLeft
, amoveRight
, amoveUp
иmoveDown
метод, который просто уменьшает или увеличиваетthis.x
илиthis.y
by20
.5. Я думаю, что назначение хотело, чтобы он просто изменил значение свойства x и y созданного объекта Я полностью согласен с вами в вопросе не самый лучший, @Bec вы проверили ссылку, которую я отправил выше, js.do/code/changeposition
Ответ №1:
Ну вот, вам просто нужно удалить не имеющую ссылок переменную console.log(значение) и обновить свойства x и y в установщиках
<script>
var Character = function(name, xPos, yPos) {
this.name = name;
this.xPos = xPos;
this.yPos = yPos;
// the changedXPos and changedYPos functions are part of the prototype itself
// therefore they should be inside the prototype's outer braces { }
this.changedXPos = function(value) {
this.xPos = value;
}
this.changedYPos = function(value) {
this.yPos = value;
}
this.details = function() {
return "The person's name is: " this.name " and their xPos is: " this.xPos "and their yPos is: " this.yPos
};
Character.prototype.toString = function toString() {
var info = "Name: " this.name " xPos is " this.xPos " and yPos is " this.yPos;
return info;
};
} // end of prototype
// create the 3 character objects here
// output the name and currect position of each character
var john = new Character("John", 10, 30);
console.log(john.toString(john));
var joe = new Character("Joe", 40, 20);
console.log(joe.toString(joe));
var doe = new Character("Doe", 50, 10);
console.log(doe.toString(doe));
// change the position of each character
// output the new position of each character
// now call the changedXPos and changedYPos functions
john.changedXPos(20);
john.changedYPos(50);
// print the new position to the console
console.log("new position for john: " john.toString(john));
document.write("new position for john: " john.toString(john));
</script>