Как заставить персонажа войти в здание в Фазере 3? - PullRequest
0 голосов
/ 02 января 2019

Я делаю игру в стиле RPG сверху вниз, используя Tiled и Phaser 3. Я уже сделал карту в Tiled для города и магазина.Кроме того, я уже установил игровые объекты для местоположения магазина, куда игрок должен пойти, чтобы войти в магазин, и места, где игрок должен появиться.У меня проблемы с определением кода, который я собираюсь использовать, чтобы упростить эту функцию, а также вернуться к карте города.Еще одна вещь, если есть какие-то другие идеи о том, как это сделать, я все уши.

Обновление: я получил символ для загрузки на карту с функцией, которая у меня уже есть, но проблема в том, что я могуне двигайте моего персонажа.

Вот функция, которую я имею до сих пор:

// When the player walks into the store.
  player.onCollide = new Phaser.signal();
  Store.onCollide.add(enterstore,this);

  function enterstore(player){
 	const map2 = this.make.tilemap({ key: "map2" });
  	const tileset2 = map.addTilesetImage("store", "tiles2");

  	const storeLayer = map.createStaticLayer("Tile Layer 1", tileset, 0, 0);

  	storeLayer.setCollisionByProperty({ collides: true });

  	this.physics.add.collider(player, storeLayer);

  	storeLayer.setDepth(10);

  	const SpawnPoint = map.findObject("Objects", obj => obj.name === "Spawn Point");
  	const Store = map.findObject("Objects", obj => obj.name === "store");

  	player = this.physics.add
    .sprite(SpawnPoint.x, SpawnPoint.y, "atlas", "misa-front")
    .setSize(30, 40)
    .setOffset(282, 202);

 };

1 Ответ

0 голосов
/ 03 января 2019

Мое решение для этого довольно просто на самом деле.(Я не использую Phaser, но концепция та же самая)

В Tiled я поместил Rectangles в отдельный объектный слой.Эти прямоугольники покрывают области, которые ведут в другое место, например, двери, дыры в земле и т. Д. В свойствах объекта я определяю целевое местоположение.

Код, который вы просто проверяете на столкновение с этими прямоугольниками.Если игрок сталкивается с одним из них, вы перемещаете его в целевое местоположение (отдельный файл мозаики или другие координаты на текущей карте).

...