Come applicare un attrito in un corpo Phaser.P2.body? In un gioco basato sul phaser Air-Hockey. Come "turn-off il flusso d'aria" da hockey da tavolo,Come applicare l'attrito "aria" in un corpo Phaser P2?
In questo esempio:? http://jsfiddle.net/ywzmkso3/32/
// Initialize Phaser, and creates a 400x490px game
var game = new Phaser.Game(400, 400, Phaser.CANVAS, 'game_div');
var game_state = {};
// Creates a new 'main' state that wil contain the game
game_state.main = function() { };
game_state.main.prototype = {
preload: function() {
// Function called first to load all the assets
},
create: function() {
game.physics.startSystem(Phaser.Physics.P2JS);
game.physics.p2.restitution = 0.7;
//start drawing a circle
var graphics = game.add.graphics(0, 0);
graphics.beginFill(0xFF3300);
graphics.lineStyle(0);
graphics.beginFill(0xFFFF0B);
graphics.drawCircle(100, 100, 40);
graphics.endFill();
//creating an sprite from draw
var spriteCircle = game.add.sprite(100, 300, graphics.generateTexture());
// And destroy the original graphics object
graphics.destroy();
spriteCircle.anchor.set(0.5);
game.physics.p2.enable([ spriteCircle ], false);
spriteCircle.body.setCircle(20);// 20 radius
spriteCircle.body.mass = 1;
spriteCircle.body.debug = true;
//give some initial velocity
spriteCircle.body.velocity.x = 10000
spriteCircle.body.velocity.y = 19999
},
update: function() {
},
};
// Add and start the 'main' state to start the game
game.state.add('main', game_state.main);
game.state.start('main');
Questo è un esempio molto buono e realistico se la tabella è sul .. ma. se il tavolo è spento ?? Il puc dovrebbe muoversi più lentamente e dovrebbe avere un arresto più breve. Voglio simularlo. Immaginando che il cerchio giallo sia il disco da airhockey e lo sfondo nero sia uno di quei tavoli aerati. Come impostare una forza di attrito tra puc e table?
P2 doc sembra avere un sacco di cose relative a collisioni e contatti con i bordi del corpo e dei materiali ... ma come simulare l'attrito con l'aria? o "l'acqua" se questo corpo sta nuotando .. o un attrito con disco e tavolo?
Ps. provare a degradare P2.body.velocity.xe y in update() promuove il comportamento di deviazioni.
noti che si chiama resistenza e di solito è una forza contromisure. Potrebbe essere necessario eseguire il rollover del proprio modificatore. Nota che la resistenza di solito va con il quadrato della velocità, quindi se la velocità è relativamente piccola allora la resistenza sarà bassa. Inoltre, se la resistenza è costante, ridurrà la velocità solo di una quantità costante e sarà la stessa di un semplice rallentamento. Quindi, dovresti considerare se è importante anche se tu simuli la fisica reale. – AbstractDissonance