Chuyển động đạn 2D liên tục trong một shmup


8

Tôi đã theo dõi hướng dẫn pixelnest để tạo shmup 2D ( http://pixelnest.io/tutorials/2d-game-unity/player-and-en Kẻ / ).

Trong khi thực hiện điều này, tôi đã thử nghiệm tăng tốc độ bắn để có được một luồng đạn liên tục, và tôi nhận thấy rằng các viên đạn cách xa nhau hơn nếu con tàu bị di chuyển về phía sau và chúng bị vón cục khi con tàu được di chuyển về phía trước . Có cách nào để duy trì khoảng cách không đổi giữa các viên đạn bất kể chuyển động của người chơi không?

Tôi có nên quan tâm? Tôi có cảm giác rằng nếu người chơi di chuyển lùi thì tốc độ bắn về cơ bản sẽ chậm hơn (ít nhất là cho đến khi họ chạm tới mép màn hình) và ngược lại nếu bạn di chuyển về phía trước.

Câu trả lời:


16

Đó là hiệu ứng Doppler cổ điển , đó là điều khá bình thường. Nếu bạn di chuyển về phía sau, thì khoảng cách giữa các viên đạn là normal_distance_caused_by_firerate - ship_backward_distance_passed, ngay lập tức normal_distance_caused_by_fireratenếu tàu đứng yên.

Nếu bạn tăng tốc độ đạn, thì hiệu ứng này sẽ khó nhận thấy hơn, bởi vì khoảng cách sẽ lớn hơn so với tốc độ tàu.

Bạn có thể tăng cường hỏa lực nếu tàu di chuyển trở lại và giảm nó khi di chuyển về phía trước, nhưng đây không phải là hành vi bình thường và nó có vẻ kỳ lạ. Nó cũng sẽ gian lận trong logic trò chơi.

Để tổng hợp, bạn nên để nguyên như vậy, hoặc giảm tốc độ tàu / tăng tốc độ đạn để giảm chênh lệch thị giác về khoảng cách giữa các viên đạn trong khi di chuyển tiến / lùi.


2
+1 cho hiệu ứng Doppler. Như kreys đề cập đây là hành vi hoàn toàn bình thường và hầu hết mọi người cảm thấy là một phản ứng tự nhiên.
Piddock Tom 'Blue'

Hah, tôi đã đọc về hiệu ứng Doppler nhưng nó không bao giờ nghĩ rằng nó sẽ được áp dụng ở đây! Đối với 'phản ứng tự nhiên', tôi quan tâm hơn nếu điều này sẽ ảnh hưởng đến sự cân bằng trong trò chơi. Nó thực sự tạo ra một cơ chế rủi ro / phần thưởng nhỏ thú vị (đến gần kẻ thù hơn để tiêu diệt chúng nhanh hơn). Các shmup khác (touhou, shmup kho báu, v.v.) dường như đã đạt được khoảng cách đạn không đổi nhưng rất có thể là chúng đã tạo ra vận tốc đạn cao đến mức tôi bị lừa nghĩ rằng khoảng cách giữa các phát bắn vẫn giữ nguyên.
MHTri

Bạn không thực sự giết kẻ thù nhanh hơn nhiều. Tôi nghĩ bạn vẫn còn bối rối? Sự khác biệt duy nhất về hiệu quả tiêu diệt là "độ trễ" của đạn (thời gian cần một viên đạn để di chuyển) vì băng thông (tốc độ bắn) là như nhau. Vì vậy, về cơ bản nếu bạn ở gần nó sẽ chết nhanh hơn chỉ vì đạn di chuyển một khoảng cách ngắn hơn mà mất ít thời gian hơn.
AturSams

Hãy giả sử rằng nếu tôi sử dụng vũ khí laser, vũ khí đó sẽ không có nhiều thời gian di chuyển (liên quan đến vũ khí dựa trên viên đạn) và do đó gây sát thương liên tục lên mục tiêu bất kể người chơi di chuyển như thế nào. Câu hỏi của tôi về cơ bản là làm cho vũ khí dựa trên viên đạn hoạt động như tia laser, vì nếu người chơi di chuyển lùi / tiến thì thời gian di chuyển của viên đạn sẽ tăng / giảm.
MHTri

2
@MHTri Khả năng khai thác hiệu ứng doppler của bạn bị giới hạn một cách tự nhiên bởi khoảng cách còn lại giữa bạn và mục tiêu. Cuối cùng, bạn sẽ phải rút lui, và trong thời gian đó, tốc độ bắn hiệu quả của bạn (từ quan điểm của các mục tiêu) đã giảm. Bạn di chuyển càng nhanh, tốc độ bắn càng cao, nhưng bạn sẽ hết chỗ càng sớm. Điều đó không có nghĩa là một người chơi thông minh không thể tận dụng lợi thế của nó - nếu bạn có thể tiêu diệt kẻ thù trước khi bạn hết chỗ và rút lui khi không có kẻ thù, đó là một chiến thắng ròng. Nhưng tôi cho rằng chơi thông minh nên được khen thưởng, không bị trừng phạt.
Doval

1

Thêm vận tốc của tàu vào vận tốc đạn khi chúng được tạo ra.

Khi di chuyển về phía sau, đạn sẽ bị chậm lại. Khi di chuyển về phía trước, họ sẽ được tăng tốc. Tuy nhiên, điều này sẽ có tác dụng làm cho các viên đạn di chuyển theo chiều ngang khi con tàu thực hiện - thử nghiệm với việc các viên đạn chỉ bị ảnh hưởng bởi vận tốc y.


Trớ trêu thay, trong khi điều này gần với vật lý thực tế hơn tránh được "vấn đề" mà tác giả câu hỏi đang cố tránh, thì kết quả không như tôi mong đợi khi là người chơi. Như @kreys nói, hiệu ứng Doppler là những gì mọi người mong đợi để thấy ở đây.
Peeja

3
Nếu bạn làm như vậy, bạn có thể thấy mình trong những tình huống kỳ lạ, ví dụ như khi bạn bắn nhanh hai viên đạn, trong khi thay đổi hướng di chuyển của con tàu từ phía sau sang phía trước, bạn sẽ có những viên đạn với tốc độ khác nhau, trong đó người ta có thể đuổi kịp người kia, hoàn toàn không tự nhiên
kreys

(Sau đó, một lần nữa, nó chỉ gần với vật lý thực tế hơn nếu không có lực cản không khí. Và để thực sự chính xác, bạn cũng sẽ trừ đi đạn của con tàu khỏi con tàu. Nhưng điều đó thật ngớ ngẩn.)
Peeja

Cám ơn vì cái này. Tôi sẽ thử dùng tối nay và xem điều gì sẽ xảy ra, nhưng tôi tưởng tượng đây là một trường hợp tối ưu hóa sớm và khoảng cách đạn thay đổi sẽ có hiệu ứng chơi trò chơi không đáng kể.
MHTri

Tôi đồng ý rằng bạn không thực sự cần phải quan tâm đến cái này. Tôi biết tôi không chơi khi tôi chơi SHMUP
Steffan Donal
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.