Спрайт со спрайтом
Самый простой случай коллизий в Phaser - это коллизии между двумя одиночными спрайтами. В следующем примере создается капля и ей дается скорость падения. Проверка столкновения вызывается в функции обновления чтобы узнать когда капля упадет на землю. После того, как она упадет, она будет уничтожена.
Примите к сведению, что в этом и следующих примерах необходимо создать тела для спрайтов (через вызов game.physics.enable). После подключения физического тела к спрайту станет возможным доступ ко всем свойствам и методам тела спрайта, например ускорение и скорость.
var ground, rain; function create() { game.physics.startSystem(Phaser.Physics.ARCADE); ground = game.add.sprite(200, 400, ‘ground’); rain = game.add.sprite(200, 10, ‘rain’); game.physics.enable( [ ground, rain ], Phaser.Physics.ARCADE); rain.body.velocity.y = 100; } function update() { game.physics.arcade.collide(ground, rain, collisionHandler, null, this); } function collisionHandler (obj1, obj2) { obj2.kill(); }
Проверка столкновения в физической системе arcade выполняется в функции обновления. Первые два аргумента функции collide - это объекты, которые должны проверяться на столкновение. Третий аргумент - это функция, которая вызовется после того, как объекты столкнутся.
Аргументы для функции обработчика столкновений всегда передаются в том порядке, в котором они указаны в вызове метода collide. Из-за того, что капля была вторым аргументом в методе, вызванном в функции обновления, она будет переменной obj2 в обработчике. В этом примере мы убиваем спрайт капли, хотя мы также могли воспроизвести звуковой эффект или все что угодно в момент, когда капля касается земли.
Аргументы для функции обработчика столкновений всегда передаются в том порядке, в котором они указаны в вызове метода collide. Из-за того, что капля была вторым аргументом в методе, вызванном в функции обновления, она будет переменной obj2 в обработчике. В этом примере мы убиваем спрайт капли, хотя мы также могли воспроизвести звуковой эффект или все что угодно в момент, когда капля касается земли.












