Я делаю двумерную игру в кости на бейсике (думаю, механика похожа на игру в кости дьявола на Playstation, но 2D-графику сверху вниз). Я пытаюсь точно представить переходы кубика, когда он катится с одного лица на другое по кардинальным направлениям. Я могу посмотреть текущее значение кубика в данной позиции, но я не поддерживаю фактические представления объектов, соответствующие физическому кубику, поэтому моделирование трехмерных кубиков в игре отсутствует.
Я могу придумать два способа сделать это, но не могу реализовать их правильно.
- Создайте справочную таблицу с заданной гранью, ориентацией и направлением крена, которая возвращает новую правильно ориентированную поверхность штампа.
- Что-то о побитовой арифметике, которую я не понимаю из ответа # 3 на этой странице . Кажется, что это может быть сложнее в реализации, но, возможно, меньше, более элегантный код. Однако мне не нужно ничего делать с вращением, ребрами или анимацией, просто выбирая следующую грань вверх.
Я стараюсь не преждевременно оптимизировать, но в конечном итоге код должен быть настолько компактным, насколько это возможно. BASIC, так что я не использую никаких сложных 3D-библиотек или игровых движков, я хочу держать это близко к голому металлу, насколько логическое моделирование физики идет.