rosancoderian Posted January 24, 2014 Share Posted January 24, 2014 How to collide between line and sprite?something like var w = 320;var h = 640;var line;var sprite;var game = new Phaser.Game(w, h, Phaser.AUTO, '', { 'preload': preload, 'create': create, 'update': update });function preload() { game.load.spritesheet('sprite', 'enemy.png', 8, 8);}function create() { sprite = game.add.sprite(0, 0, 'sprite'); sprite.body.collideWorldBounds=true; sprite.body.gravity.y = 9.8; line = game.add.graphics(0, 0); line.beginFill(0xffffff); line.lineStyle(1, 0xffffff, 1); line.moveTo(0, h/2-1); line.lineTo(w, h/2-1); line.endFill();}function update() { game.physics.collide(sprite, line, collHandler, null, this);}function collHandler(obj1, obj2) { console.log('collision!!!!');}but it's not working Link to comment Share on other sites More sharing options...
Heppell08 Posted January 24, 2014 Share Posted January 24, 2014 Do you any more information on what you actually need? Like do you need the sprite to walk on a platform? Give more detail for an answer to your issue. Link to comment Share on other sites More sharing options...
rosancoderian Posted January 24, 2014 Author Share Posted January 24, 2014 yeah, something like that Link to comment Share on other sites More sharing options...
@99golems Posted January 24, 2014 Share Posted January 24, 2014 pretty sure you'll have to write your own collision logic for colliding a line with a sprite. The easiest (and it's not really that easy) way that I can think of is use geometry to see if a segment intersects another segment. Run this check four times, once for each "side" of the sprite. This also requires you to figure out the line equations for your line, and also for your sides of your sprite. The math gets pretty hairy but it's doable. It's not that efficient though, so i would collide with lines sparingly. Link to comment Share on other sites More sharing options...
Vidsneezes Posted January 24, 2014 Share Posted January 24, 2014 if you want your sprite to stop falling,an easy way to go about it would be to have it's gravity at zero and only activate it when it leaves the ground.And you can still draw the line but it would be only cosmetically there. var ground = 320;function update(){ sprite.gravity.y = 0 if (sprite.y < ground) { sprite.gravity.y = 10 }} Link to comment Share on other sites More sharing options...
Recommended Posts