ReferenceError: player1 is not defined
Итак, уважаемые знатоки, вопрос состоит в следующем:
У меня есть две кнопки в HTML: одна вызывает функцию new1, а другая - new2.
Также у меня есть JS:
var id = 1;
var name = "Имя";
var lpos = 50;
var bpos = 50;
var kolvo = 0;
function new1() {
var player1 = new Object() //создаем игрока 1
player1.id = 1; //присваиваем свойства
player1.name = name; //устанавливаем имя
player1.status = 1; //живой-1 мертвый-0
player1.location = "Летний лес"; //определяем локацию
player1.lpos = lpos; //определяем местоположение
player1.bpos = bpos; //определяем местоположение
alert("Первый игрок создан");
}
function new2() {
var player2 = new Object() //создаем игрока 2
player2.id = 2; //присваиваем свойства
player2.name = name; //устанавливаем имя
player2.status = 1; //живой-1 мертвый-0
player2.location = "Летний лес"; //определяем локацию
player2.lpos = lpos; //определяем местоположение
player2.bpos = bpos; //определяем местоположение
alert("Второй игрок создан");
}
document.onkeypress = function checkKeycode(event) {
var keycode; //keycode
var keyChar; //keychar
if (!event) var event = window.event;
if (event.keyCode) keycode = event.keyCode;
else if (event.which) keycode = event.which;
keyChar = String.fromCharCode(keycode);
if (id == player1.id) {
if (keyChar == "'") { // если кнопка влево
player1.lpos = player1.lpos + 5;
alert("player1 прошли вперед");
}
if (keyChar == "&") { // если кнопка вверх
alert("player1 прыгнули"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!прыжок пока не готов!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
if (keyChar == "%") { // если кнопка вправо
player1.lpos = player1.lpos - 5;
alert("player1 прошли назад");
}
}
if (id == player2.id) {
if (keyChar == "'") { // если кнопка влево
player2.lpos = player2.lpos + 5;
alert("player2 прошли вперед");
}
if (keyChar == "&") { // если кнопка вверх
alert("player2 прыгнули"); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!прыжок пока не готов!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
if (keyChar == "%") { // если кнопка вправо
player2.lpos = player2.lpos - 5;
alert("player2 прошли назад");
}
}
}
При нажатии на первую кнопку должен создаваться объект player1, что, собственно говоря, и происходит.
При нажатии кнопки "влево" должен выскакивать мэссэндж с именем игрока и его действием, но после нажатия кнопки "влево" консоль выдает следующие нехорошие слова:
ReferenceError: player1 is not defined
Ну а теперь самый важный вопрос: что не так?
P.S. Пока не стал отдельно создавать плееров, все работало на ура.