![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Hi All!!!
Многие сталкиваются при написании игр на проблемму с меню(решенить эту проблемму можно решить двумя способами: 1)Создание с помощью высокоуровнего интерфейса 2)Создание с помощью низкоуровнего интерфейса). Вот решил написать урок по созданию графического меню с помощью класса низкоуровнего интерфейса. В коде выложенны два класса Menu (MIDlet) и класс mendraw (Canvas), В классе mendraw в методе paint() , рисуется 3 прямоуголика, когда переменная индекс равна номеру прямоугольника то прямоугольник заливается указанным цветом! А вот и код:
Вместо прямоугольников Вы можете всавлять свои картинки, рисовать овалы, строки и многое другое! Все зависит от Вашего воображения! Оцените пожалуйста урок. |
|||
|
||||
BackUp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 16.7.2006 Репутация: нет Всего: нет |
Привет, интересная темка, а пример с картинками можешь дать?
|
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Да просто пишешь:
try{ Image img=Image.createImage("..."); }catch(IOException e){} public void paint(Graphics g){ g.drawImage(img,x,y,0); } И все! Вот у тебя картинка! правда надо в методе KeyPressed() указать про прорисовку рисунка! |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
BackUp, А тема то как? Понравилась?
|
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Юзайте J2MEPolish, реально красивого меню с нуля тяжело написать, хотя никто не запрещает. Сам давно пользуюсь J2MEPolish очень нравится........советую..... Давно пора развивать эту тему........
-------------------- Thank you opensource. |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
А разве он не платный? бесплатный он только для freeware...
-------------------- iOS developer |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Привет! Ну я всего лишь примерчик привел как легко создать графическое меню, а все остальное зависит от вашего воображения!
![]() ![]() |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Тема интересная, но реализация, откровенно, слабая.
Меню не гибкое, объект не инкапсулирован. А что делать, если тебе надо в RunTime изменить меню?. Понятно, что это простой пример, однако он далеко не лучший. P.S. не мешало бы еще узнать о name conversion от разработчиков. Это сообщение отредактировал(а) 02077461 - 26.7.2006, 10:07 |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
02077461,
Но я и не пытался создать крутое меню с крутой реалицацие ![]() ![]() |
|||
|
||||
02077461 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Нет, как раз таки это не должно быть интересно. Думаю, что со мной согласяться, что лучше учиться на хороших примерах, нежели на быстрых реализациях.
Не претендую на хороший пример, однако хочу показать как я решал подобную задачу. Прошу не судить строго, это было давно, и подходил сгаряча, без этапа проектирования.
MenuItem
К остальному относитесь как к черному ящику. Да пусть не пугает вас обилие геттеров и сеттеров. Хотя, конечно же, было бы лучше создать интерфейс типа GPaintable и реализовывать его и в GMenu и в GMenuItem, но, как я уже сказал, было это давно. Теперь можно было бы и исправить. Это сообщение отредактировал(а) 02077461 - 26.7.2006, 12:08 |
||||
|
|||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Сейчас откомпилю посмотрю
![]() |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Для компиляции, боюсь, тебе придеться многое менять.
Главное -- посмотри на идею. |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
А чего ж тогда сам так строго судишь новичков? -------------------- iOS developer |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Да ладно вам ребят, Вы лучше туториал зацените
![]() |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Сужу не новичков, а подход.
Как можешь видеть, код мой нуждаеться в некоторой доработке, но я показал метод. И если кто нибудь, например Samuil, доведет его до ума, и выложит здесь вычещенный код, буду весьма рад. Подчеркиваю: я не сужу реализацию, я лишь выразил свое мнение о методе. Кто не согласен с ним, пусть выскажет и приведет свой метод, главное не переходить на личности. |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
02077461, Это даже хорошо что каждый приводит свой вариант кода, зто большое плюс для начинающих
![]() |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Еще раз: не вариант кода, а идея варианта решения задачи.
С точки зрения решения одной задачи твой код вполне работоспособен и наверняка удовлетворяет твои потребности. Но, что бы пользоваться твоим кодом, мне необходимо иметь код, а не класс или библиотеку. Проанализировать его работу, а не прочитать документацию (или просто пользоваться в IDE автоокончанием строк, так как можно понять, что метод addItem(String item) врядли будет обнулять меню или, к примеру, менять его цвет), и модифицировать код, добавляя необходимые пункты. Это не говоря о гибкости метода. А если нам надо загружать пункты меню из конфигурационного XML файла? И, опережая замечания и остроты хочу заявить, что я не критикую, а разьясняю свою точку зрения по данному вопросу. Samuil, представь, что ты хочешь разведать маневры армии противника (или приятеля). Ты внимательно наблюдаешь и, желая увеличить производительность собственных войск, начинаешь перенимать опыт. Будешь ли ты записывать каждый шаг каждого солдата, теряя из виду общие перемещения войск, всю тактику. Важна тактика. Но!. Конечно же, если твои "солдаты" подчиняясь твоим приказам будут перемещаться по полю непомерно раскидывая ноги, задвая соратников и общим стадом имитируя брачные игры насекомых, то от безукоризненной тактики не будет никакого проку. Резюмирую: зри не в код. А вообще, куда нравиться, туда и зри. У тебя, кстати, получилось откомпилировать пример? |
|||
|
||||
javastic |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Моё мнение: на определённом этапе развития нужен материал доступный для понимания и освоения.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
javastic, W0LF, 02077461, Спасибо за оценку
![]() |
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Ребята, посмотрите пжста. У меня при установке j2mepolish-1.2.4 при выборе опции Commercial / None - GPL я ввожу любые 12 символов и продолжаю установку. Дальше он не про что не говорит, но в манифесте записей пока не смотрел, поэтому пока не знаю оставляет он там свои записи или нет. Так сказать, информация для размышления ......
-------------------- Thank you opensource. |
|||
|
||||
olegrolik |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Что значит объект не инкапсулирован? Я так понял из дальнейших объяснений, что в хорошем стиле, этот интерфейс следует писать как библиотеку (для лёгкого изменения)? Это и есть инкапсуляция? |
|||
|
||||
everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: нет Всего: 4 |
Инкапсуляция - это сокрытие методов и переменных объекта. Смысл её в том, чтобы можно было работать с классом не зная его реализации, посредством интерфейса, предоставленного разработчиком. К тому же это плюс к безопастности и устойчивости кода к ошибкам. Ответ здесь таков, что просто необходимо написать интерфейс, а в качестве единичного класса или библиотеки это будет представлено - совершенно безразлично. --------------------
Что написал, то написал (Пилат) |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |