Tôi có thể ngăn chuyển động chéo để khám phá thêm bản đồ không?


57

Trong một ô lưới trong đó chuyển động theo bất kỳ 8 hướng nào có cùng số lượt quay (quy tắc kiểu bàn cờ), tôi có thể ngăn chuyển động chéo hiển thị nhiều ô mới hơn chuyển động trực giao không?

Ví dụ: Bạn là hộp màu đỏ trong hình dưới đây. Các ô màu xanh lá cây hiện đang hiển thị cho bạn (trường nhìn vuông). Bạn có thể di chuyển một khoảng cách của một ô theo bất kỳ hướng nào trong tám hướng.

Nếu bạn di chuyển theo hướng đông bắc , bạn sẽ khám phá 13 ô mới (hiển thị màu xanh lam). Thay vào đó, nếu bạn di chuyển về phía nam , bạn sẽ chỉ khám phá 7 ô mới (hiển thị màu tím).

lưới với tầm nhìn phụ thuộc vào vị trí

Làm thế nào tôi có thể thực hiện du lịch theo từng hướng thuận lợi như nhau để khám phá?


27
Đây là một lỗ hổng cơ bản với thiết kế của một trò chơi như thế này. Bạn cần phải không cho phép di chuyển chéo hoặc chuyển sang một cái gì đó như lưới hex mà không có vấn đề này.
Tetrad

1
@Tetrad Bạn không sai về việc đó là một lỗ hổng, nhưng có lẽ bạn không nhận ra mức độ phổ biến của nó trong các trò chơi như thế này .
Ông Smith

8
Trong bất kỳ trò chơi nào mà chuyển động trực giao và đường chéo đều nhanh như nhau, sẽ luôn có một số điều chuyển động chéo là tốt hơn so với chuyển động trực giao và ngược lại. Nó chỉ không thể giải quyết được - nếu bạn cắm một lỗ khác sẽ mở ra.
Patashu

3
Không hoàn toàn là một câu trả lời, nhưng trong trò chơi của bạn có thể thực hiện một bước di chuyển chéo mất nhiều thời gian hơn so với một trực giao tỷ lệ thuận với chiều dài đường chéo? Thứ hai, bạn có thể có một giải pháp hỗn hợp trong đó chuyển động sử dụng mô hình kim cương và khoảng cách xem sử dụng hình vuông?
Vality

2
Một câu trả lời không hoàn toàn khác: Các chuyển động trực giao hoạt động như hiện tại, nhưng các chuyển động chéo khiến nguồn sáng trở nên "mờ" - nó không tiết lộ tất cả 13 hình vuông vừa lọt vào, nhưng chỉ có 7 (hoặc như vậy) của họ, được xác định ngẫu nhiên.
Người tuyết

Câu trả lời:


67

Dungeons và Dragons 3.5 (RPG bằng bút và giấy) có một giải pháp được sử dụng cho cả tính toán bán kính và chuyển động dựa trên lưới: chuyển động chéo có chi phí 1,5 chi phí trực giao. Vì đường chéo của một hình vuông đơn vị xấp xỉ 1.414, 1.5 là khá gần.

Bởi vì D & D 3.5 chỉ hỗ trợ chuyển động số nguyên, nên cách tính toán này thực sự là chuyển động trực giao có giá "một ô vuông". Chuyển động chéo đầu tiên của bạn cũng chỉ tốn "một hình vuông", nhưng đường chéo thứ hai có giá "hai hình vuông". Bạn xen kẽ một và hai hình vuông cho mỗi lần di chuyển chéo. Thực hiện quy tắc di chuyển này trong trò chơi của bạn sẽ xử lý một số vấn đề với chuyển động chéo.

Như sơ đồ này cho thấy, quy tắc di chuyển này tạo ra một xấp xỉ hợp lý các vòng tròn và cũng không bị tắt quá 1 khi so sánh với khoảng cách thực (khi trong vòng 15 đơn vị bắt đầu).

nhập mô tả hình ảnh ở đây

Nếu bán kính tầm nhìn / khám phá của bạn cũng được tính theo cách này, chuyển động chéo và khám phá đường chéo sẽ gần bằng hoặc xa như trực giao.


