Snake – etap 2

Poniżej kolejny etap w naszej drodze do snake’a:

int vx, vy;
int len;

int t;

int timer;

int dimx, dimy;

int sx, sy;

PVector apple = new PVector();

ArrayList<PVector> body = new ArrayList<PVector>();

void setup() {
  frameRate(50);
  size(600, 400);

  t = 100;
  timer = 0;

  sx = 20;
  sy = 20;

  dimx = int(width/sx);
  dimy = int(height/sy);

  background(0, 0, 0);
  len = 5;
  for (int i=0; i<len; i++) {
    body.add(new PVector(300, 200));
  }


  apple = new PVector(sx*int(random(0, dimx)), sy*int(random(0, dimy)));
  println(apple.x);
  println(apple.y);

  vx = sx;
  vy = 0;
}

void draw() {
  background(0);
  noStroke();
  
  fill(0, 150, 0);
  
  rect(body.get(0).x, body.get(0).y, sx, sy);
  
  fill(0, 255, 0);

  for (int i=1; i<body.size(); i++) {
    rect(body.get(i).x, body.get(i).y, sx, sy);
  }

  fill(255, 0, 0);
  rect(apple.x, apple.y, sx, sy);

  if (keyPressed == true && keyCode == UP && vy != sy) {
    vy = -sy;
    vx = 0;
  }

  if (keyPressed == true && keyCode == DOWN && vy != -sy) {
    vy = sy;
    vx = 0;
  }

  if (keyPressed == true && keyCode == RIGHT && vx != -sx) {
    vy = 0;
    vx = sx;
  }

  if (keyPressed == true && keyCode == LEFT && vx != sx) {
    vy = 0;
    vx = -sx;
  }

  if (keyPressed == true && key == 'c') {
    vx = 0;
    vy = 0;
  }
  if (keyPressed == true && keyCode == 32) {
    setup();
  }


  for (int i=1; i<body.size(); i++) {
    body.get(body.size()-i).x = body.get(body.size()-i-1).x;
    body.get(body.size()-i).y = body.get(body.size()-i-1).y;
    
    //if(body.get(0).x == body.get(i).x && body.get(0).y == body.get(i).y && timer >10){
    // setup(); 
    //}
  }

  body.get(0).x = body.get(0).x+vx;
  body.get(0).y = body.get(0).y+vy;  

  
  body.get(0).x = (width+body.get(0).x) % width;
  body.get(0).y = (height+body.get(0).y) % height;
  

  if (body.get(0).x == apple.x && body.get(0).y == apple.y) {
    apple = new PVector(sx*int(random(0, dimx)), sy*int(random(0, dimy)));
    body.add(new PVector(body.get(0).x, body.get(0).y));

    if (t>0) {
      t = t - 5;
    }
  }

  delay(t);
  timer = timer + 1; 

}
Udostępnij znajomym

Zostaw komentarz