Pull to refresh

Comments 17

Зачем реализовать интерфейс GameConstants? Если вы хотите иметь удобный доступ к константам из этого интерфейса, достаточно сделать import static GameConstants.*;

Этот же вопрос про BallGame. Это класс-лаунчер, ему-то точно не нужно иметь доступ к GameConstants.

Также у вас в каждом экземпляре Ball используется Timer. Каждый Timer — это отдельный поток. У меня подозрение, что это может плохо сказаться на производительности. Вам проще было бы сделать отдельный метод (например, update()) в классе Ball и из BallComponent вызывать этот метод.

Я советую вам дальше почитать «Чистый код» Роберта Мартина. Не воспринимайте ее очень уж серьезно, но стиль кода она должна вам поднять.

Почитайте про паттерны проектирования, это вам пригодится всегда, особенно если вы пишете игры.

Пользуясь случаем, хочу проагитировать libGDX, чудесный фреймворк для написания игр. Хорошая документация, отличная архитектура — если хотите двинуться в сторону разработки игр на Java, это отличный выбор.

В общем, поздравляю вас с первой игрой!
Пользуясь случаем, хочу проагитировать libGDX, чудесный фреймворк для написания игр. Хорошая документация, отличная архитектура — если хотите двинуться в сторону разработки игр на Java, это отличный выбор.

Подтверждаю, действительно очень хороший фреймворк. Учавствовал во флешмобе «100 игр за неделю», была придумана идея, для реализации выбрал libGDX. В итоге ни разу не пожалел — действительно отличная официальная документация, много информации на StackOverflow и хорошие примеры. Единственной странностью было то, что html-бэкенд не определял пользовательскую локаль, пришлось немного гуглить про GWT и делать определение отдельно.
Большое спасибо!
Учту советы, и поправлю код.

Как раз открыл для себя «Паттерны проектирования» от издательства Head First. Буду пугать народ в метро (точнее тех, кто любит читать через плечо).
Как-то услышал совет — «Если учитесь, изобретайте велосипеды». Естественно, что в серьезных проектах лучше всего использовать уже проверенные библиотеки и фреймворки, но в целях обучения, лучше поломать голову и попытаться написать все с нуля.
В будущем думаю двинуться в сторону Android (для чего собственно и вгрызаюсь в Java). Там же, в создании игр, сейчас как я понял рулит NDK?

NDK — это «нативный» код для Andorid, пишете на С++. И как раз NDK и не рулит там. Я наблюдаю тенденцию, что люди хотят выпускать игры для нескольких платформ одновременно. NDK здесь никак не применим, его юзают, если нужно написать что-то низкоуровневое и быстрое.

Для игр на Android популярны кросплатформенные игровые движки. Это монстр Unity 3d, конечно же, это Cocos2d-x. Лично я использую libGDX, очень быстро и удобно писать — после написания очередного куска кода можно сразу запустить на десктопе, и намного реже — на телефоне.

Есть возможность создать сборки под Linux, Windows, Mac OS X, Android — эти платформы вообще без проблем. Несколько хуже, есть некоторые ограничения — для iOS. И если ваша игра очень уж простая — можно сделать сборку под html5. При этом пишете вы все на той же Java, просто под капотом в libGDX много черной магии, которая скрывает от вас много сложного :)
Обязательно попробую. У вас, как раз смотрю есть подборка туториалов, почитаю.
Почему NDK вспомнился — где-то год или полтора назад, ZeptoLab, проводила конкурс на написание игры. И обязательным требованием было как раз использование NDK.
У ZeptoLab'a собственный движок на С++ и OpenGL. Поэтому они и хотят крутых программистов на С++.
Кстати, я игру реализовал еще как апплет, и поставил ее, как заглушку для своего сайта.
Не знаю, разрешено ли публиковать ссылки?
Вы можете добавить личный сайт в свой профиль. Желающие пройдут по ссылке

и еще небольшой комментарий в продолжение 1nt3g3r
Как написано в Item 19 в книге Effective Java: интерфейсы необходимо использовать только для определения типов. Там как раз в качестве плохого примера приводится интерфейс с константами. В таком случае советуют создавать самостоятельный утилитарный класс, в котором уже объявлять все константы, а потом обращаться к ним либо по полному имени ClassName.CONSTANT, либо через статический импорт, о чем уже было написано выше
Добавил сайт в профиль. Единственная проблема, что по-умолчанию браузеры не доверяют Java-апплетам. Я нашел выход в том, что сайт надо добавлять в доверенные. Кстати, может подскажете, есть ли возможность сделать так, чтобы апплет запускался без дополнительного шаманства, со стороны пользователя?
Я наблюдаю тенденцию, что люди хотят выпускать игры для нескольких платформ одновременно. NDK здесь никак не применим
Расскажите это ZeptoLab, а то они не знают.
Собственно да, писать кросс-платформенно на C++, конечно, сложнее, чем на джаве, но ровно настолько, насколько вообще сложнее писать на C++, чем на джаве. Ну то есть для C++ программиста это не проблема.
Ну, я, вроде, обратного не утверждал:)
UFO just landed and posted this here
Статья про чистый код, а комментарии про то, что «надо использовать фреймворки» :facepalm:
Автор молодец, что не использовал фреймворк, а сделал все as is сам.

Это вечный холивар (чистый или грязный кодинг) и я на вашей стороне, я за чистоту.
Нет никакого «чистого» и «грязного» кодинга. Есть задача и есть время на её решение. Фреймворки дают приемлимое качество в приемлимые сроки.

P.S.: «чистый код» это уже устоявшееся выражение и означает оно отнюдь не «отсутствие фреймворков». Подкорректируйте свой словарик, пожалуйста, дабы не сбивать с толку собеседников.
Подкорректируйте свой словарик, пожалуйста, дабы не сбивать с толку собеседников.

Вы мне ваше мнение навязываете?
Чистый это: clear/clean. Первый — это и чистый и ясный (компактные методы и т.д.), второй — это четкий, соотвествующий неким принципам написания.
Теперь название статьи «Игра на чистой Java от новичка, для новичков» — вы внимательно прочитали? Чистый язык программирования подразумевает только этот язык, и в контексте статьи про чистую java уместно употреблять выражение чистый код. Не находите?
Код, который не загажен или перегружен фреймворками без фреймворков.
А вы внимательно прочитали первый комментарий? Как раз он и определил контекст выражения «Чистый код». После него выражение «Чистый код» означает здесь примерно это, но никак не чистую java без фреймворков. Ваш комментарий действительно сбивает с толку.
Sign up to leave a comment.

Articles