老師判斷游戲結束的方法有問題,假如你把方塊全部放一邊(左邊角落或者右邊角落),然后堆積到第二行時游戲就結束了,但講道理只要方塊還能落下來,游戲就沒有結束,所以我完善了這個方法的邏輯判斷,希望能幫到你
2018-04-08
// 檢查游戲結束
var checkOver = function(){
var gameOver = false;
for (var j=0; j<next.data.length; j++) {
for(var i=0; i<next.data[j].length; i++){
if(next.data[j][i] >= 1){
if(gameData[1][next.origin.x + i] == 1){
gameOver = true;
}
}
}
}
return gameOver;
}
var checkOver = function(){
var gameOver = false;
for (var j=0; j<next.data.length; j++) {
for(var i=0; i<next.data[j].length; i++){
if(next.data[j][i] >= 1){
if(gameData[1][next.origin.x + i] == 1){
gameOver = true;
}
}
}
}
return gameOver;
}
2018-04-08
最贊回答 / 慕粉3918152
肯定是你復制錯了- = 你復制上面gameData[cur.origin.x + i][cur.origin.y + j] == 2然后沒修改好直接寫了gameData[cur.origin.x + i][cur.origin.y + j] == 1;正確寫法是gameData[cur.origin.x + i][cur.origin.y + j] = 1;多了一個等號
2018-04-08
// 下移
var down = function(){
var posx = cloneObject(cur);
posx.origin.x = posx.origin.x + 1;
if(check(posx,cur)){
clearData();
cur.origin.x = cur.origin.x + 1;
setData();
}
refreshDiv(gameData,gameDivs);
}
var down = function(){
var posx = cloneObject(cur);
posx.origin.x = posx.origin.x + 1;
if(check(posx,cur)){
clearData();
cur.origin.x = cur.origin.x + 1;
setData();
}
refreshDiv(gameData,gameDivs);
}
2018-04-07