Я использую Phaser.js и его физику p2, чтобы смоделировать, что такое «жидкие тела». В этом примере видно, что создается своего рода жидкое тело (кредиты Джону Ватсону). Единственное возможное взаимодействие — движение мыши.
Я заметил некоторые интересные свойства, которые, вероятно, могли бы помочь мне получить то, что я притворяюсь, а именно восстановление, гравитация и затухание. Все они включены в показанный пример.
// Add a force that slows down the droplet over time
droplet.body.damping = 0.3;
// Add bounciness and gravity
this.game.physics.p2.restitution = 0.8;
this.game.physics.p2.gravity.y = 250;
После некоторых исследований и размышлений я пришел к выводу, что тело, которое я ищу, должно быть более цельным, чем тело-пример, а это означает, что в определенных пределах должна быть приложена сила с направлением центра тела (центр + - вершина тела). всем «маленьким телам», из которых состоит тело. Я предполагаю, что после достижения этого, даже если я буду двигать все тело с курсорами, оно будет двигаться все вместе. Общий эффект, который я хочу, - это форма тела ворсового типа (меньшая масса в верхней части и большая масса в нижней части):
Единственным способом для тела потерять массу должно быть внешнее усилие, приложенное к телу, которое превосходит силу сопротивления, удерживающую тело единым.
Даже после долгого изучения я, кажется, очень потерялся в этом вопросе...
- Должен ли я буквально выбрать силы p2 (я верю, что они существуют)?
- Должен ли я использовать пружины для соединения всех маленьких тел? (пружины)
- Как мне всегда получать «центр тела»?
Спасибо.