Chính xác những gì tôi muốn đề nghị. Mặc dù đáng chú ý là chiến lược này thuộc về hạn chế chuyển động nếu nhân vật chỉ có thể di chuyển một khoảng trống trên mỗi lượt (có vẻ như là trường hợp từ sơ đồ của câu hỏi?). Bạn có thể "nhớ" nếu chúng nằm trên các đường chéo lẻ / chẵn giữa các lượt, mặc dù điều này có thể gây nhầm lẫn / khó chịu cho người chơi. Bất kể, điều này hoạt động tốt cho vấn đề tầm nhìn.
Alexis Beingessner

5
@AlexisByingessner, đúng. Và người hỏi đã chỉ ra rằng anh ta muốn chuyển động giống như vua cờ vua, nhưng tôi cho rằng vì đây là một trang web phát triển trò chơi máy tính, tôi sẽ chỉ ra một giải pháp chơi trò chơi tốt. Nếu đây là một câu đố hay một câu hỏi toán học thuần túy, tôi sẽ mong đợi nó trên một trang web khác. Nếu đây là một trò chơi giống như lừa đảo, một số trong số họ đã hỗ trợ tốc độ di chuyển khác nhau.
Dane

Hầu hết các trò chơi Roguelike dường như theo lượt, nhưng thực sự có thành phần thời gian, vì vậy nếu bạn di chuyển theo đường chéo, các đối tượng khác sẽ có nhiều thời gian hơn để phản ứng trước khi bạn thực hiện một động tác khác.
Kos

67

Bạn cần thay đổi hình dạng của trường nhìn.

Vì vậy, khi bạn di chuyển theo bất kỳ hướng nào, cùng một số hình vuông mới sẽ hiển thị.

Đây là một khả năng:

ví dụ lưới


5
Hấp dẫn; Tôi chưa bao giờ xem xét một trường nhìn kim cương. Tuy nhiên, có một vấn đề với quan điểm này quá; Bây giờ, đó là một ý tưởng khủng khiếp khi đi theo đường chéo, bởi vì nếu bạn phát hiện ra kẻ thù trong khi di chuyển theo đường chéo, nó sẽ gần bạn hơn đáng kể so với khi bạn đi du lịch trực giao.
Ông Smith

43
@ mr.smith, vâng, đó là một vấn đề mới, nhưng tôi đã giải quyết một cũ của bạn ...
ChargingPun

Quả thực bạn đã làm; Có vẻ như tôi không đủ cụ thể với câu hỏi.
Ông Smith

8
Một hình tròn sẽ giúp ở đây?
amitp

3
@amitp Đây hình tròn - với điều kiện chức năng khoảng cách của bạn là khoảng cách Manhattan.
Daniel Wagner

27

Để có chuyển động chéo và trực giao cho thấy cùng một khu vực, bạn cần hai điều (mỗi điều, một mình, đã được đề xuất trong câu trả lời hoặc nhận xét khác):

  1. Khoảng tầm nhìn tròn :

    Hình ảnh của phạm vi xem giả hình tròn

    Về bản thân, điều này sẽ không cung cấp chính xác cùng một khu vực được tiết lộ cho cả hai loại chuyển động. Ví dụ, trong hình trên, chuyển động trực giao cho thấy 9 hình vuông, trong khi chuyển động chéo cho thấy 13. Nó vẫn tốt hơn tỷ lệ 13/7 cho khu vực xem hình vuông trong ví dụ của bạn.

    Trong thực tế, khi bán kính khung nhìn tăng lên, tỷ lệ các khu vực được tiết lộ trên mỗi bước chéo / trực giao có xu hướng √2 ≈ 1.414 cho một khu vực hình tròn, trong khi tỷ lệ tương tự cho khu vực xem hình vuông có xu hướng là 2.

  2. Chuyển động chéo chậm hơn :

    Trong cuộc sống thực, đi bộ theo đường chéo trên một lĩnh vực hình vuông mất nhiều thời gian hơn so với đi bộ dọc theo một trong hai bên. Trên thực tế, nó mất khoảng √2 ≈ 1.414 lần. Nếu bạn muốn chuyển động trong trò chơi của bạn cảm thấy thực tế, bạn cũng nên làm điều đó xảy ra trong trò chơi của mình.

    Trong thực tế, 3/2 = 1,5 là một xấp xỉ khá tốt của √2. Do đó, bạn chỉ có thể làm cho mỗi bước trực giao mất hai đơn vị thời gian và làm cho mỗi bước chéo mất ba. Với khu vực xem ví dụ ở trên, điều này mang lại 9/2 = 4,5 hình vuông cho mỗi đơn vị thời gian cho chuyển động trực giao và 13/3 = 4,33 tiết lộ hình vuông trên đơn vị thời gian cho chuyển động chéo. Khá gần, hả?

    Ngoài ra, nếu bạn muốn bám vào "1 bước = 1 đơn vị thời gian" cho chuyển động trực giao, bạn có thể sử dụng một cái gì đó như hệ thống D & D mà Dane đề xuất và làm cho mỗi bước chéo thứ hai tiêu tốn thêm một lượt. (Tuy nhiên, nếu bạn làm điều đó, bạn cần phải cung cấp cho mỗi đơn vị một bộ đếm rõ ràng về số bước chéo mà họ đã thực hiện; nếu không, bạn có thể kết thúc bằng các khai thác như, giả sử, E, NE, E, NE, .. . chuỗi phong trào cho phép người chơi khám phá nhanh hơn so với dự định.)


