Odwołanie do zmiennej innej klasy

0

Hej!
Tworzę pierwszą grę będącą połączeniem arkanoida i invadersów. Niestety mam problem, bo nie wiem jak się odwołać do zmiennej z innej klasy. Chcę, aby potwór Monster strzelał pociskiem BulletMonster w kierunku gracza Player, czyli o ile dobrze to rozumiem pocisk powinien pobierać zmienną x jako kierunek strzału (y w Player jest stałe).
Zamieszczam tylko klasę BulletMonster, opisująca zachowanie pocisku.
Co zrobić, żeby to działało?

	public class BulletMonster extends Actor {
		protected static final int BULLET_SPEED=3;
		protected static final double FIRING_FREQUENCY = 0.01;
		
		public BulletMonster(Stage stage) {
			super(stage);
				}
		
		Player player= new Player(stage);
		public void act() {
			super. act();
			y+=BULLET_SPEED;
			
			player.x+=BULLET_SPEED;                 //Odwołanie do położenia x gracza.
			if (y > Stage.WYSOKOSC_GRY)
				remove();
		}
		
		public void collision(Actor b) {
			if (b instanceof Player)
				stage.getPlayer().addShields(-10);
					remove();
		}
	}
2
  1. Lekcja na dziś: OBIEKT klasy to nie to samo co KLASA. Klasą są "krzesła". Obiektem jest "krzesło na którym w tej chwili siedzisz".
  2. To co robisz nie ma totalnie sensu. Tworzysz sobie w BulletMonster NOWEGO gracza. A potem chcesz z nim coś robić. Ja bym się jednak spodziewał że istnieje już gdzieś obiekt Gracz z którym chcesz mieć interakcje...
  3. Na pewno to nie bullet powinien rozkminiać kolizje. Co najwyżej możesz tak zrobić że twój Actor ma polożenie (bo chyba każdy i tak ma?) i ma metodę collidesWith(Actor anotherActor) w której dany aktor może sprawdzić czy jest w kolizji z innym, przekazanym jako parametr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1