Сделал, но корявым образом. Очень печально что на этом форуме мало кто имеет желание помогать.
//Создание заграждения 1
createBar: function() {
//создаем координату игрик
var rand = Math.floor(Math.random()*(2 + 1))+1;
if (rand == 1) race.bary0 = race.bary = 1;
else if (rand == 2) race.bary0 = race.bary = 4;
else race.bary0 = race.bary = 7;
race.line = rand;
race.barx0 = race.barx = -3; //задаем координату икс
//рандомим заграждение
rand = Math.floor(Math.random()*(7 - 1 + 1))+1;
race.curBar = race.barricades[rand];
for (var i=0; i<4; i++) {
for (var j=0; j<3; j++) {
if (race.curBar[i][j]) race.cells[race.barx0+i][race.bary0+j].css('backgroundImage', race.colors[1]);
}
}
},
//Создание заграждения 2
createBar2: function() {
var rand = Math.floor(Math.random()*(2 + 1))+1;
if (rand == 1) race.bary0_2 = race.bary_2 = 1;
else if (rand == 2) race.bary0_2 = race.bary_2 = 4;
else race.bary0_2 = race.bary_2 = 7;
race.line_2 = rand;
race.barx0_2 = race.barx_2 = -3;
rand = Math.floor(Math.random()*(7 - 1 + 1))+1;
race.curBar_2 = race.barricades[rand];
for (var i=0; i<4; i++) {
for (var j=0; j<3; j++) {
if (race.curBar_2[i][j]) race.cells[race.barx0_2+i][race.bary0_2+j].css('backgroundImage', race.colors[1]);
}
}
},
//Создание заграждения 3
createBar3: function() {
//здесь тоже самое, что и в race.createBar3();
},
//Обновление поля (для заграждения 1)
refreshBar: function() {
race.draw(race.curBar, race.barx0, race.bary0, race.colors[0]);
race.draw(race.curBar, race.barx, race.bary, race.colors[1]);
race.barx0 = race.barx;
race.bary0 = race.bary;
},
//Обновление поля (для заграждения 2)
refreshBar2: function() {
race.draw(race.curBar_2, race.barx0_2, race.bary0_2, race.colors[0]);
race.draw(race.curBar_2, race.barx_2, race.bary_2, race.colors[1]);
race.barx0_2 = race.barx_2;
race.bary0_2 = race.bary_2;
},
//Обновление поля (для заграждения 3)
refreshBar3: function() {
//здесь тоже самое что и в race.refreshBar2();
},
moveDown: function() {
if (race.curBar_2) {
//обновление заграждения 2
if (race.canGo(race.curBar_2, race.barx_2+1, race.bary_2)) {
++race.barx_2;
race.refreshBar2();
}
else race.gameOver();
}
if (race.curBar_3) {
//обновление заграждения 3
if (race.canGo(race.curBar_3, race.barx_3+1, race.bary_3)) {
++race.barx_3;
race.refreshBar3();
}
else race.gameOver();
}
//обновление заграждения 1
if (race.canGo(race.curBar, race.barx+1, race.bary)) {
if (race.barx == 5) race.createBar2(); //создание заграждения 2
if (race.barx == 10) race.createBar3(); //создание заграждения 3
++race.barx;
race.refreshBar();
}
else {
if (race.barx == 19) { //если заграждение достигло низа экрана
//2 заграждение теперь 1
race.curBar = race.curBar_2; race.line = race.line_2;
race.barx0 = race.barx0_2; race.bary0 = race.bary0_2;
race.barx = race.barx_2; race.bary = race.bary_2;
//3 заграждение теперь 2
race.curBar_2 = race.curBar_3; race.line_2 = race.line_3;
race.barx0_2 = race.barx0_3; race.bary0_2 = race.bary0_3;
race.barx_2 = race.barx_3; race.bary_2 = race.bary_3;
race.createBar3(); // создание нового заграждения
}
else race.gameOver(); //иначе смерть xD (конец игры)
}
},