Мини-учебник по MIDlet Pascal для чайников
Итак, это мое творение мини-учебника, по программе MIDlet Pascal, для чайников. Я уж постараюсь объяснить, как можно понятнее.
Что же такое MIDlet Pascal? Среда разработки игр и приложений для мобильных телефонов. Классно, не правда ли?
Коротко о программе: MIDlet Pascal – это среда разработки приложений для мобилы (как я и говорил). В программе используется язык программирования, схожий с языком Паскаль. Паскаль – язык программирования для компьютеров, разработанный Никлаусом Виртом (не помню в каком году). Тот, кто окончил какое-нибудь учебное учреждение, помнят, что проходили этот язык по информатике (может я и ошибаюсь). Язык MIDlet Pascal является обычным паскалем, но сильно урезанным, т.е. разработчики убрали некоторые операторы, которые были в обычном паскале. Не обязательно вдумываться в предыдущее предложение (операторы там всякие), мы разберем это все в течение учебного пособия. MIDlet Pascal переводит программу из языка Паскаль в язык Java. В конце концов, мы можем получить готовый мидлет (приложение, игру). Думаю, что многие знают, что игры для телефона пишут на другом языке, который называется Java или J2ME. Java, конечно превосходит по возможностям язык MIDlet Pascal, и многие бы хотели программировать на Java. Язык java сложен в изучении и поэтому, тот, кто не знаком ни с одним языком, вряд ли сможет понять язык Java. Для Java нужно качать не один мегабайт, то есть нужно опять же качать среду разработки, которая обойдется около ~120 мегабайт (JRE, JDK, Wireless Toolkit). MIDlet Pascal занимает гораздо меньший объем памяти (не более 2-х мегабайт). Взять программу MIDlet Pascal можно с нашего сайта: http://blackwolf.h2m.ru в разделе загруз-центр => Софт для компьютера (или что-то в этом роде), там есть русская и английская версия. Так же можно взят и с официального сайта программы: http://www.midletpascal.ru . На рисунке 1 показан общий вид программы.
Рис. 1. Среда разработки игр и приложений MIDlet Pascal.
Вот такой вот симпатичный интерфейс имеет эта программа.
И чуть не забыл сказать, что нам еще потребуется для написания наших проектов. А понадобятся нам:
- MIDlet Pascal;
- Компьютер (без него никуда);
- Эмулятор мобильного телефона;
- Собственно телефон;
- USB-кабель для Вашего телефона;
Ну, вроде бы пока всё.
Ага! Остановимся на самом интересном! На эмуляторе мобильного телефона. Что же это такое? Это программа, которая может запускать Java приложения. Для чего он нам? Для отладки (проверке, тесте) созданного нами приложения или игры. А как же телефон? Я думаю, что неудобно все-таки каждый раз загружать приложение через USB-шнур, т.к. это займет достаточно много времени, поэтому лучше использовать эмулятор. И прогу эмулятор тоже можете взять с нашего сайта http://blackwolf.h2m.ru в том же разделе с названием MidpX.
На рисунке 2 показан вид эмулятора телефона.
На экране Вы видите запущенное приложение, правда, не вписанное во весь экран. Это одна из моих работ, которую я назвал J2ME WinMobile, то есть эмулятор компьютера на телефоне. В данный момент я ее разрабатываю, но это не важно.
Если вы все скачали, то можете приступить к созданию Вашего проекта.
У меня стоит русская версия MIDlet Pascal, и поэтому я могу, где-то ошибаться на счет неправильного пункта меню (у кого английская версия).
Начнем с создания нашего проекта, т.е. зададим имя нашего мидлета, выберем путь для сохранения проекта.
Все это делается командой File => New Project. После всех этих трудоемких действий появится небольшое окошко (диалог), которое предложит Вам задать параметры проекта, а конкретно имя проекта, директорию для сохранения всей Вашей работы и тип проекта (он там один). Все это есть на рисунке 3.
Допустим, оставим все эти параметры по умолчанию и нажмем кнопку Создать (Create).
Рис. 2. Эмулятор мобильного
телефона MidpX
Перед нами откроется
рабочая область приложения (текстовый редактор), в котором будет написан многим непонятный код. Этот код и есть код программы на MIDlet Pascal. В общем, он должен быть примерно таким:
Program NewProject;
Begin
drawText(‘Hello, world!’, 5 ,5);
repaint;
delay(5000);
end.
Что это за код? Это код самой простейшей программы на MIDlet Pascal. При запуске этого приложения на эмуляторе или телефоне Вы увидите лишь обычную надпись “Hello, world!”, в переводе означает привет мир (все программисты начинают с этой фразы). Я думаю, что пока этот код мы разберем в следующей главе, так как многие его не поймут. Мой совет: лучше не копируйте примеры из этого учебника ибо получите кучу ошибок. Лучше переписывать код вручную, таким образом Вы быстрее научитесь.
Кстати я ж не сказал об том, что, где и в каких папках у нас находится. Итак, если Вы догадались, как скомпилировать (собрать) приложение, в папке с установленным MIDlet Pascal, мы найдем папку с названием “Projects”, в этой папке должен находится Ваш проект “NewProject” (если вы его не сохраняли куда-нибудь в другое место). В папке “NewProject” находится еще четыре папки и один файл проекта:
- bin – здесь будут лежать мидлеты, после их сборки.
-res– здесь ресурсы вашего приложения (картинки, мелодии, текст и др.).
- classes– здесь будут лежать классы (рабочие модули) вашего приложения.
- src – а тут исходники (код) вашего проекта.
Если вам показался код выше сложным, то взгляните на код написанный на Java:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
public class NewProject extends MIDlet {
Form form;
Display display;
public startApp() {
display = Display.getDisplay(this);
form = new Form(“Форма”);
form.append(“Hello, world!”);
display.setCurrent(form);
}
public pauseApp() {}
public destroyApp(Boolean flag) {
notifyDestroyed()
}
}
А вот Вам код на java. Ну и как? Это практически тоже самое, только текст уже выводится в другой области, называемой формой (об этом позже).
Глава 2. Hello, World!
Как я и обещал мы сейчас попробуем разобраться с предыдущем примером, если Вы его забыли или не захотели смотреть на него, то вот он ниже:
Program NewProject;
Begin
drawText(‘Hello, world!’, 5 ,5);
repaint;
delay(5000);
end.
Начнем с первой строки. Итак, слово program -это слово обозначает имя программы или ее заголовок. Для чего нужно это слово? Да если так то оно здесь и ненужно вовсе, даже без него приложение будет отлично работать. Но если уж Вам охота узнать об этой строчке поподробнее, то я объясню, что, где что. Слово programэто зарезервированное слово (зарезервированные слова выделяются синим цветом), которое объявляет программе заголовок. Напишу примерный синтаксис слова program.
Program имя_программы;
Именем программы может быть любым, но не должно называться каким-нибудь другим зарезервированным словом, процедурой или функцией языка. Например:
Program begin;
Этот пример вызовет ошибку, поэтому лучше использовать такие имена, например: MyProgram, Calculator, Game и прочие. Обратите внимание на символ точка с запятой (;). Этот символ разделяет операторы друг от друга. В данном случае строка Program NewProject; является оператором.
Теперь перейдем к следующей строке begin. Это зарезервированное слово нужно для образования парных операторных скобок. Слово begin(начинать) используется в паре со словом end(закончить), таким образом, они образуют операторные скобки, внутрь которых помещается другие операторы, которые воедино надо выполнить. Синтаксис операторных скобок такой:
Begin
Операторы1;
Операторы2;
ОператорыN;
End.
В языке Java, вместо операторов begin и end существуют фигурные скобки: begin – это {, а end – это }. Так что на Java пример выше записывается так:
{
Операторы1;
Операторы2;
ОператорыN;
}
Кстати на MIDlet Pascal, код можно писать, не учитывая регистр букв, т.е. все равно как ты написал слово (с большой или маленькой буквы), например Begin, begin BEGIN или BeGiN– все это одно и тоже. Java в отличие от MP(MIDlet Pascal), к регистру чувствителен. Перейдем к следующей строке: DrawText(‘Hello, World!’, 5, 5);
Оператор DrawText рисует надпись Hello, World! на экран мобильного телефона. Как вы догадались, что надпись, которую нужно отобразить на экране указывается внутри одинарных кавычек (апостроф). Приведу пример использования оператора DrawText:
DrawText(‘Ваш_текст’, координата_X, координата_Y);
Строка “Ваш_текст” в операторе DrawText должна быть обязательно внутри апостроф, но не двойных кавычек:
DrawText(“Ваш_текст”, координата_X, координата_Y);
Это будет являться кучей ошибок. Так что будьте внимательны.
Теперь узнаем что это за координата_X и координата_Y. Это координаты размещения надписи на экране в пикселях. Координата_Х – это координата строки по горизонтали, а координата_Y – это координата строки по вертикали. Таким образом, они образуют систему координат. Все координаты указываются в цифрах. На рисунке, 4 показано, как надпись будет располагаться на экране мобильного телефона (конечно без системы координат). Координаты по горизонтали идут слева на право, а
Рис.4. Отображение текста координаты по вертикали идут сверху вниз. Запомните это.
на экране мобильного теле- Теперь перейдем к следующей строке: Оператор Repaint. Этот
фона оператор обновляет экран и отрисовывает все графические элементы. Если мы не поставим этот оператор после оператора DrawText, то при запуске программы, мы увидим лишь белый экран. Объясню, почему это все так. Дело в том, что когда мы вызываем процедуру DrawText, текст который мы хотим отобразить рисуется в буфер экрана, а процедурой Repaint мы перерисовываем его на дисплей телефона. Старайтесь применять эту процедуру реже, так как эта процедура довольно таки расходует ресурсы телефона и нагружает его процессор. Например если вам нужно написать две строки Hello, World! А на другой Привет мир! То многие из вас бы написали код таким вот образом:
Program NewProject;
Begin
drawText(‘Hello, world!’, 5, 5);
repaint;
drawText(‘Привет мир!’, 5, 15);
repaint;
Delay(5000);
End.
Этот код не приведет к ошибке, но все же он неправильный, гораздо лучше было бы если мы запишем его так:
Program NewProject;
Begin
drawText(‘Hello, world!’, 5, 5);
drawText(‘Привет мир!’, 5, 15);
repaint;
Delay(5000);
End.
Пора переходить к следующей строчке. Оператор Delay(2000);. Этот оператор задерживает нашу программу на указанное количество миллисекунд. Для чего он нужен? Да если бы мы не поставили его, то в примере выше при запуске программы на эмуляторе или телефоне мы бы ничего не успели посмотреть, так как программа сразу бы при запуске закрылась. Поэтому мы и задерживали программу процедурой Delay , чтобы мы хоть могли увидеть что происходит на экране мобильника. Синтаксис оператора Delay такой:
Delay(Время_в_милисекундах);
Последнюю строку я объяснять не буду так как я объяснил ее при рассмотрении ключевого слова begin.
Исходный код программы Hello, World! можете скачать отсюда.