Я развиваю игру на Java и хочу, чтобы мой код разделялся в пакетах для hud/gui и логики игры, чтобы код можно было повторно использовать в каком-то другом проекте, и где объекты, которые будут нарисованы, вызовы методов из другого класса или классы (возможно, «контекст рендеринга», например, группа классов, только что сделанных для чертежа или что-то в этом роде), проблема в том, что я не могу найти лучший способ добиться этого, потому что я исследовал веб (также это форум) и шаблоны проектирования, но, несмотря на то, что некоторые выглядели интересными (например, Model-View-Controller), я не мог найти то, что мне подходит, и общий подход к решению этой проблемы.Разделяемая иерархия классов графического интерфейса и игровой логики?
Мне сказали, чтобы объекты были реализованы с помощью интерфейса с возможностью рисования, а в другом классе, вызываемом этими объектами, некоторый объект, который, например, реализует drawable и наследует от canvas, так что, если я захочу позже, измените методы рисования объектов или отображения для другого лучше, например, от awt до swing, чтобы иметь возможность просто переписывать эти классы и не нужно беспокоиться о моем коде объектов, любая помощь будет принята с благодарностью, спасибо заранее!
Я обычно делаю еще один шаг и реализую объект игры, содержащий GameRenderer и GameState. Объект Game заботится о настройке таймера и диспетчера событий и выступает посредником между GameState и GameRenderer. – tdammers
О да, конечно, особенно если ваша игра не связана с постоянными обновлениями (вычисления физики и т. Д.). Затем объект Game может использовать таймер для управления прогрессированием игры. Я обнаружил, что это не работает для игр с интенсивными игровыми циклами, хотя - лучше позволить объекту GameState обновить его содержимое и визуализировать рендеринг как можно быстрее. Я мог бы просто делать это неправильно, хотя :) – colithium