Я использую Phaser.js и его физику p2, чтобы имитировать то, что «жидкие тела». Вы можете видеть в примере this, что создается своеобразное жидкое тело (кредиты Джону Уотсону). Единственное возможное взаимодействие - с движением мыши.Сделайте многочастное «жидкое тело» как одно тело
Я заметил некоторые интересные свойства, которые могли бы, вероятно, помочь мне получить то, что я притворяюсь, которые реституция, гравитация и затухания. Все они включены в показанный пример.
// 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;
После некоторых исследований и отражения я пришел к выводу, что тело я ищу должно быть более единым, чем, например, тело, что означает, что, в определенных пределах, сила, с направлением от центра тела (в центре + - верх тела) следует применять ко всем «малым телам», которые делают тело. Я полагаю, что после достижения этого, даже если я переведу все тело с помощью курсоров, он будет двигаться вместе. Целом токсикорезистентность Я хочу это форма тела сваи типа (меньше масса на верхней части и больше массы на нижней части):
Единственный путь для тела, чтобы терять массу должно быть внешняя сила, приложенная к тело, которое превосходит силу сопротивления, которая удерживает тело единым.
Даже после того, как researcing долгое время я, кажется очень потерял в этом вопросе ...
- Должен ли я буквально выбрать p2 сил (я считаю, что существует)?
- Должен ли я использовать пружины для подключения всех небольших тел? (springs)
- Как бы я всегда получал «центр тела»?
Спасибо.
Эй. Прошло уже некоторое время с тех пор, как вы ответили. Это был отличный ответ. У меня не было возможности спросить, чего я хочу до сих пор. Ну, я понял вашу логику (я не профессионал в физике, но я думаю, что понял). Одна из трудностей, с которыми я сталкиваюсь, заключается в том, чтобы перевести это на код ... Это не имеет особого отношения к самому вопросу, но, поскольку вы ответили на него очень хорошо, я думал, что вы можете привести меня куда-нибудь. Как вы манипулируете физическими силами при программировании, например ... Я бы предположил, что кто-то уже выполнил эту работу, и я бы с ней взаимодействовал?Я не уверен, достаточно ли я достаточно ясен – DigitalEvolution
@ Tojó Посмотрите на функцию GameState.prototype.update в своей ссылке. Там вы видите, что они меняют «dropple.body.velocity». Чтобы перейти от силы к скорости, помните, что 'F = m * a' и' a = v * Δt' -> 'v = F/(m * Δt)'. То есть, если вы вычислите некоторую силу F, вы найдете соответствующее изменение скорости путем деления силы на массу частицы и время с момента последнего обновления. – pingul