Vật lý xe bị trượt


13

Làm thế nào tôi có thể đi về việc tạo ra vật lý xe cho một chiếc xe có thể mất lực kéo? Tôi muốn nó có vẻ như người lái xe có bàn chân bẹt, vì vậy khi bạn nhấn ga, họ lái những chiếc bánh xe (phía sau) bị mất lực kéo, và khiến nó hơi khó điều khiển. Tôi cũng muốn có thể làm bánh rán và "trôi" quanh các góc.

Tôi cũng sẽ cần phải biết bao nhiêu "trượt" đang xảy ra, vì vậy tôi có thể thêm một lượng khói và lốp xe theo tỷ lệ.

Giả sử một trò chơi xe 2d, từ trên xuống.

Cảm ơn

Câu trả lời:


10

Đây là một phiên bản rất đơn giản nhưng sẽ tốt cho hầu hết các game loại arcade. Bạn cần các thuộc tính sau:

positionX, positionY - where the car is
velocityX, velocityY - speed on each axis
drag - how fast the car slows down
angle - the rotation of the car, in radians
angularVelocity - speed the car is spinning, in radians
angularDrag - how fast the car stops spinning
power - how fast car can accelerate
turnSpeed - how fast to turn

mọi khung hình:

positionX += velocityX
positionY += velocityY
velocityX *= drag
velocityY *= drag
angle += angularVelocity
angularVelocity *= angularDrag

tăng tốc

velocityX += sin(angle) * power;
velocityY += cos(angle) * power;

để lái trái

angularVelocity -= turnSpeed;

chỉ đạo đúng

angularVelocity += turnSpeed;

Để có được độ trôi tốt, đặt kéo và angularDrag rất gần với 1, ví dụ 0,9


Vì vậy, các điều khiển sẽ là sức mạnh (ga) và tốc độ góc (lái)? Hay tôi đang thiếu một số biến đổi?
drxzcl

không phải thế - quên giải thích cách bẻ lái. Đã cập nhật với biến TurnSpeed ​​mới.
Iain

2

Tôi đã đọc một bài báo hôm nay mô phỏng một số động lực học của xe trong khi va chạm và văng ra:

Kinh Chu; Jianbo Lu; Huei Peng, "Động lực học xe để đáp ứng với kỹ thuật bất động chính xác", Kỷ yếu của Hội nghị điều khiển và hệ thống động lực ASME 2008

Nó chứa một mô hình vật lý đại diện cho thời điểm lăn và mất lực kéo của lốp sau trong quá trình ngáp do lực va chạm có chủ ý. Có vẻ thú vị với các lập trình viên trò chơi quan tâm đến động lực học xe trong các vụ va chạm.


Khá là một nghiên cứu, nhưng tiếc là không phù hợp với vấn đề trong tầm tay. Bài viết là một phân tích 3D, với cuộn xe và tất cả. Câu hỏi liên quan đến trò chơi 2D hàng đầu. Như vậy vật lý 2D, không phải 3D.
Bram

1

Nói chung, tôi không đề xuất Vật lý cho các lập trình viên trò chơi của Bourg , nhưng anh ấy nói về điều này một chút trong Chương 10 (khoảng trang 171) và có thể cung cấp cho bạn một điểm khởi đầu.

Thật không may, mã xe trong PhysX vẫn là 'mẫu' và không được ghi chép rõ ràng, vì vậy bạn không thể dễ dàng tìm ra cách thức hoạt động của nó. Tôi tin rằng tôi đã thấy mã được lấy từ mẫu của họ hiển thị loại hành vi bạn đang tìm kiếm trong 3D, nhưng đó là mô phỏng cấp thấp hơn tôi nghĩ bạn muốn.


1

Điều đầu tiên bạn cần hiểu là "tỷ lệ trượt" và "vòng tròn lực kéo". Tỷ lệ trượt là một xấp xỉ tốt cho hành vi của lốp xe, với mối quan hệ phi tuyến tính giữa chênh lệch góc và lực lốp bên. Nó cũng cung cấp cho bạn thông tin phản hồi mô-men xoắn trình điều khiển (cho tay lái phản hồi lực).

Phiên bản siêu đơn giản của cả hai khái niệm như sau: góc lệch giữa hướng lăn và hướng chuyển động càng nhiều, lực càng vuông góc với hướng lăn (lực bên). Nó đạt cực đại tại (thường) có thể 5 ° đến 8 ° và rơi ra từ đó nếu tăng góc lốp.

Vòng tròn lực kéo về cơ bản là một bộ giới hạn cắt bỏ bất kỳ vectơ lực nào đi ra ngoài nó. Nó mô hình theo cách mà tăng tốc / phanh nặng làm giảm khả năng lái và ngược lại. Kích thước của vòng tròn lực kéo (vectơ lực kéo tối đa) quy mô với lực nhấn lốp xe xuống đất.

Bạn cần mô hình hóa lực bên (lái) riêng biệt với mô-men lái / phanh (quay) và lực kéo đối diện từ mặt đất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.