📄 arkanoidcanvas.java
字号:
for (int j = 0; j < 2; j++) {
if (Liy[j] == 0 && Lt >= 16) {
Lix[j] = Vxp + 4;
Liy[j] = 120;
if (Lc >= 1) {
Ll[j] = 1;
}
Lt = 0;
} else {
Lt = 0;
}
}
}
} else
if (k == 1) {
AllKeyCode &= -2;
} else
if (k == 6) {
AllKeyCode &= -3;
} else
if (k == 35) {
AllKeyCode &= 0xfffeffff;
} else
if (k == 42) {
AllKeyCode &= 0xffff7fff;
if (Pm == 1) {
Pm = 0;
} else
if (Pm == 0) {
Pm = 1;
}
}
}
protected synchronized void keyHandler(int i, Graphics g) {
if ( (i & 0x40) != 64) {
;
}
if ( ( (i & 0x44) == 4 || (i & 0x44) == 64) && (Scene == 15 || Scene == 50)) {
if ( (i & 0xa10) == 16 || (i & 0xa10) == 512 || (i & 0xa10) == 2048) {
if (V == 0) {
V = -2;
} else {
V = -6;
}
} else
if (V == 0) {
V = -1;
} else {
V = -4;
}
}
if ( ( (i & 0x188) == 8 || (i & 0x188) == 256 || (i & 0x188) == 128) &&
(Scene == 15 || Scene == 50)) {
if ( (i & 0xa10) == 16 || (i & 0xa10) == 512 || (i & 0xa10) == 2048) {
if (V == 0) {
V = 2;
} else {
V = 6;
}
} else
if (V == 0) {
V = 1;
} else {
V = 4;
}
}
if ( ( (i & 0xa10) == 16 || (i & 0xa10) == 512 || (i & 0xa10) == 2048) &&
(Scene == 15 || Scene == 50)) {
if (Vst == 4) {
Lt++;
for (int j = 0; j < 2; j++) {
if (Liy[j] != 0 || Lt != 1) {
continue;
}
PlayPhrase(ph[4], 1, 64);
Lix[j] = Vxp + 4;
Liy[j] = 120;
break;
}
} else
if (Pk < 32) {
Pk = 32;
PlayPhrase(ph[6], 1, 64);
}
}
int k = Txp[0] - Vxp;
if (k < 0) {
k = 0;
}
if (k >= Vs - 1) {
k = Vs - 2;
}
if (Scene == 15 || Scene == 50) {
Vxp += V;
if (Vxp + 10 <= 14) {
Vxp = 5;
} else
if (Vxp >= 104 - Vs) {
Vxp = 104 - Vs;
if (Brf != 0) {
Scene = 45;
}
}
if (Pk < 32) {
Txp[0] = Vxp + k;
}
}
}
private void PlayPhrase(Sound sound, int i, int j) {
j = 100;
try {
if (Pm == 0) {
sound.play(1);
}
} catch (Exception exception) {}
}
public void drawAllClear(Graphics g) {
g.setColor(0, 0, 0);
g.fillRect(0, 0, 176, 208);
Ltm = -1;
}
public void drawTitle(Graphics g) {
try {
g.drawImage(Img_title[0], 88, 35, 2 | 1);
g.drawImage(Img_title[1], 88, 170, 2 | 1);
} catch (Exception exception) {}
}
private void drawframe(Graphics g) {
g.setColor(255, 255, 255);
g.drawRect(3, 3, 101, 132);
}
public void drawScoreTitle(Graphics g) {
g.drawImage(Img_vouse[0], 117, 80, 0x10 | 4);
g.setColor(255, 255, 0);
g.setColor(255, 0, 0);
}
public void drawScore(Graphics g, boolean flag) {
String s;
if (Sc < 10) {
s = " " + Sc;
} else
if (Sc < 100) {
s = " " + Sc;
} else
if (Sc < 1000) {
s = " " + Sc;
} else
if (Sc < 10000) {
s = " " + Sc;
} else
if (Sc < 0x186a0) {
s = " " + Sc;
} else {
s = "" + Sc;
}
g.setColor(0, 0, 0);
g.setColor(255, 255, 255);
if (HSc <= Sc) {
HSc = Sc;
}
if (HSc == Sc || flag) {
String s1;
if (HSc < 10) {
s1 = " " + HSc;
} else
if (HSc < 100) {
s1 = " " + HSc;
} else
if (HSc < 1000) {
s1 = " " + HSc;
} else
if (HSc < 10000) {
s1 = " " + HSc;
} else
if (HSc < 0x186a0) {
s1 = " " + HSc;
} else {
s1 = "" + HSc;
}
g.setColor(0, 0, 0);
g.setColor(255, 255, 255);
}
}
public void drawVr(Graphics g) {
byte byte0 = 0;
if (Vr >= 99) {
Vr = 99;
}
if (Vr >= 10) {
byte0 = -5;
}
g.setColor(0, 0, 0);
g.fillRect(107, 89, 45, 15);
g.setColor(255, 255, 255);
}
public void drawWall(Graphics g) {
for (int k = 0; k < 13; k++) {
for (int i = 0; i < 10; i++) {
g.drawImage(Img_bg[0], 10 * i, k * 10, 0x10 | 4);
g.drawImage(Img_bg[1], 10 * i, k * 10 + 5, 0x10 | 4);
}
}
if (Rd % 11 == 0) {
Scene = 50;
g.drawImage(Img_doh[3], 29, 15, 0x10 | 4);
g.setColor(255, 255, 255);
} else {
Scene = 15;
Wc = 0;
for (int l = 0; l < 16; l++) {
for (int j = 0; j < 10; j++) {
if ( (Wd[l * 10 + j] & 0xf) > 0) {
g.drawImage(Img_wall[ (Wd[l * 10 + j] & 0xf) - 1], j * 10, l * 5,
0x10 | 4);
if ( (Wd[l * 10 + j] & 0xf) != 10) {
Wc++;
}
}
}
}
}
}
public void drawVouse(Graphics g) {
if (Vst == 4) {
g.drawImage(Img_vouse[3], Vxp, 125, 0x10 | 4);
} else {
g.drawImage(Img_vouse[ (Vs - 20) / 10], Vxp, 125, 0x10 | 4);
}
Vxp0 = Vxp;
}
public void drawBall(Graphics g) {
for (int i = 0; i < 8; i++) {
if (Lv[i] == 1) {
if (Vst == 5) {
g.setColor(255, 255 - (i << 4), 255);
} else {
g.setColor(255, 255, 255);
}
g.fillRect(Txp[i], Typ[i], 2, 2);
Txp0[i] = Txp[i];
Typ0[i] = Typ[i];
}
}
}
public void drawItem(Graphics g) {
for (int i = 0; i < 2; i++) {
if (Riy[i] != 0) {
int j = (Rix[i] - 5) / 10;
int k = (Riy[i] - 5) / 5;
int l = j * 10 + 5;
int i1 = k * 5 + 5;
int j1 = k * 10 + j;
if (125 - Riy[i] < 5 && Riy[i] - 125 < 5 && Vxp - Rix[i] < 10 &&
Rix[i] - Vxp < Vs) {
Sc += 100;
drawScore(g, false);
if (Vst == 2) {
DisruptionOff(g);
} else
if (Vst == 5) {
MegaBallOff(g);
} else
if (Vst == 3 && Rin[i] != 3) {
if (Vs == 30) {
Vxp += 5;
} else {
Vxp += 10;
}
Vs = 20;
} else
if (Vst == 1 && Rin[i] != 1) {
Pk = 32;
} else
if (Vst == 4 && Rin[i] == 4) {
Lc++;
} else
if (Vst == 4 && Rin[i] != 4) {
Lc = 0;
}
Vst = Rin[i];
if (Vst == 2) {
Disruption();
} else
if (Vst == 5) {
MegaBall();
} else
if (Vst == 3) {
if (Vs < 40) {
PlayPhrase(ph[8], 1, 127);
Vs += 10;
Vxp -= 5;
if (Vxp < 10) {
Vxp = 5;
}
if (Vs == 30 && Vxp >= 80) {
Vxp = 80;
}
if (Vs == 40 && Vxp >= 70) {
Vxp = 65;
}
Vxp0 = Vxp;
}
} else
if (Vst == 7) {
T = 4;
Re = 0;
} else
if (Vst == 6) {
PlayPhrase(ph[0], 1, 64);
Vr++;
drawVr(g);
} else
if (Vst == 0) {
Brf = 1;
} else
if (Vst == 8) {
Tn = 1;
}
Riy[i] = 0;
return;
}
if (Riy[i] > 128) {
Riy[i] = 0;
return;
}
Riy[i] += 2;
g.drawImage(Img_item[Rin[i]], Rix[i], Riy[i], 0x10 | 4);
}
}
}
public void ballMove(Graphics g) {
if (Pk == 32) {
for (int i = 0; i < 8; i++) {
boolean flag = false;
if (Lv[i] == 1) {
int j = Txp[i] + (Tdx[i] * T * C[di[i]]) / 125;
int k = Typ[i] + (Tdy[i] * T * S[di[i]]) / 125;
int l = j;
int i1 = k;
int l1 = j - Txp[i];
int i2 = k - Typ[i];
int j1;
if (l1 < 0) {
j1 = l1 * -1;
} else {
j1 = l1;
}
int k1;
if (i2 < 0) {
k1 = i2 * -1;
} else {
k1 = i2;
}
if (ballHit(g, Txp[i], Typ[i], i)) {
flag = true;
}
if (!flag) {
if (j1 >= k1) {
int j2 = 2 * k1 - j1;
int l2 = 2 * (k1 - j1);
int j3 = 2 * k1;
byte byte0;
int l3;
int j4;
if (l1 >= 0) {
l3 = Txp[i];
j4 = j;
byte0 = 1;
} else {
l3 = j;
j4 = Txp[i];
byte0 = -1;
} while (l3 < j4) {
if (j2 > 0) {
if (i2 >= 0) {
Typ[i]++;
} else {
Typ[i]--;
}
j2 += l2;
} else {
j2 += j3;
}
if (ballHit(g, Txp[i], Typ[i], i)) {
flag = true;
break;
}
if (l1 >= 0) {
l3 = Txp[i];
} else {
j4 = Txp[i];
}
Txp[i] += byte0;
}
} else {
int k2 = 2 * j1 - k1;
int i3 = 2 * (j1 - k1);
int k3 = 2 * j1;
byte byte1;
int i4;
int k4;
if (i2 >= 0) {
i4 = Typ[i];
k4 = k;
byte1 = 1;
} else {
i4 = k;
k4 = Typ[i];
byte1 = -1;
} while (i4 < k4) {
if (k2 > 0) {
if (l1 >= 0) {
Txp[i]++;
} else {
Txp[i]--;
}
k2 += i3;
} else {
k2 += k3;
}
if (ballHit(g, Txp[i], Typ[i], i)) {
flag = true;
break;
}
if (i2 >= 0) {
i4 = Typ[i];
} else {
k4 = Typ[i];
}
Typ[i] += byte1;
}
}
}
if (!flag) {
Txp[i] = l;
Typ[i] = i1;
} else {
Re++;
if (Re == 50) {
Re = 0;
T++;
if (T == 8) {
T = 6;
if (di[i] <= 2) {
di[i] = 5;
} else {
di[i] = 0;
}
}
}
}
}
if (i == 0 && Vst == 5) {
for (i = 7; i >= 1; i--) {
Txp[i] = Txp[i - 1];
Typ[i] = Typ[i - 1];
Tdx[i] = Tdx[i - 1];
Tdy[i] = Tdy[i - 1];
di[i] = di[i - 1];
}
i = 8;
}
}
} else
if (Pk < 32) {
Pk++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -