От переводчика Данный документ есть полный перевод официальной документации, распространяемой вместе с языком Omega Basic. Перевод выполнен с разрешения DigitalOmega.Net.
Omega Basic - простой в использовании, но достаточно мощный язык программирования. С его помощью можно создавать приложения для различных мобильных устройств, поддерживающих MIDP, в том числе для мобильных телефонов. Язык имеет простой синтаксический стиль, и не очень большой набор команд. Компилятор Omega Basic-а переводит вашу программу в оптимизированный JAVA код, который затем компилируется. При этом от вас не требуется никаких дополнительных действий. Вы просто нажимаете кнопку "Compile" и получаете рабочее приложение, которое можно запускать на телефоне. Благодаря тому, что используется java компилятор, написанные программы получаются 100% Java совместимыми и даже могут тягаться с программами, непосредственно написанными на Java.
Давайте еще раз перечислим достоинства Omega Basic-а:
Процесс установки очень прост и включает в себя три шага:
Запустите редактор Omega Basic-а и с помощью кнопки "Load" откройте какой-нибудь демонстрационный проект. Попытайтесь самостоятельно освоить процесс сохранения проекта, поверьте - это не сложно. Настало время посмотреть, что делает открытый проект. Нажмите кнопку "Run". Проект будет откомпилирован и запущен на эмуляторе. Работа с эмулятором ничем не отличается от работы с телефоном. Если Вы хотите протестировать приложение на реальном устройстве, нажмите кнопку "Compile" и скопируйте файлы .jad и .jar, которые будут созданы в папке /bin/ вашего проекта, на телефон. Более подробно об этом будет рассказано ниже.
После покупки программы обязательно зарегистрируйте ее. Это позволит вам использовать все ее возможности. Чтобы зарегистрироваться, зайдите на страницу регистрации web сайта Dreams In Motion, и нажмите один раз кнопку run или compile в Omega Basic редакторе. Скопируйте код активации из файла 'Activate.txt' и вставьте его в соответствующее место на сайте. В результате Вы получите серийный номер, который нужно ввести в диалоговом окне, нажав кнопку register в редакторе.
Ключевое слово IF позволяет выполнять блок между словами Then и Endif, если условие выполняется. Например, если в следующем примере переменная a равна единице, будет выполнен code.
If a = 1 Then
<code>
EndIf
Если к этой конструкции добавить словоELSE, то после него можно написать код, который будет выполняться, если условие не верно:
If a = 1 Then
Этот код выполняется, если a равно 1 (a=1)
Else
этот код выполняется, если a не равно 1 (a<>1)
EndIf
Если Вы хотите проверить несколько условий, используйте словоELSE IF
If a = 1 Then
Этот код выполняется, если a равно 1
Else If a = 2
Этот код выполняется, если a равно 2
Else If a = 3
Этот код выполняется, если a равно 3
Else
Этот код выполняется, все приведенные выше условия не верны
EndIf
Для того, чтобы организовать более сложные проверки, можете использовать ключевые словаAND (И) иOR (ИЛИ).
If (a = 1 or a = 3) and b = 2 Then
Этот блок выполняется в случаях {a=1,b=2} и {a=3,b=2}
EndIf
Цикл While выполняется до тех пор, пока условие не станет верным, или пока не встретится ключевое словоBREAK.
While a = 1
code
EndWhile
Ключевое словоDIM используется для объявления новой переменной. В Omega Basic-е все используемые переменные должны быть предварительно объявлены. Это избавит вас от ошибок, связанных с опечатками в именах переменных. При объявлении переменной может быть присвоено значение.
Dim Temp
Dim myString$ = "Testing"
Dim myNumber = 100
Ключевое словоBOOLEAN используется для создания булевых переменных, то есть переменных, которые могут принимать только два значения:TRUE (ИСТИНА) илиFALSE (ЛОЖЬ). Такие переменные удобно использовать в качестве флагов.
Boolean myBoolean
Boolean yourBoolean = True
СтруктураTYPE используется для создания контейнера, который содержит информацию о входящих в него объектах, что помогает создать хорошо читаемый и организованный код. Между ключевыми словамиTYPE иENDTYPE должны находится строки декларации переменных. Создаваемая таким образом сложная структура данных называется пользовательским типом. После того, как новый тип объявлен с помощью ключевого словаDIM можно создать переменную этого типа. Имя этой переменной должно заканчиваться символом . чтобы получить доступ к внутренней переменной типа используйте точку '.': ПеременнаяТипа.ВнетренняяПеременная
Rem Создаем новый тип
Type myType
Dim name$
Dim health
Dim attack
EndType
Rem Объявляем переменную этого типа
Dim spaceShipЈ = myType
Rem Присваиваем переменной MyValue значение внутренней переменной health.
MyValue = spaceShipЈ.health
Rem Присваиваем внутренней переменной name$ значение "John"
SpaceShipЈ.name$ = "John"
ЦиклFOR используется для того, чтобы выполнить блок кода заданное число раз (определяемое начальным и конечным значениями переменной). После каждой итерации значение переменной увеличивается на единицу. Таким образом, переменная пробегает все значения от начального до конечного и может использоваться для внутри цикла. Кроме того, с помощью ключевого словаSTEP можно задать шаг цикла отличный от единицы. Шаг - это величина, которая прибавляется к переменной цикла после каждой итерации. Блок тела цикла ограничен ключевым словомNEXT, за которым идет имя переменной цикла.
For I = 0 To 10
code
Next I
Этот код будет выполнен 11 раз.
Это ключевое слово очень важно. Оно позволяет вставлять комментарии в текст программы. Комментарии не выполняются и служат только для удобства чтения программы.
Если комментарий занимает несколько строк, необходимо использовать эту конструкцию.
Поддержка функций, это мощный инструмент структурного программирования. Функции должны располагаться в самом конце вашей программы. Необходимо явно указать имя функции и список аргументов. Если Внутри функции ведутся какие-нибудь расчеты и она должна возвращать значение, используйте возвращаемую переменную.
Function myFunction (name$, age)
code
EndFunction
При создании проекта, появляется несколько предопределенных функций. Вы не должны их модифицировать.
Это ключевое слово завершает работу функции и возвращает значение.
Function myFunction (name$, age)
Код
ExitFunction
Этот код не будет выполнен
EndFunction
Это ключевое слово используется для отладки. Оно выводит текст на консоль эмулятора и игнорируется на конечном мобильном устройстве.
Print "Текущее значение счетчика: " + Score
Это ключевое слово обозначает конец программы. Если программа встречает ключевое словоEND, она сначала вызывает функцию end, так что Вы можете проследить за правильностью завершения Вашего приложения.
Ключевое словоCANVAS используется для создания нового холста в памяти, готового для отображения. Холст (canvas) это как будто кусочек чистой бумаги; Вы можете рисовать на ней, используя различные инструменты (команды рисования, работы со спрайтами и картинками). Canvas довольно специфичная команда, она имеет собственный код для рисования, но весь код должен быть внутренним действием. Имя должно быть уникальным.
Это ключевое слово используется, для того чтобы связать экран устройства с формой или canvas-ом.
Ключевое словоALERT Используется для вывода сообщения об ошибке в течение заданного времени. title$ - заголовок предупреждения, text$ - его текст, image - рисунок, который должен быть предварительно загружен, timeout - время в миллисекундах.
Ключевое словоLISTENER позволяет форме или канвасу обрабатывать пользовательские события, такие как нажатие клавиш.
Это ключевое слово служит для вызова уборщика мусора, который освобождает память устройства от любых неиспользуемых ресурсов. Эту команду следует использовать при выполнении ресурсоемких операций, таких как работа с картинками и звуком. Эта команда достаточно медленная и не должна часто использоваться.
Ключевое словоBUTTON служит для создания в памяти кнопки, которую затем можно вывести на форму или canvas. Кнопка должна иметь уникальное имя, текст будет написан на кнопке, позиция определяет положение кнопки на экране. Если позиция равна нулю, то кнопка рисуется прикрепленной к левой стороне экрана, если единице - то к правой стороне, если любое число больше единицы, то кнопка будет отображаться как пункт меню.
Button myButton, "A Button", 0
Ключевое словоFORM служит для создания новой формы, на которую могут быть помещены компоненты интерфейса, такие как button и textbox. Имя должно быть уникальным, текст будет отображен в заголовке.
Form myForm, "A Form"
Ключевое словоTEXTBOX используется для создания в памяти текстового блока, который можно потом разместить на форме. Имя должно быть уникальным, заголовок отображается слева от блока, текст по умолчанию будет содержаться в текстовом поле, пока Вы не введете туда свое значение. Текстовый блок может иметь один из следующих типов:
0 - Можно вводить любой текст
1 - Можно вводить только email адреса
2 - Можно вводить только числа
3 - Можно вводить пароль, все символы отображаются как '*'
4 - Можно вводить только телефонные номера
5 - Можно вводить только URL адреса
Textbox myTextBox, "Enter a value:", "Hello", 0
Ключевое словоLABEL используется для создания "этикетки" в памяти устройства. Ее потом можно отобразить на форме. Имя должно быть уникально, заголовок отображается слева.
Ключевое словоLIST используется для создания в памяти устройства списка, который потом можно отобразить на форме. Имя должно быть уникальным. Заголовок отображается перед списком. Обычно это какой-нибудь вопрос, адресованный пользователю. Список может иметь один из следующих типов:
0 - исключительный выбор
1 - неявный выбор
2 - многократный выбор
Ключевое словоBUTTON.SHOW используется для отображения предварительно созданной кнопки на предварительно созданной форме/холсте.
Button.Show myForm, myButton
Ключевое словоBUTTON.HIDE используется для того, чтобы убрать существующую кнопку с предварительно созданной формы/холста.
Button.Hide myForm, myButton
Это ключевое слово служит для добавления новой строки в предварительно созданный список с именем list.
List.Append myList, "Option 1"
Ключевое словоTEXTBOX.SHOW используется для отображения предварительно созданного текстового блока на предварительно созданной форме.
Textbox.Show myForm, myTextBox
Это ключевое слово служит для удаления элемента с указанным номером с формы. Номер представляет собой целое число.
Form.Remove myForm, 5
Ключевое словоTRY используется для защиты вашей программы от аварийного закрытия. Эта конструкция блокирует вывод сообщений об ошибках, возникших внутри блока, ограниченного словамиTRY и ; и предоставляет программисту возможность самостоятельно заняться их обработкой. Обработка ошибок осуществляется в блокеCATCH, который должен располагаться перед словомENDTRY.
Try
code
catch блок
EndTry
Ключевое словоCATCH используется для создания обработчика ошибок. Это блок должен располагаться внутриTRY блока, ошибки которого он и будет обрабатывать. С помощью <номера ошибки> вы можете по разному реагировать на разные ошибки.
Try
code
Catch IO
code
EndCatch
EndTry
Внутри блокаAction Paint() должны размешаться операции, связанные с рисованием. Фактическое их выполнение происходит при вызове ключевого словаREPAINT.
Canvas myCanvas()
<code>
Action Paint()
<code>
EndAction
<code>
EndCanvas
Этому блоку автоматически передается управление, если была нажата какая-нибудь клавиша. Чтобы определить нажатую кнопку, используйте значение переменнойGETKEY.
Canvas myCanvas() <code>
Action Keypressed()
<code>
EndAction
<code>
EndCanvas
БлокPOINTERDRAGGED получает управление, когда происходит изменение состояния джойстика.
Canvas myCanvas()
<code>
Action PointerDragged()
<code>
EndAction
<code>>
EndCanvas
БлокLOOP используется для осуществления контроля за игровыми действиями. Код, расположенный внутри этого блока будет вызываться каждыеrate секунд. Внутри этого блока необходимо разместить ключевое словоREPAINT, для перерисовки экрана.
Canvas myCanvas()
<code>
Action Loop()
<code>
EndAction
<code>
EndCanvas
Ключевое словоFILE используется для открытия файла для чтения или записи. Данные в файл сохраняются последовательно.
File "/Test.txt"
Это ключевое слово используется для закрытия открытого файла. Если файл не был открыт, вызов это команды приведет к ошибке.
File.Close
Эта команда удаляет существующий файл. Попытка удалить несуществующий файл приведет к ошибке.
File.Delete "/Test.txt"
Эта команда используется для записи строки в конец открытого файла. Если файл не открыт, будет сгенерировано сообщение об ошибке.
File.Write "Hello, this is a test"
Эта команда используется для чтения из файла. Если файл не открыт, возвращается пустая строка.
Temp$ = File.Read()
Эта конструкция используется для чтения записи из открытого в настоящий момент файла.
КомандаFILE.EXIST проверяет существование файла. Она возвращает TRUE, если файл существует и FALSE - в противном случае.
Эта команда используется для считывания звукового файла в слот памяти и подготовки его к воспроизведению. Принимается формат WAV, number - целое число от 1 до 9.
Sound.Load "/MySound.wav", 1
Эта команда служит для удаления звукового файла из слота памяти. Все неиспользуемые файлы должны удаляться. Это позволит сэкономить память.
Sound.Delete 1
Эта команда служит для проигрывания звукового файла из указанного слота. (всего 9 слотов).
Sound.Play 1
Эта команда используется если звуковой файл требуется проиграть несколько раз. В number передается номер слота, а в amount - число повторов. Если amount=0, то файл будет проигрываться бесконечно.
Sound.Loop 1,5
Это команда останавливает воспроизведение файла из указанного слота.
Sound.Stop 1
Это команда используется для загрузки MIDI файла в память для воспроизведения его в дальнейшем. Расширение файла должно быть mid. Одновременно может быть загружен только один MIDI.
Midi "/MyMidi.mid"
Эта команда удаляет(если надо, то сначала останавливает) MIDI файл из памяти.
Midi.Delete
Команда служит для проигрывания загруженного в память MIDI файла.
Midi.Play
Команда служит для циклического воспроизведения MIDI файла. amount - число повторов. При amount=0 файл проигрывается бесконечно.
Midi.Loop 5
Команда используется для остановки проигрывания MIDI файла
Midi.Stop
КомандаIMAGEиспользуется для загрузки изображения из указанного файла в переменную name$. Имя переменной должно быть уникальным.
Image myImage, "/Flower.png"
Эта команда используется для создания спрайта на основании указанного изображения. image - переменная, содержащая изображение. name$ - уникальное имя спрайта.
Sprite mySprite, myImage
SPRITE.ANIMATION используется для создания анимированного спрайта на основании изображения image. name$-уникальное имя анимированного спрайта; width, height - ширина и высота спрайта Размер изображения image должен быть таким, чтобы в него укладывалось целое число спрайтов.
Эта команда используется для разбиения изображения image на тайлы, которые потом используются при создании черепичного заднего плана игры. Переменные columns и rows определяют сколько тайлов надо создать из изображения image. Height и width определяют высоту и ширину отдельного тайла.
Layer 3, 3, myImage, 20, 20
Эта команда используется для рисования тайла в некоторой части экрана, определяемый прямоугольник с координатами x1, y1 и x2, y2.
Layer.FillCell 0, 0, 4, 4, 1
Эта команда обновляет схему слоя, гарантируя правильное ее отображение.
Layer.Update
LAYER.PAINT рисует все слои на экране.
Layer.Paint
Эта команда двигает спрайт с его текущей позиции на указанное значение x и y.
Sprite.Move mySprite, 1, 0
Эта команда перемещает существующий спрайт в указанную позицию.
Sprite.Position mySprite, 10, 15
SPRITE.ROTATION используется для поворота спрайта на углы 0, 90, 180 или 270 градусов.
Sprite.Rotation mySprite, 0
Эта команда служит для отражения спрайта на значение angle, которое может быть равно 0, 90, 180, 270.
Sprite.Mirror mySprite, 90
Команда используется для задание последовательности кадров анимированного спрайта. Спрайт должен быть предварительно создан, а список list содержать существующие номера спрайтов.
Sprite.Sequence mySprite, 1, 2, 4, 2, 6, 5
SPRITE.NEXT используется для создания анимации. С помощью этой команды изменяется на следующий отображающийся в данный момент кадр спрайтовой последовательности.
Sprite.Next mySprite
Это ключевое слово используется для изменения кадра спрайта на предыдущий.
Sprite.Previous mySprite
SPRITE.SETFRAME устанавливает отображающийся кадр.
Sprite.SetFrame mySprite, 2
REPAINT используется для вызова перерисовки экрана.
Repaint()
Команда используется для очистки готового к рисованию экрана.
Cls
Эта команда используется для установки текущей области рисования. Благодаря уменьшению рабочей области, увеличивается скорость рисования. Имеет смысл пользоваться этой командой, когда надо обновить небольшую часть экрана. Чтобы сделать доступной всю область экрана, используйте эту же команду с параметрами:
SetClip 0, 0, width, height
где width и height -ширина и высота экрана.
Эта команда используется для задания текущего цвета для операций рисования. Значения параметров могут принимать значения от 0 до 255.
SetColor 0, 100, 255
Эта команда устанавливает цвет чернил для черно-белых экранов. Цвет может принимать значения от 0 до 255.
DRAWLINE рисует линию на экране от точки (x1,y1) до точки (x2,y2).
DrawLine 0, 0, 25, 25
Команда рисует пустой прямоугольник.
DrawRectangle 0, 0, 25, 25
Команда рисует закрашенный прямоугольник.
DrawFilledRectangle 0, 0, 25, 25
Команда рисует пустой прямоугольник со скругленными углами. Скругление задается параметрами mincurve и maxcurve.
DrawRoundRectangle 0, 0, 25, 25, 45, 90
Команда аналогична предыдущей, но рисует закрашенный прямоугольник.
Эта команда рисует дугу между точками x1, y1 и x2, y2 с углами angle1 и angle2.
Эта команда рисует заполнений сектор между точками x1, y1 и x2, y2 с углами angle1 и angle2.
Эта команда перемещает курсор в точку x, y
SetPoint 15, 45
Эта команда задает стиль линии. Все линии будут рисоваться в виде набора отдельных точек
Эта команда задает стиль линии. Все линии будут сплошными
IMAGE.DRAW выводит рисунок image из точки x, y.
Image.Draw myImage, 15, 15
SPRITE.DRAW Выводит спрайт на экран
Sprite.Draw mySprite
Эта команда рисует текстовую строку текущем фоном на экране.
DrawText "Hello", 15, 0
Эта команда используется для задания параметров фонта всего выводимого на экран текста. Параметр face может принимать значения MONO, PROP или SYSTEM; параметр style - BOLD, ITALIC, UNDERLINED или PLAIN; параметр size - SMALL, MEDIUM или LARGE.
Эта команда возвращает ширину рисунка image.
Value = Image.Width ( myImage )
Эта команда возвращает высоту рисунка image.
Команда возвращает ширину спрайта sprite.
Команда возвращает высоту спрайта sprite.
Команда возвращает текущую координату x спрайта sprite.
Команда возвращает текущую координату y спрайта sprite.
Команда возвращает текущий кадр спрайта sprite.
SPRITE.COLLISION позволяет определить столкнулись ли спрайты sprite1 и sprite2. Если столкнулись, возвращается значение true, иначе - false. Если спрайты имеют тип массива, вы должны указать на конкретный элемент параметром index. pixelLevel - булевая переменная определяющая тип проверки столкновения. Если она установлена в true, будет применен точный, но медленный метод проверки.
Value = Sprite.Collision ( mySprite, myOtherSprite, true )
команда служит для загрузки карты из файла и ее подготовки к рисованию
Mappy.Load "/Test.fmp"
Замечание. Файл карты может оказаться достаточно большим. Возможно вам понадобиться уменьшить размер карты.
Эта команда используется для рисования загруженной карты на экране. Команда также выполняет анимирование анимационных блоков.
MAPPY.SETX устанавливает текущее координаты X текущей карты. Эта команда используется для перемещения по карте, если ее размер превышает размер экрана.
Mappy.SetX 10
MAPPY.SETY устанавливает текущее координаты Y текущей карты. Эта команда используется для перемещения по карте, если ее размер превышает размер экрана.
MAPPY.BLOCKFLAG возвращает специфическое значение, установленное при задании тайла на текущем слое Layer в позиции X, Y. Значение параметра flag - это ID флага для чтения.
Value = Mappy.BlockFlag ( 0, 2, 5, 1 )
MAPPY.BLOCKIMAGE возвращает ID рисунка, на главном слое в позиции X, Y. Параметр Layer - блок слоев, он должен принимать значения от 0 до 4.
Value = Mappy.BlockImage ( 0, 2, 5, 0 )
Это команда подготавливает устройство к воспроизведению видео данных.
Эта команда используется для завершения работы с видео системой и освобождения ресурсов.
Команда выводит изображение с камеры на экран
Команда прячет экран камеры
Команда производит копирование текущей картинки камеры в указанное изображение
Video.Image myCapturedImage
VIDEO.HASCAMERA позволяет определить, оснащен ли телефон камерой. Если да, то возвращается значение true
VIDEO.CAPTURE позволяет определить возможно ли получить картинку с камеры. Если команда возвращает true, то вы можете использовать картинку с камеры; если false - возникли какие-то проблемы.
Команда используется для загрузки рисунка из интернета. Эта команда не производит сохранение загруженного изображения на устройство.
Net.Image myImage, "Http://www.mysite.com/myimage.png"
Команда используется для скачивания файла из Интернета и сохранения его в файл filename. В URL может быть указан файл любого типа. Вы должны сами следить за размером загружаемого файла и соответствием формата загружаемого файла и параметра filename.
Net.Download "Http://www.mysite.com/myimage.png", "myDownloadedImage.png"
NET.LOADIMAGE загружает скачанный файл картинки в image, для его дальнейшего использования в программе. Поскольку Net.Download не следит за типом загружаемых файлов, вся ответственность за несоответствие форматов лежит на Вас.
Net.LoadImage myImage, "myDownloadedImage.png"
NET.GETTEXT соединяется с текстовом файлом в интернете и закачивает его содержимое на телефон. В дальнейшем Вы можете открыть скачанеый файл.
NET.GETDATA используется для возврата вывода ASP или PHP страницы. Это позволяет организовать взаимодействие с простыми страницами или передавать данные. Параметр url может содержать внедренные переменные GET запроса для PHP или ASP страниц.
Команда посылает строку на существующий порт другого устройства.
Comm.Send 1, "Hi, this is raw socket communication"
COMM.AVAILABLE выполняет две важные функции. Команда возвращает номера доступных для использования коммуникационных портов в виде массива целых чисел. Полученные значения можно использовать в команде Comm.GetPort.
COMM.GETPORT возвращает текстовое представление указанного порта. Номер порта - одно из чисел, возвращаемых командой Comm.Available.
Команда возвращает данные, посылаемые указанному порту
Ключевое слово SERVER.CONNECT используется для соединения с Omega Server. ip$ и port$ - это ip адрес и номер порта вашего сервера. В случае успешного соединения команда возвращает 1, иначе - 0.
Connected = Server.Connect "192.168.0.1", 9800
SERVER.DISCONNECT используется для отключения от Omega сервера
SERVER.SEND посылает строку value$ Omega серверу. Перед использованием этой команды убедитесь, что есть соединение с сервером.
Server.Send "H, ths beng sent through the Omega Server"
SERVER.RECEIVE используется для получения данных от Omega сервера. Данные возвращаются в виде строки формата '@Room@Name:' а затем данные.
MyStrng$ = Server.ReceveLast()
Внимание! Использование 3D значительно повышает требования, предъявляемые к телефону. Применение следующих команд сделает невозможным выполнение вашей программы на телефонах не поддерживающих 3D. При компиляции проекта Вы получите соответствующее предупреждение.
Эта команда разрешает рендеринг 3D сцены. За этой командой должны следовать только команды 3D. Конец сцены должен быть обозначен командой 3D.End.
Эта команда обозначает окончание 3D рендеринга и позволяет использовать дальше не 3D команды.
Производит рендеринг 3D мира на экран
3D.Render myWord
Удаляет все содержимое видео порта
3D.RESETLIGHTS сбрасывает все источники света текущей сцены.
Команда используется для установки цвета источника света.
Команда используется непосредственно перед нанесением текстуры на объект или группу объектов. Она переводит рисунок в формат, пригодный для применения в качестве текстуры.
3D.FOG используется для создания эффекта тумана. Аргумент указывает на тип тумана
3D.Fog EXPONENTIAL
Команда выключает эффект тумана.
3D.SETCAMERAROTATION Поворачивает камеру на заданные углы вокруг осей.
Команда устанавливает видео порт на экране, куда будет рендриться сцена.
Команда устанавливает цвет заднего плана.
Команда устанавливает рисунок в качестве заднего плана.
Используется для проверки существования (инициализации) переменной или массива.
Команда возвращает текущее системное время в миллисекундах.
Возвращает количество свободной на устройстве памяти. Если памяти мало, Вы можете удалить неиспользуемые рисунки, звуки и спрайты с помощью команды MEM.FLUSH.
Команда показывает сколько всего памяти на устройстве.
Эта команда генерирует случайное число в указанных пределах.
Команда используется для получения контекста указанного окна.
Возвращает название выбранного в настоящее время пункта меню.
Возвращает номер выбранного в настоящее время пункта меню.
Команда возвращает длину указанной строки.
Команда возвращает подстроку, состоящую из length первых символов строки value$.
Команда возвращает подстроку, состоящую из length последних символов строки value$.
Команда возвращает подстроку из строки value.
Команда возвращает модуль числа value.
Команда возвращает наименьшее из двух чисел.
Команда возвращает наибольшее из двух чисел.
Команда удаляет пробелы в начале и в конце строки.
Команда возвращает номер, соответствующий первой встретившейся подстроке pattern в строке value.
Команда возвращает ширину графического холста (canvas).
Команда возвращает высоту графического холста (canvas).
Возвращает нажатую клавишу. Эту команду надо использовать в блоке KeyPressed.
Команда возвращает время в миллисекундах, которое прошло момента нажатия клавиши.
Команда возвращает true, если была нажата кнопка "вверх". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "вниз". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "влево". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "вправо". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "select". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "clear". Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "start" (*). Эту команду надо использовать в блоке KeyPressed.
Команда возвращает true, если была нажата кнопка "решетка" (#). Эту команду надо использовать в блоке KeyPressed.
На какое разрешение экрана стоит рассчитывать свои приложения? Мой эмулятор настроен на 180x177, но насколько мне известно разрешение экрана сильно отличается у разных телефонов.
Разрешение экрана зависит от модели телефона. Поэтому, прежде чем браться за разработку, стоит провести некоторое предварительное исследование. Эмулятор использует наиболее распространенное в настоящее время разрешение.
Стоит ли мне разрабатывать приложение, рассчитанное на разные разрешения экрана или лучше для каждого телефона выпускать отдельный релиз?
Использование динамически меняющегося размера экрана достаточно эффективный прием, однако, если Вы хотите охватить весь рынок, Вам все равно придется выпускать несколько релизов.
Какой размер должно иметь мое приложение?
В принципе в настоящее время можно смело писать на все 500kb, однако чем компактнее Ваше приложение, тем лучше.
Какой звуковой стандарт нужно использовать в своих программах?
В настоящее время поддержка звука является дополнительной, то есть нет единого стандарта. Поддерживаемые форматы сильно зависят от моделей телефонов.
Omega Basic объектно ориентированный язык?
Нет Omega Basic не является объектно ориентированным, но генерируемый им Java код естественно является объектно ориентированным.
Могу я редактировать рисунки?
Нет, пока это не возможно.
Как я могу определить, что кнопка не нажата?
Чтобы определить нажата ли клавиша, используйте команду LastKey(). Если возвращаемое число больше нуля, то клавиша не нажата.
Я нажимаю Editor.exe, но ничего не происходит.
Этому может быть несколько причин.
1). Редактор использует 'config.cfg', чтобы определить где расположены редактор и компилятор. Убедитесь, что этот файл содержит корректную информацию.
2). Файлы могли быть удалены или повреждены. Попробуйте переустановить Omega Basic.
Ошибки при компиляции
Первом делом стоит обратить внимание на сообщения об ошибках в коде. Если предупреждений не было, возможно:
1). В файле 'config.cfg' содержится некорректная информация и Omega Basic не может найти требуемые файлы. Убедитесь, что 'config.cfg' содержит корректную информацию.
2). Возможно это ошибка в Omega Basic-е. Пришлите в нашу службу поддержки полный текст программы и снимок окна редактора.
Мой серийный номер не принимается
Серийный номер генерируется на основе физических характеристик Вашего компьютера, поэтому Вы должны активизировать программу на компьютере, где собираетесь ее использовать. Если Вы провели upgrate, свяжитесь с нашей службой поддержки и получите новый серийный номер.
Процесс Java генерирует ошибку
Omega Basic генерирует 100% Java совместимый код. Вероятно в Omega Basic-е есть ошибка. Пришлите нам свой код и мы постараемся устранить проблему. Мы гарантируем секретность вашего кода.
Проблемы с эмулятором
Эмулятор не является частью Omega Basic-а. Посетите web сайт компании Sun для получения информации о неполадках в эмуляторе.
REM Создадим целочисленную переменную myInt Dim myInt REM Присвоим ей значение MyInt=99 REM Создадим строковую переменную myString, REM и присвоим ей значение прямо в процессе создания. Dim myString$="This is my string!" REM Создадим булевую переменную myBoolean. REM Такие переменные могут принимать значенияtrue илиfalse Boolean myBoolean
REM Ветвление. Ниже проверяется значение переменной myInt. REM Если переменная меньше100, то есть если утверждение, REM стоящее за словомIf истинно(true), выполняется блок после слова Then. If myInt<100 Then REM Этот код выполняется если значение переменной myInt меньше ста. MyBoolean=True MyString$="Переменная меньше 100" Else REM Этот код выполняется если утверждение, стоящее за словом REMIf ложно(false). Если значение переменной myInt больше REM или равно ста, выполняется этот блок. MyBoolean=False MyString="Переменная больше 100" EndIf
REM Давайте напечатаем значение переменной myString REM столько раз, сколько содержит переменная myInt. REM Воспользуемся для этого цикломFor. Этот цикл применяется REM когда известно число требуемых повтором. На каждом витке цикла REM значение переменной цикла(I) увеличивается на единицу. For I=0 To myInt REM Этот код будет выполнен myInt число раз. Print myString$ Next I
REM Если число повторов заранее не известно, и цикл нужно REM выполнять, пока истинно какое-нибудь условие, используется REM блок'while...endwhile' is used. Dim myOtherInt=0 While myOtherInt< myInt REM на каждом витке проверяется условие'myOtherInt < myInt'. REM если оно не выполняется, выходим из цикла REM Увеличиваем значение myOtherInt на1 myOtherInt= myOtherInt+1 EndWhile End
REM Итак, давайте создадим новую форму. Форма- это своеобразный REM контейнер, который может включать в себя разнообразные REM компоненты пользовательского интерфейса, таких как кнопки, поля REM ввода текста, списки и т.д. Если Вы хотите, чтобы форма REM реагировала на действия пользователя, вы должны использовать REM команду Listener. Form myForm,"This is my form" Listener myForm REM Давайте создадим кнопку и разместим ее на форме. Button myButton,"Do Something",0 Button.Show myForm, myButton REM Добавим также текстовое поле для ввода пароля.. Textbox myTextBox,"Password:","",3 Textbox.Show myForm, myTextBox REM Теперь, когда мы завершили формировать содержание формы, REM мы можем отобразить ее на экране. SetDisplay myForm
REM Прежде всего нужно очистить экран. Для этого используется REM команда cls. Cls REM Теперь можно установить цвет"карандаша". При установке REM цвета используется формат RGB. Каждая составляющая REM может принимать значение от0 до255. Следующая строка REM устанавливает синий цвет. SetColor0,0,255 REM С помощью следующий команды, выводим строку текста на экран. DrawText"A quick drawing demo",0,0 REM Теперь давайте нарисуем несколько примитивов. Обратите REM внимание, мы используем width, height для получение ширины REM и высоты экрана. DrawLine0,0, width, height DrawRectangle10,10,15,15 DrawFilledRectangle20,20,( width-20),(height-20)
REM Поддержка работы с изображением и спрайтами позволяет REM создавать мощные графические приложения. Для использования REM изображения, его необходимо сначала загрузить. Для загрузки REM используется команда image. Обратите внимание, в случае REM возникновения ошибки будет напечатана строка"Error" Try Image myImage,"/myAlien.png" Catch IO Print"Error" End EndCatch EndTry REM После того, как изображение загружено, вы можете применять REM различные команды для работы с ним. Возможно Вы захотите REM создать на основании загруженного изображения спрайт. REM Используйте команду'Sprite' для создания нового спрайта. Sprite mySprite, myImage REM Если рисунок подразумевает использование анимации, можете REM воспользоваться'Sprite.Animation' чтобы указать, что спрайт REM анимирован. Числовые аргументы: ширина и высота спрайта. Sprite.Animation myAnimatedSprite, myImage,20,20 REM Если созданный вам спрайт должен отображаться несколько раз. REM Например, Вы хотите создать эскадру вражеских кораблей, Вы REM можете использовать команду'Sprite.Array', создающую массив REM спрайтов. числовой параметр указывает число спрайтов. Затем REM к каждому спрайту массива можно обращаться индивидуально. Sprite.Array myArraySprite, myImage,10 REM Теперь Вы можете использовать команды для позиционирования, REM смены, поворота спрайта. Следующая команда двигает спрайт REM относительно текущей позиции. Sprite.Move mySprite,1,0 REM команда поворачивает спрайт на90 градусов. Sprite.Rotation mySprite,90 REM Используйте команду'Sprite.Draw', если хотите быть уверенны, REM что спрайт отображается на экране. Sprite.Draw mySprite
Перевод:aRix