Tôi sử dụng công cụ vật lý đạn thông qua Panda3d.
Khung cảnh của tôi vẫn rất đơn giản, hãy nghĩ 'Wolfenstein3d': dựa trên nền gạch, những bức tường là những hình khối vững chắc.
Tôi hy vọng các bức tường sẽ chặn người chơi và tôi hy vọng người chơi sẽ trượt dọc theo các bức tường trong trường hợp tỷ lệ không bình thường.
Những gì tôi nhận được là những gì tôi mong đợi, với một sự khác biệt: có một số jitter. Nếu tôi cố ép mình vào tường, thì tôi thấy các khung hình nhấp nháy nhanh giữa hai vị trí. Chúng khác nhau khoảng 0,04 đơn vị khoảng cách, tương ứng với 4 cm trong trò chơi của tôi.
Tôi nhận thấy 4 cm ở nơi khác: đáy của máy nghe nhạc của tôi nằm dưới mặt đất 4 cm, khi nghỉ ngơi.
Điều đó có nghĩa là có một nơi nào đó trong động cơ Bullet có dung sai dài 0,04 đơn vị mặc định để phân biệt tiếp xúc với va chạm? Nếu vậy, tôi nên làm gì? Tôi có nên thay đổi quy mô trò chơi của mình để các đơn vị 0,04 này tương ứng với 0,4 cm, làm cho jitter nhỏ hơn mười lần? Hoặc tôi có thể yêu cầu viên đạn thay đổi dung sai của nó thành giá trị nhỏ hơn không?
Biên tập
Đây là jitter tôi nhận được: 6.155 - 6.118 = 0.036
LPoint3f(0, 6.11694, 0.835)
LPoint3f(0, 6.15499, 0.835)
LPoint3f(0, 6.11802, 0.835)
LPoint3f(0, 6.15545, 0.835)
LPoint3f(0, 6.11817, 0.835)
LPoint3f(0, 6.15726, 0.835)
LPoint3f(0, 6.11876, 0.835)
LPoint3f(0, 6.15911, 0.835)
LPoint3f(0, 6.11937, 0.835)
Tôi tìm thấy một phương thức setMargin. Tôi đặt nó thành 5 mm cả trên BoxShape cho các bức tường và trên hình dạng Capsule cho người chơi. Nó vẫn dao động khoảng 35 mm như được minh họa bởi nhật ký này (11.117 - 11.082 = 0.035):
LPoint3f(0, 11.0821, 0.905)
LPoint3f(0, 11.1169, 0.905)
LPoint3f(0, 11.082, 0.905)
LPoint3f(0, 11.117, 0.905)
LPoint3f(0, 11.082, 0.905)
LPoint3f(0, 11.117, 0.905)
LPoint3f(0, 11.0821, 0.905)
LPoint3f(0, 11.1175, 0.905)
LPoint3f(0, 11.0822, 0.905)
LPoint3f(0, 11.1178, 0.905)
LPoint3f(0, 11.0823, 0.905)
LPoint3f(0, 11.1183, 0.905)
Tuy nhiên, phần lề trên viên nang đã thay đổi sự thâm nhập của tôi với sàn, tôi cao hơn một chút (0,90 thay vì 0,835). Tuy nhiên, nó không thay đổi bất cứ điều gì khi va chạm với các bức tường.
Làm thế nào tôi có thể làm cho các va chạm vào các bức tường bớt bồn chồn?
Chỉnh sửa, ngày hôm sau:
Sau khi điều tra nhiều hơn, có vẻ như các đối tượng năng động cư xử tốt. Vấn đề của tôi xuất phát từ btKinIALCharacterControll mà tôi sử dụng để di chuyển nhân vật của mình; những thứ đó hoàn toàn bị lỗi, theo toàn bộ Internet: /.