Trò chơi của tôi có nhiều loại người tốt khác nhau và nhiều loại người xấu khác nhau. Tất cả chúng sẽ bắn các viên đạn vào nhau nhưng tôi không muốn bất kỳ thiệt hại tài sản thế chấp ngẫu nhiên nào xảy ra cho một trong hai hướng. Vì vậy, kẻ xấu không thể đánh / gây sát thương cho kẻ xấu khác và kẻ tốt không nên đánh / gây sát thương cho kẻ tốt khác.
Cách tôi nghĩ để giải quyết vấn đề này là làm cho nó trở thành Unit
ví dụ (đây là javascript, btw), có một thuộc alignment
tính có thể là good
hoặc bad
. Và tôi sẽ chỉ để va chạm xảy ra nếu
class Attack
boolean didAttackCollideWithTarget(target)
return attack.source.alignment != target.alignment and collisionDetected(attack.source, target)
Đây là mã giả, tất nhiên.
Nhưng tôi đang hỏi câu hỏi này bởi vì tôi có cảm giác rằng có thể có một cách thanh lịch hơn nhiều để thiết kế nó ngoài việc thêm một tài sản khác vào Unit
lớp của tôi .