首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 堆房子遊戲成功失敗判定邏輯實現

     編輯:程式設計綜合問答

高度達標與穩定性檢測

成功條件

  • 房子高度 ≥ 目標高度(如 20 層)。
  • 重心在基座範圍內(水平偏移 < 基座寬度/2)。

失敗條件

  • 任意方塊碰撞檢測失敗(重疊非法)。
  • 整體重心超出基座 → 傾倒動畫後判定失敗。
  • 超時未達標。

判定代碼片段

void checkGameResult() {
    if (currentHeight >= TARGET_HEIGHT) {
        if (isStable()) {
            showDialog("成功!得分:" + score);
            saveHighScore(score);
        } else {
            startFallAnimation(() -> showDialog("倒塌了!"));
        }
    } else if (timeUp) {
        showDialog("時間到,高度不夠");
    }
}

boolean isStable() {
    float centerX = calculateCenterX();
    float baseLeft = baseRect.left, baseRight = baseRect.right;
    return centerX > baseLeft && centerX < baseRight;
}

UI 線程處理

遊戲循環運行在渲染線程,判定結果需 runOnUiThread 或 Handler.post 彈出對話框,避免 ANR。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved