⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arkanoidcanvas.java

📁 Arkanoid, game for mobile device It containt only source code, not any document related.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
      if (Pk == 32) {
        PlayPhrase(ph[6], 1, 64);
      }
    }
  }

  public boolean ballHit(Graphics g, int i, int j, int k) {
    if (i < 4) {
      i = 4;
      Txp[k] = 4;
    }
    if (i > 103) {
      i = 103;
      Txp[k] = 103;
    }
    if (j < 4) {
      j = 4;
      Typ[k] = 4;
    }
    if (j > 133) {
      j = 133;
      Typ[k] = 133;
    }
    int l = i + 1;
    int i1 = j + 1;
    int j2 = (i - 5) / 10;
    int k2 = (j - 5) / 5;
    int l2 = (l - 5) / 10;
    int i3 = (i1 - 5) / 5;
    int j1 = j2 * 10 + 5;
    int k1 = k2 * 5 + 5;
    int l1 = l2 * 10 + 5;
    int i2 = i3 * 5 + 5;
    int j3 = k2 * 10 + j2;
    int k3 = i3 * 10 + l2;
    if (Tdx[k] > 0 && Tdy[k] > 0) {
      if (j1 + 9 == l && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 < 9 &&
          j2 >= 0 && (Wd[j3 + 11] & 0xf) != 0 && (Wd[j3 + 10] & 0xf) == 0 &&
          (Wd[j3 + 1] & 0) == 0) {
        if (255 != wallHit(g, j3 + 11, j1 + 10, k1 + 5, 1)) {
          Tdx[k] = -1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 + 9 == l && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 < 9 &&
          j2 >= 0 && (Wd[j3 + 11] & 0xf) != 0 && (Wd[j3 + 10] & 0xf) != 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        wallHit(g, j3 + 10, j1, k1 + 5, 1);
        if (255 != wallHit(g, j3 + 1, j1 + 10, k1, 1)) {
          Tdx[k] = -1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 + 9 == l && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 < 9 &&
          j2 >= 0 && (Wd[j3 + 11] & 0xf) == 0 && (Wd[j3 + 10] & 0xf) != 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        Txp[k] += 2;
        Typ[k] += 2;
        return true;
      }
      if (j1 + 9 == l && k1 + 4 == i1 && i >= 103 && k2 >= 0 && k2 < 15 &&
          j2 < 9 && j2 >= 0 && (Wd[j3 + 10] & 0xf) != 0) {
        if (255 != wallHit(g, j3 + 10, j1, k1 + 5, 1)) {
          Tdx[k] = -1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 + 9 == l && k2 < 16 && j2 < 9 && j2 >= 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        if (255 != wallHit(g, j3 + 1, j1 + 10, k1, 1)) {
          Tdx[k] = -1;
        }
        return true;
      }
      if (l1 + 9 == l && i3 < 16 && l2 < 9 && l2 >= 0 &&
          (Wd[k3 + 1] & 0xf) != 0) {
        if (255 != wallHit(g, k3 + 1, l1 + 10, i2, 1)) {
          Tdx[k] = -1;
        }
        return true;
      }
      if (i >= 103) {
        Tdx[k] = -1;
        PlayPhrase(ph[7], 1, 64);
        return true;
      }
    } else
    if (Tdx[k] > 0 && Tdy[k] < 0) {
      if (j1 + 9 == l && k1 == j && k2 > 0 && k2 <= 16 && j2 < 9 && j2 >= 0 &&
          (Wd[j3 - 9] & 0xf) != 0 && (Wd[j3 - 10] & 0xf) == 0 &&
          (Wd[j3 + 1] & 0xf) == 0) {
        if (255 != wallHit(g, j3 - 9, j1 + 10, k1 - 5, 1)) {
          Tdx[k] = -1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 + 9 == l && k1 == j && k2 > 0 && k2 <= 16 && j2 < 9 && j2 >= 0 &&
          (Wd[j3 - 9] & 0xf) != 0 && (Wd[j3 - 10] & 0xf) != 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        wallHit(g, j3 - 10, j1, k1 - 5, 1);
        if (255 != wallHit(g, j3 + 1, j1 + 10, k1, 1)) {
          Tdx[k] = -1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 + 9 == l && k1 == j && k2 > 0 && k2 <= 16 && j2 < 9 && j2 >= 0 &&
          (Wd[j3 - 9] & 0xf) == 0 && (Wd[j3 - 10] & 0xf) != 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        Txp[k] += 2;
        Typ[k] -= 2;
        return true;
      }
      if (j1 + 9 == l && k1 == j && i >= 103 && k2 > 0 && k2 <= 16 && j2 <= 9 &&
          j2 >= 0 && (Wd[j3 - 10] & 0xf) != 0) {
        if (255 != wallHit(g, j3 - 10, j1, k1 - 5, 1)) {
          Tdx[k] = -1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 + 9 == l && k2 < 16 && j2 < 9 && j2 >= 0 &&
          (Wd[j3 + 1] & 0xf) != 0) {
        if (255 != wallHit(g, j3 + 1, j1 + 10, k1, 1)) {
          Tdx[k] = -1;
        }
        return true;
      }
      if (l1 + 9 == l && i3 < 16 && l2 < 9 && l2 >= 0 &&
          (Wd[k3 + 1] & 0xf) != 0) {
        if (255 != wallHit(g, k3 + 1, l1 + 10, i2, 1)) {
          Tdx[k] = -1;
        }
        return true;
      }
      if (i >= 103) {
        Tdx[k] = -1;
        PlayPhrase(ph[7], 1, 64);
        return true;
      }
    } else
    if (Tdx[k] < 0 && Tdy[k] > 0) {
      if (j1 == i && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 + 9] & 0xf) != 0 && (Wd[j3 - 1] & 0xf) == 0 &&
          (Wd[j3 + 10] & 0xf) == 0) {
        if (255 != wallHit(g, j3 + 9, j1 - 10, k1 + 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 == i && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 + 9] & 0xf) != 0 && (Wd[j3 - 1] & 0xf) != 0 &&
          (Wd[j3 + 10] & 0xf) != 0) {
        wallHit(g, j3 - 1, j1 - 10, k1, 1);
        if (255 != wallHit(g, j3 + 10, j1, k1 + 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 == i && k1 + 4 == i1 && k2 >= 0 && k2 < 15 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 + 9] & 0xf) == 0 && (Wd[j3 - 1] & 0xf) != 0 &&
          (Wd[j3 + 10] & 0xf) != 0) {
        Txp[k] -= 2;
        Typ[k] += 2;
        return true;
      }
      if (j1 == i && k1 + 4 == i1 && i <= 4 && k2 >= 0 && k2 < 15 && j2 <= 9 &&
          j2 >= 0 && (Wd[j3 + 10] & 0xf) != 0) {
        if (255 != wallHit(g, j3 + 10, j1, k1 + 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = -1;
        }
        return true;
      }
      if (j1 == i && k2 < 16 && j2 <= 9 && j2 > 0 && (Wd[j3 - 1] & 0xf) != 0) {
        if (255 != wallHit(g, j3 - 1, j1 - 10, k1, 1)) {
          Tdx[k] = 1;
        }
        return true;
      }
      if (l1 == i && i3 < 16 && l2 <= 9 && l2 > 0 && (Wd[k3 - 1] & 0xf) != 0) {
        if (255 != wallHit(g, k3 - 1, l1 - 10, i2, 1)) {
          Tdx[k] = 1;
        }
        return true;
      }
      if (i <= 4) {
        Tdx[k] = 1;
        PlayPhrase(ph[7], 1, 64);
        return true;
      }
    } else
    if (Tdx[k] < 0 && Tdy[k] < 0) {
      if (j1 == i && k1 == j && k2 > 0 && k2 <= 16 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 - 11] & 0xf) != 0 && (Wd[j3 - 10] & 0xf) == 0 &&
          (Wd[j3 - 1] & 0xf) == 0) {
        if (255 != wallHit(g, j3 - 11, j1 - 10, k1 - 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 == i && k1 == j && k2 > 0 && k2 <= 16 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 - 11] & 0xf) != 0 && (Wd[j3 - 10] & 0xf) != 0 &&
          (Wd[j3 - 1] & 0xf) != 0) {
        wallHit(g, j3 - 1, j1 - 10, k1, 1);
        if (255 != wallHit(g, j3 - 10, j1, k1 - 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 == i && k1 == j && k2 > 0 && k2 <= 16 && j2 <= 9 && j2 > 0 &&
          (Wd[j3 - 11] & 0xf) == 0 && (Wd[j3 - 10] & 0xf) != 0 &&
          (Wd[j3 - 1] & 0xf) != 0) {
        Txp[k] -= 2;
        Typ[k] -= 2;
        return true;
      }
      if (j1 == i && k1 == j && i <= 4 && k2 > 0 && k2 <= 16 && j2 <= 9 &&
          j2 >= 0 && (Wd[j3 - 10] & 0xf) != 0) {
        if (255 != wallHit(g, j3 - 10, j1, k1 - 5, 1)) {
          Tdx[k] = 1;
          Tdy[k] = 1;
        }
        return true;
      }
      if (j1 == i && k2 < 16 && j2 <= 9 && j2 > 0 && (Wd[j3 - 1] & 0xf) != 0) {
        if (255 != wallHit(g, j3 - 1, j1 - 10, k1, 1)) {
          Tdx[k] = 1;
        }
        return true;
      }
      if (l1 == i && i3 < 16 && l2 <= 9 && l2 > 0 && (Wd[k3 - 1] & 0xf) != 0) {
        if (255 != wallHit(g, k3 - 1, l1 - 10, i2, 1)) {
          Tdx[k] = 1;
        }
        return true;
      }
      if (i <= 4) {
        Tdx[k] = 1;
        PlayPhrase(ph[7], 1, 64);
        return true;
      }
    }
    if (Tdy[k] > 0) {
      if (i1 >= 124 && i1 <= 129) {
        if (l >= Vxp && i <= (Vxp + Vs) - 1) {
          Tdy[k] = -1;
          Typ[k] = 123;
          int l3 = l - Vxp;
          int j4 = i - Vxp;
          if (Tdx[k] > 0) {
            if (Vs == 20) {
              if (l3 < 3) {
                di[k] = 0;
              } else
              if (l3 < 7) {
                di[k] = 1;
              } else
              if (l3 < 10) {
                di[k] = 2;
              } else
              if (l3 < 14) {
                di[k] = 3;
              } else
              if (l3 < 18) {
                di[k] = 4;
              } else {
                di[k] = 5;
              }
            } else
            if (Vs == 30) {
              if (l3 < 4) {
                di[k] = 0;
              } else
              if (l3 < 10) {
                di[k] = 1;
              } else
              if (l3 < 15) {
                di[k] = 2;
              } else
              if (l3 < 20) {
                di[k] = 3;
              } else
              if (l3 < 28) {
                di[k] = 4;
              } else {
                di[k] = 5;
              }
            } else
            if (Vs == 40) {
              if (l3 < 7) {
                di[k] = 0;
              } else
              if (l3 < 14) {
                di[k] = 1;
              } else
              if (l3 < 20) {
                di[k] = 2;
              } else
              if (l3 < 27) {
                di[k] = 3;
              } else
              if (l3 < 34) {
                di[k] = 4;
              } else {
                di[k] = 5;
              }
            }
          } else
          if (Vs == 20) {
            if (j4 < 3) {
              di[k] = 0;
            } else
            if (j4 < 7) {
              di[k] = 1;
            } else
            if (j4 < 10) {
              di[k] = 2;
            } else
            if (j4 < 14) {
              di[k] = 3;
            } else
            if (j4 < 18) {
              di[k] = 4;
            } else {
              di[k] = 5;
            }
          } else
          if (Vs == 30) {
            if (j4 < 4) {
              di[k] = 0;
            } else
            if (j4 < 10) {
              di[k] = 1;
            } else
            if (j4 < 15) {
              di[k] = 2;
            } else
            if (j4 < 20) {
              di[k] = 3;
            } else
            if (j4 < 28) {
              di[k] = 4;
            } else {
              di[k] = 5;
            }
          } else
          if (Vs == 40) {
            if (j4 < 7) {
              di[k] = 0;
            } else
            if (j4 < 14) {
              di[k] = 1;
            } else
            if (j4 < 20) {
              di[k] = 2;
            } else
            if (j4 < 27) {
              di[k] = 3;
            } else
            if (j4 < 34) {
              di[k] = 4;
            } else {
              di[k] = 5;
            }
          }
          di[k] = Dg[di[k]];
          if (di[k] < 0) {
            Tdx[k] = -1;
            di[k] = di[k] * -1;
          } else {
            Tdx[k] = 1;
          }
          if (Vst == 1) {
            Pk = 0;
            PlayPhrase(ph[1], 1, 64);
          } else {
            PlayPhrase(ph[6], 1, 64);
          }
          return true;
        }
        if (Tn != 0) {
          Tn = 0;
          Tdy[k] = -1;
          return true;
        }
      } else {
        if (k1 + 4 == i1 && k2 < 15 && k2 >= 0 && (Wd[j3 + 10] & 0xf) != 0) {
          if (255 != wallHit(g, j3 + 10, j1, k1 + 5, 1)) {
            Tdy[k] = -1;
          }
          return true;
        }
        if (i2 + 4 == i1 && i3 < 15 && i3 >= 0 && (Wd[k3 + 10] & 0xf) != 0) {
          if (255 != wallHit(g, k3 + 10, l1, i2 + 5, 1)) {
            Tdy[k] = -1;
          }
          return true;
        }
        if (i1 >= 134) {
          Lv[k] = 0;
          int i4;
          for (i4 = 0; i4 < 8; i4++) {
            if (Lv[i4] == 1) {
              break;
            }
          }

          if (i4 == 8 || Vst == 5) {
            Scene = 25;
            g.setColor(255, 255, 255);
            Doh = 0;
            if (Vr > 0) {
              Vr--;
            }
            if (Vr == 0) {
              Scene = 30;
            }
          }
          return true;
        }
      }
    } else {
      if (k1 == j && k2 < 17 && k2 > 0 && (Wd[j3 - 10] & 0xf) != 0) {
        if (255 != wallHit(g, j3 - 10, j1, k1 - 5, 1)) {
          Tdy[k] = 1;
        }
        return true;
      }
      if (i2 == j && i3 < 17 && i3 > 0 && (Wd[k3 - 10] & 0xf) != 0) {
        if (255 != wallHit(g, k3 - 10, l1, i2 - 5, 1)) {
          Tdy[k] = 1;
        }
        return true;
      }
      if (j <= 4) {
        Tdy[k] = 1;
        PlayPhrase(ph[7], 1, 64);
        return true;
      }
    }
    return false;
  }

  public int wallHit(Graphics g, int i, int j, int k, int l) {
    if ( (Wd[i] & 0xf) != 10) {
      if ( (Wd[i] & 0xf) == 9 && Vst != 5) {
        PlayPhrase(ph[9], 1, 64);
        if ( (l << 4) - (Wd[i] & 0xf0) >= 0) {
          l -= (Wd[i] & 0xf0) >> 4;
          Wd[i] &= 0xffffff0f;
        } else {
          Wd[i] -= l << 4;
          l = 0;
        }
        if ( (Wd[i] & 0xf0) == 0) {
          Sc += Rd * 15;
          drawScore(g, false);
          wallBreak(BGg, j, k, i);
          Wd[i] &= 0;
        }
        return l;
      }
      PlayPhrase(ph[11], 1, 64);
      Sc += 5;
      drawScore(g, false);
      l--;
      wallBreak(BGg, j, k, i);
      Wd[i] &= 0;
      if (Vst != 5) {
        return l;
      } else {
        return 255;
      }
    }
    if (Rd % 11 == 0) {
      Doh++;
      Dc = 1;
      PlayPhrase(ph[2], 1, 64);
      if (Doh == 30) {
        Sc += 1000;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -