Jump to content

Search the Community

Showing results for tags 'multible sprites'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • HTML5 Game Coding
    • News
    • Game Showcase
    • Facebook Instant Games
    • Web Gaming Standards
    • Coding and Game Design
    • Paid Promotion (Buy Banner)
  • Frameworks
    • Pixi.js
    • Phaser 3
    • Phaser 2
    • Babylon.js
    • Panda 2
    • melonJS
    • Haxe JS
    • Kiwi.js
  • General
    • General Talk
    • GameMonetize
  • Business
    • Collaborations (un-paid)
    • Jobs (Hiring and Freelance)
    • Services Offered
    • Marketplace (Sell Apps, Websites, Games)

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Twitter


Skype


Location


Interests

Found 1 result

  1. Hi everyone, quick question, I googled that you can't add velecity to a group so I wrote this script and it works fine, but am I pulling to many resourses on the cpu if I create mulitble enemies at once on the screen, at present I have 2 enemies but will add more in laymans terms I have an external json file for the enemy x,y, key, velocity etc.., I then push each enemy into an empty array, and use a for loop in the update function to check collision against a wall and reverse the velocity here's the 2 parts I wrote in the create function : //create an empty array this.en = []; for (var i = 0; i <this.levelData.enemyData.length; i ++){ // add sprite to stage this.enemy = this.add.sprite(this.levelData.enemyData.x, this.levelData.enemyData.y, this.levelData.enemyData.key); //enable physics this.game.physics.arcade.enable(this.enemy); //give it a speeed for x this.enemy.body.velocity.x = this.levelData.enemyData.vel; this.enemy.scale.setTo(0.5); this.enemy.anchor.setTo(0.5); //push enemy into the array this.en.push(this.enemy); }; in the update function // enemy stuff for (var i=0; i < this.en.length; i++){ //hits wall this.game.physics.arcade.collide(this.en, this.collisionLayer, function(){ var hitRight = this.en.body.blocked.right; var hitLeft = this.en.body.blocked.left; if (hitRight){ this.en.body.velocity.x = - this.levelData.enemyData.vel; this.en.scale.setTo(-0.5,0.5); } if (hitLeft){ this.en.body.velocity.x = this.levelData.enemyData.vel; this.en.scale.setTo(0.5, 0.5); } }, null, this); // player hits enenmy this.game.physics.arcade.overlap(this.player, this.en, this.hitEnemy); } am I right or is there a better way to do it ? also on a seconadry note I originally used this in the update function this.game.physics.arcade.collide(this.en, this.collisionLayer, this.reverseEn, null, this); reverseEn : function(enemy, layer){ var hitRight = enemy.body.blocked.right; var hitLeft = enemy.body.blocked.left; var speed = enemy.body.velocity.x; if (hitRight){ enemy.body.velocity.x = -30; enemy.scale.setTo(-0.5,0.5); // console.log('hit right wall at ' + speed); } if (hitLeft){ enemy.body.velocity.x = 30; enemy.scale.setTo(0.5, 0.5); // console.log('hit left wall at ' + speed); } }, but speed is set at 0 and not at the this.en.bodyvelocity.x eg 30 - why is that ? hope it makes sense - thanks in advance Eric
×
×
  • Create New...