У меня есть игра, которая почти закончена, но я забыл о гравитации и импульсе, я не хотел реализовывать box2d, и я получил гравитацию, чтобы работать, но может ли кто-нибудь объяснить как применить импульс без box2d?Как применить импульс к объекту БЕЗ box2d libgdx
0
A
ответ
1
Вы можете имитировать импульс, просто добавив скорость к скорости объектов. Как что:
class GameObject {
private Vector2 velocity = new Vector2();
public void applyImpulse(Vector2 impulse) {
velocity.add(impulse);
}
public void update(float deltaTime) {
float dampingPerSecond = 0.5f;
float dampingFactor = Math.max(0f, 1 - deltaTime*dampingPerSecond);
velocity.scl(dampingFactor);
}
}
Теперь вы можете использовать его как это: object.applyImpulse(new Vector2(3, 2));
. Если вы обновите все свои GameObject
s в каждом кадре, ваш объект будет замедляться после подачи импульса. Это то, что вы ожидали бы, если никакие дальнейшие импульсы не поразили ваш объект. Выполнение этого реалистичным способом, но это сложно и может быть достигнуто только с помощью box2d. Однако вы можете настроить его и надеяться, что он будет работать в вашей игре. Не забудьте всегда применять силу тяжести после этого.
Смежные вопросы
- 1. BOX2D flash-игра Применить/Применить импульс?
- 2. Как применить анимацию к телу box2d?
- 3. Линейный импульс Box2D?
- 4. Libgdx/Box2D Применить Push к телу?
- 5. Применить линейный импульс к вращению Sprite-Cocos2d/Box2D
- 6. В libgdx, как добавить трение к объекту body2d box2d?
- 7. Box2D получить импульс столкновения БЕЗ b2ContactListener
- 8. Box2D Contact Listener, LibGDX
- 9. вычислить импульс box2d для определенного угла удара
- 10. Как ограничить импульс после прыжка в box2d?
- 11. Применить импульс к SKSpriteNode от пользователя swipe
- 12. Невозможно применить импульс к физическому телу SKSpriteNode
- 13. Box2D Как передать оставшийся импульс от одного тела к другому
- 14. Применить импульс не работает
- 15. Применить преобразование к объекту
- 16. Игрок LibGDX Box2D спотыкается
- 17. LibGDX + Box2D rotation
- 18. Libgdx light without box2d
- 19. Box2d Скопируйте тело (libgdx)
- 20. Box2D Гравитация по конкретному объекту?
- 21. LibGDX Touch Box2D Body
- 22. LibGDX Box2d getWorldPoint issue
- 23. Sprite Kit - Применить статический импульс
- 24. Как применить центробежную силу в box2d?
- 25. Libgdx, box2d: как сделать revolutejoint?
- 26. Использование Libgdx ищет поведение с box2d?
- 27. Рендеринг сустава? [libGDX/Box2D]
- 28. Libgdx box2d Tiled map
- 29. LibGDX BOX2D change maxPolygonVertices
- 30. LibGDX GLSL Применить к фону
Я не понимаю, мог бы я назвать обновление каждую секунду или когда я его назову? –
Каждый кадр. Вот почему он принимает deltaTime. – noone