[PHASER] Bullet - Wall Collision Problem
http://www.html5gamedevs.com/topic/18121-phaser-bullet-wall-collision/
by John Eric Orolfo
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.4.4/phaser.js"></script>
JavaScript
var bulletTime, bullets, create, downButton, fireBullets, fireButton, floor, game, hitWall, leftButton, player, preload, rightButton, upButton, update, wall;
upButton = null;
leftButton = null;
downButton = null;
rightButton = null;
fireButton = null;
player = null;
bullets = null;
bulletTime = 0;
wall = null;
floor = null;
fireBullets = function() {
var bullet;
if (game.time.now > bulletTime && bullets.countDead() > 0) {
bullet = bullets.getFirstDead();
bullet.reset(player.x, player.y);
bullet.body.velocity.y = -100;
return bulletTime = game.time.now + 200;
}
};
hitWall = function(bullet, wall) {
bullet.kill();
};
preload = function() {
game.load.crossOrigin = 'anonymous';
game.load.tilemap('level0', 'https://raw.githubusercontent.com/stnight/battlecity/master/public/game_assets/level0.json', null, Phaser.Tilemap.TILED_JSON);
game.load.image('tiles', 'https://raw.githubusercontent.com/stnight/battlecity/master/public/game_assets/assets.png');
game.load.spritesheet('player', 'https://raw.githubusercontent.com/stnight/battlecity/master/public/game_assets/player.png');
game.load.image('bullet', 'https://raw.githubusercontent.com/stnight/battlecity/master/public/game_assets/bullet.png');
};
create = function() {
var map;
game.physics.startSystem(Phaser.Physics.ARCADE);
game.stage.backgroundColor = '#FFFFFF';
map = game.add.tilemap('level0');
map.addTilesetImage('assets', 'tiles');
floor = map.createLayer('floor');
wall = map.createLayer('walls');
game.physics.arcade.enable(wall);
map.setCollisionBetween(1, 100, true, 'walls');
wall.resizeWorld();
game.physics.arcade.enable(map);
game.physics.setBoundsToWorld();
player = game.add.sprite(150, 150, 'player');
player.anchor.setTo(0.5, 0.5);
game.physics.arcade.enable(player);
upButton = game.input.keyboard.addKey(Phaser.Keyboard.UP);
leftButton = game.input.keyboard.addKey(Phaser.Keyboard.LEFT);
downButton =...