📄 arkanoidcanvas.java
字号:
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 + -