Как указать ширину и высоту моего объекта JAVA - PullRequest
0 голосов
/ 06 февраля 2020

Поэтому я пытаюсь добавить обнаружение столкновений для небольшой игры, которую я создаю, и я указываю ширину и высоту моего класса защитника, но я не могу этого сделать. Мой код ниже дает мне сообщение о том, что глобальные переменные ширины и высоты не существуют

class Defender
{
  int x,y;

  Defender(int x, int y)
  {
   this.x = x;
   this.y = y;
  }

  void render()
  {
    //draw a defender
 fill(255,0,0);
 rect(x,y,50,20);
 triangle(x+50,y,x+50,y+20,x+60,y+10);
 fill(0,0,100);
 rect(x,y-10,20,10);
  }


  boolean collision()
  {
   color detectedColour;
   for (int i=y; i<y+ Defender.height; i++) {
     detectedColour = get(x + Defender.width, i);
     if (detectedColour == Alien1) {
       return true;
     }
  }
  return false;
  }
}

1 Ответ

1 голос
/ 06 февраля 2020

Проблема в том, что вы пытаетесь получить доступ к переменным статически , когда они не существуют в классе. Создайте членов класса, которые представляют ширину и высоту защитника.

class Defender {

    private final int x;

    private final int y;

    private final int width;

    private final int height;

    public Defender(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }

    // getters
}
Defender defender = new Defender(0, 0, 1, 1);

int width = defender.width;

int height = defender.height;
...