Jump to content

Confused, need help! [Code inside]


fiverivers
 Share

Recommended Posts

Hello,

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'gamediv', { preload: preload, create: create, update: update });var sprite;//yArray contains the 4 possible positions for a sprite//all must be used once and no more.var yArray = [50, 200, 350, 500];var rand = reroll();function preload() {        game.load.image('badman', 'badman.gif');    game.load.image('evilman', 'Evilman.gif');};function create() {        // creating your 8 sprites with id from  0 to 7    for (i = 0; i <= 7; i += 1) {                //get a random value        reroll();        console.log(rand);        if (i < 4) {            //Add a sprite on the left side of the screen            //and it's y axis should be one of the four possible     values            sprite = game.add.sprite(50, yArray[rand], 'badman');            //Assigning an id to the sprite            sprite.id = i;            //removing the value which was just used            delete yArray[rand];        }        else {             // this else statement does the same but for the other side (right side)            sprite = game.add.sprite(670, yArray[rand], 'evilman');            sprite.id = i;        }    // we need to enable input before we can access the input events        sprite.inputEnabled = true;    // add the callback to the input down event        sprite.events.onInputDown.add(listener, this);    }        console.log(yArray);        game.add.text(100, 32, 'Drag and drop the the first sprite on the left side onto the last sprite on the right side!', { font:'16px Arial', fill: '#ffffff' });    };function update() {    };function listener(clickedSprite) {    console.log('the id of the sprite I clicked = ' + clickedSprite.id);}Array.prototype.contains = function(k) {  for(var i=0; i < this.length; i++){    if(this[i] === k){      return true;    }  }  return false;}function reroll() {        //gets a number number based on the size of array    var rand = Math.floor(Math.random() * yArray.length);    //checks if array value is undefined (aka - deleted)     if (typeof yArray[rand] === "undefined") {        reroll();    }    return rand;} 

What I am trying to do is place 8 sprites on the screen like so - 

 

01380f38d31f1235f60b4ca707e979d2.png

 

In order to do this I have set up an array with the values needed to place them in these positions. I am then trying to get a random value from that array so that the sprite is place in one of the four possible places. Next I try to remove the value from the array because it has just been used and I don't want sprites to overlap. I created a function called reroll which gets a random value from the array, but if the value was previously deleted (thus making it 'undefined') it calls itself again to get a different random value. I don't see why this isn't working?

 

Thanks

 

edit: added better comments

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...