Làm thế nào để áp dụng ma sát trong Phaser.P2.body? Trong trò chơi dựa trên Phaser Air-Hockey. Làm thế nào để "turn-off không khí dòng chảy" từ bảng hockey,Làm thế nào để áp dụng ma sát "không khí" trong Phaser P2 Body?
Trong ví dụ này: 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');
Đây là một ví dụ rất tốt và thực tế nếu bảng là trên .. nhưng. nếu bàn tắt? Puc nên di chuyển chậm hơn và nên dừng ngắn hơn. Tôi muốn mô phỏng điều đó. Đang tưởng tượng rằng vòng tròn màu vàng là quả bóng airhockey và nền đen là một trong những bảng có ga. Làm thế nào để thiết lập một lực ma sát giữa puc và bảng?
Tài liệu P2 dường như có rất nhiều thứ liên quan đến va chạm và tiếp xúc với các cạnh của cơ thể và Vật liệu ... nhưng làm thế nào để mô phỏng ma sát với "không khí"? hoặc "nước" nếu cơ thể này đang bơi .. hoặc một ma sát với puck và bàn?
Ps. cố gắng làm giảm P2.body.velocity.x và y trong bản cập nhật() thúc đẩy hành vi định tuyến lại lạ.
Lưu ý rằng nó được gọi là kéo và nó thường là một lực phản tác dụng. Bạn có thể phải cuộn công cụ sửa đổi của riêng bạn cho nó. Lưu ý rằng kéo thường đi với bình phương của vận tốc, vì vậy nếu vận tốc là tương đối nhỏ thì kéo sẽ thấp. Ngoài ra, nếu kéo là hằng số thì nó sẽ chỉ giảm vận tốc một lượng không đổi và sẽ giống như việc làm chậm nó xuống. Vì vậy, bạn nên xem xét nếu nó thậm chí còn quan trọng nếu bạn mô phỏng vật lý thực. – AbstractDissonance