예제 #1
0
  private void colisionCase() {

    int gateWidth = gateEndX - gateStartX;

    if ((disk.getX() - disk.getRadius() - fieldBorder < 0) && (disk.getDx() < 0)) {

      disk.setX(0 + disk.getRadius() + fieldBorder);
      disk.inverseDx();
    }

    if ((disk.getX() + disk.getRadius() + fieldBorder > field.getWidth()) && (disk.getDx() > 0)) {

      disk.setX(field.getWidth() - disk.getRadius() - fieldBorder);
      disk.inverseDx();
    }

    if ((disk.getY() - disk.getRadius() - fieldBorder < 0)
        && (disk.getDy() < 0)
        && !((disk.getX() < gateEndX) && (disk.getX() > gateStartX))) {

      disk.setY(0 + disk.getRadius() + fieldBorder);
      disk.inverseDy();
    }

    if ((disk.getY() + disk.getRadius() + fieldBorder > field.getHeight())
        && (disk.getDy() > 0)
        && !((disk.getX() < gateEndX) && (disk.getX() > gateStartX))) {

      disk.setY(field.getHeight() - disk.getRadius() - fieldBorder);
      disk.inverseDy();
    }
  }
예제 #2
0
 private void slow() {
   double sp = Math.sqrt(disk.getDx() * disk.getDx() + disk.getDy() * disk.getDy());
   if ((disk.getDx() == 0) && (disk.getDy() == 0)) {
     sp = 1;
   }
   disk.setDx(
       (float)
           (Math.signum(disk.getDx())
               * (Math.abs(disk.getDx()) - Math.abs(disk.getDx() * fading / sp))));
   disk.setDy(
       (float)
           (Math.signum(disk.getDy())
               * (Math.abs(disk.getDy()) - Math.abs(disk.getDy() * fading / sp))));
 }
예제 #3
0
  public void move(float speed) {

    for (Strikeable item : players) {
      if (item.isStrike(this.disk)) {
        item.strike(this.disk);
      }
    }

    for (Strikeable item : gatePoints) {
      if (item.isStrike(this.disk)) {
        item.strike(this.disk);
      }
    }

    if (field.isStrike(this.disk)) {
      field.strike(this.disk);
    }

    disk.setX((disk.getX() + disk.getDx() / speed));
    disk.setY((disk.getY() + disk.getDy() / speed));

    slow();

    colisionCase();
    if (goalCase()) {}

    players[0].setDx((players[0].getX() - oldx));
    players[0].setDy((players[0].getY() - oldy));
    oldx = players[0].getX();
    oldy = players[0].getY();

    players[1].setDx((players[1].getX() - oldx1));
    players[1].setDy((players[1].getY() - oldy1));
    oldx1 = players[1].getX();
    oldy1 = players[1].getY();
  }