Sign in to follow this  
Souleste

Make Bullet shoot in desired direction

Recommended Posts

I am trying to make a 'bullet' from the var weapon shoot in a certain direction, this bullet is actually a pokemon ball as I am just making a practice game.

I cannot seem to make the 'bullet' go in the direction that I would like it to, I entered: weapon.body.velocity.x = -100; under the the: if (cursors.left.isDown) but this did not work, when I pressed any key the screen would just freeze.

Please help me make the 'bullet' go in the direction I want.

 

var items;
var game;
var player;
var weapon;
var cursors;
var fireButton;


function addItems() {
  items = game.add.physicsGroup();
  createItem(100, 400, 'coin');
}

function createItem(left, top, image) {
  var item = items.create(left, top, image);
  item.animations.add('spin');
  item.animations.play('spin', 10, true);
}

function itemHandler(player, item) {
  item.kill();

}


window.onload = function () {
  game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });

  function preload() {

    game.stage.backgroundColor = ('#424242');

    game.load.spritesheet('coin', 'coin.png', 36, 44);
    game.load.spritesheet('player', 'hero.png', 64, 64);
    game.load.spritesheet('bullet', 'Pokeball.png');


  }


  function create() {

        player = this.game.add.sprite(100, 200, 'player');
    // ANIMATION FOR PLAYER CONTROLS
        down = player.animations.add('down', [0,1,2,3], 10, true);
        left = player.animations.add('left', [4,5,6,7], 10, true);
        right = player.animations.add('right', [8,9,10,11], 10, true);
        up = player.animations.add('up', [12,13,14,15], 10, true);

        // enable physics in the game (can't go through walls, gravity, etc.)

        game.physics.enable(player, weapon, Phaser.Physics.ARCADE);
        game.physics.startSystem(Phaser.Physics.P2JS);
        game.physics.startSystem(Phaser.Physics.ARCADE);
        game.physics.p2.enable(player, weapon);


        player.body.setSize(30, 45, 16, 12);
        player.body.immovable = false;
        // enable keyboard arrows for controls
        cursors = game.input.keyboard.createCursorKeys();
        // camera will follow the character
        game.camera.follow(player);

        addItems();


        //  Creates 1 single bullet, using the 'bullet' graphic
        weapon = game.add.weapon(1, 'bullet');

        //  The bullet will be automatically killed when it leaves the world bounds
        weapon.bulletKillType = Phaser.Weapon.KILL_WORLD_BOUNDS;

        //  Because our bullet is drawn facing up, we need to offset its rotation:
        weapon.bulletAngleOffset = 90;


        //  The speed at which the bullet is fired
        weapon.bulletSpeed = 400;



        game.physics.arcade.enable(player);

        //  Tell the Weapon to track the 'player' Sprite, offset by 14px horizontally, 0 vertically
        weapon.trackSprite(player, 30, 0, true);

        cursors = this.input.keyboard.createCursorKeys();

        fireButton = this.input.keyboard.addKey(Phaser.KeyCode.SPACEBAR);

  }

  function update() {

        game.physics.arcade.overlap(player, items, itemHandler);

    // PLAYER CONTROLS
        player.body.velocity.set(0);
        // player presses left key
        if (cursors.left.isDown)
        {
            player.body.velocity.x = -100;
            player.play('left');

        }
        // player presses right key
        else if (cursors.right.isDown)
        {
            player.body.velocity.x = 100;
            player.play('right');
        }
        // player presses up key
        else if (cursors.up.isDown)
        {
            player.body.velocity.y = -100;
            player.play('up');
        }
        // player presses down key
        else if (cursors.down.isDown)
        {
            player.body.velocity.y = 100;
            player.play('down');
        }
        // player does not press anything
        else
        {
            player.animations.stop();
        }

        if (fireButton.isDown) {

          weapon.fire();

        }

    }
  function render() {

    weapon.debug();

  }

}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.