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

📄 arkanoidcanvas.java

📁 Arkanoid, game for mobile device It containt only source code, not any document related.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        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 + -