Một cách dễ dàng để ngăn chặn việc khai thác như vậy là nói rằng chi phí di chuyển theo đường chéo mất hai tích tắc trừ khi đi trước một di chuyển theo cùng một hướng mà mất hai tích tắc.
supercat

1
@supercat: Đúng vậy, nhưng điều đó sẽ rời khỏi E, NE, E, NE, ... tự đáng chú ý ít hiệu quả để khám phá hơn thẳng trực giao / chéo phong trào, mà có thể không được mong muốn một trong hai.
Ilmari Karonen

Nó sẽ để lại trình tự đó kém hiệu quả hơn, nhưng vậy thì sao? Không phải tất cả các phương pháp thăm dò nên có hiệu quả như nhau. Trên thực tế, có thể không có hình phạt thời gian cho những thay đổi về định hướng, với sự miễn trừ đối với các trường hợp di chuyển trước hoặc sau là một đường chéo hai lần.
supercat

2
Tôi đã làm một cái gì đó tương tự một lúc trước, và tôi đã giải quyết nó bằng cách di chuyển trực giao tốn hai "tích tắc" trên mỗi ô vuông và chuyển động chéo có giá ba.
Mason Wheeler

11

Vì bạn đang sử dụng lưới và biết người dùng đang tiến hành theo hướng nào, không có gì ràng buộc bạn phải điều chỉnh câu trả lời trước và sử dụng một trường nhìn khác nhau tùy theo hướng.

Ví dụ, bạn có thể mở rộng trường để bao gồm các góc khi bạn di chuyển theo hướng hồng y và thu nhỏ nó xuống hai hình vuông ở mỗi đầu trong trường hợp đường chéo của bạn để mỗi ô mở ra 9 hình vuông.

Một cách khác tùy thuộc vào cách thức hoạt động của ánh sáng của bạn là sử dụng xấp xỉ vòng tròn tốt hơn với khử răng cưa, để lộ một phần hình vuông.


Đó là một sự thỏa hiệp thú vị; nếu bạn di chuyển theo đường chéo, không thể nhìn thấy tất cả các ô thường thấy. Bạn có thể đợi một lượt (để khám phá các ô đó) hoặc tiếp tục di chuyển.
Ông Smith

8
câu trả lời nào là "câu trả lời trước"?
Vịt Mooing

7

Còn về việc, thay vì có phạm vi xem cố định, khu vực hiển thị của người chơi phụ thuộc vào hướng người chơi đang đi, cũng như hướng người chơi phải đối mặt trong vài lượt cuối (một người chơi đang di chuyển về phía bắc có thể ngay lập tức tiến một bước về phía nam, nhưng có thể mất vài lượt để có khoảng cách xem tối đa theo hướng đó). Một người chơi đi về phía bắc ra khỏi hành lang hẹp vào một căn phòng lớn và tiếp tục đi về phía bắc sẽ bị hạn chế tầm nhìn về phía đông và phía tây, và có lẽ nên như vậy. Khi người chơi dừng di chuyển, người ta có thể tự động hệ thống "khám phá" các khu vực không nhìn thấy trong bán kính tầm nhìn hiện tại của người chơi, nhưng trong khi người chơi đang tích cực di chuyển thì tầm nhìn sẽ bị giới hạn hơn.


3

Thay thế cho một trường nhìn phức tạp hơn (như đã thảo luận ở trên thêm các vấn đề riêng của nó do các ràng buộc của bố cục dựa trên lưới), bạn có thể thử mô phỏng hiệu ứng chuyển động trong một trò chơi không dựa trên sự kín đáo lưới điện. Trong trường hợp có thể di chuyển tự do thì một chuyển động chéo của một đơn vị sẽ chính xác như vậy, chứ không phải là ~ 1,41 đơn vị chuyển động được nhìn thấy với một lưới vuông.

Mặc dù bạn không thể buộc chuyển động đơn vị mà không mất lưới descreet của mình (điều này sẽ thay đổi thiết kế trò chơi của bạn khá đáng kể), có lẽ bạn có thể theo dõi chuyển động thêm được thực hiện và thả di chuyển sau: theo dõi thêm 0,41 giây và sau đó tổng cộng thêm 1,00 có đơn vị đó bỏ qua một di chuyển. Hoặc theo cách khác: coi đường chéo là bình thường, cộng 0,41s cho mỗi lần di chuyển ngang hoặc dọc và cung cấp tín dụng di chuyển thêm một khi lớn hơn 1 (hoặc 1,41 cho di chuyển chéo).

Bạn sẽ cần phải cẩn thận cách bạn trình bày điều này với người chơi của bạn theo cách làm cho nó trông mượt mà và công bằng. Trong kịch bản nhiều người chơi, những thay đổi như vậy có thể trở thành thứ mà người chơi tận dụng chiến lược - đây có thể là một vấn đề hoặc có thể có một cách tự nhiên để kết hợp điều này với cơ chế trò chơi (có thể cho phép người chơi lưu trữ nhỏ số tiền "tín dụng di chuyển không được sử dụng" mà họ có thể sử dụng để phản ứng nhanh chóng sau đó và có thêm 0,41 giây nguồn cấp dữ liệu di chuyển vào (hoặc lấy ra từ) nhóm đó.

Điều này sẽ hoạt động tốt nhất nếu các thực thể điều khiển người chơi di chuyển di chuyển hơn một đơn vị mỗi lượt. Ví dụ: ba điểm di chuyển có thể được sử dụng làm ba bước di chuyển hoặc hai điểm chéo với 0,16 còn lại trong nhóm sau này. Khi đạt đến 1,00, người chơi sẽ nhận được một lượt "miễn phí" / di chuyển và ở mức 1,41 một đường chéo miễn phí. Bạn có thể giới hạn thêm 1,5 điểm để buộc nó được sử dụng hoặc bị mất tại thời điểm đó để ngăn người chơi giữ năng lượng được lưu trữ này trong nhiều năm hoặc để nó tích tụ.

Rõ ràng đây là một sự phức tạp đối với các quy tắc trò chơi của bạn có thể hoàn toàn không mong muốn và sẽ không thực tế đối với một trò chơi không có máy tính, nhưng nếu bạn có thể làm cho nó hoạt động trong các quy tắc hiện có của trò chơi, nó sẽ hạn chế sự khác biệt khám phá giữa các hướng di chuyển mà không cần từ bỏ định dạng lưới.


2

Bạn có thể làm cho người chơi di chuyển hai khoảng trống nếu họ di chuyển lên, xuống, sang trái hoặc phải và chỉ một đường chéo. Nó sẽ không hoàn toàn ngay cả khi nó ra ngoài, nhưng nó sẽ gần hơn nhiều.


Đây là một ý tưởng tốt nhưng tôi tin rằng tương đương với việc cấm di chuyển đường chéo (vì đường chéo chỉ là hai động tác trực giao)
Vality
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.