Không, đây là cách sai lầm để đi về điều này.
Làm thế nào bạn sẽ làm phát hiện bẫy? Thế còn khi người chơi chạm đến các cạnh của bức tường? Hệ thống xem của bạn sẽ hoạt động cho ngục tối hay bạn sẽ phải viết lại một phần đáng kể của mã?
Thế giới là hình học. Người chơi là hình học. Thế giới không chuyển động. Người chơi làm. Đặt vị trí của máy ảnh thành chính giữa trên trình phát. Luôn luôn . Và đó là tất cả để có nó.
Đừng thử và trở nên lạ mắt với "oh nếu tôi trượt thế giới, thì nó sẽ mang lại diện mạo cho người chơi đang di chuyển". Bạn sẽ làm phức tạp toán học với các hệ tọa độ kỳ lạ vào cuối ngày.
Đúng là kết xuất của OpenGL thực sự hoạt động bằng cách "sửa máy ảnh để chỉ xuống - z, và biến đổi và xoay tất cả hình học thế giới để phù hợp với âm lượng chế độ xem chính tắc", nhưng bạn không có ý nghĩ về điều đó khi lập trình . gluLookAt
có các thông số được đặt tên eye
, look
và up
vì một lý do - vì vậy bạn có thể nghĩ về một hệ toạ độ hợp lý.