Вниз  RFO BASIC
- 27.01.2015 / 14:35copy  #396952
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Здесь можно разбирать по косточками программирование на этом диалекте бейсика. Разные приёмы обнаруженные случайно, фрагменты программ и простые примеры и обсуждение отличий от других версий бейсика.

• Актуальная версия RFO и документация к нему
• Отличие RFO от MobileBasic (64 страница темы)
• Описание возможностей
• Сборка в АРК (#454393)

Ссылки
Сам бейсик, также есть в плэймаркете
Общее описание
Более подробное описание
Сборка приложения ! указанный документ сильно устарел, есть более удобные способы сборки APK, читайте начиная с этого поста

Полезное
Массивы
Переменные
Работа с графикой
Списки

Учебники
Раз
Два
Три рус|eng
Глава 1 Графические команды

Документация
docs.google.com

Форум разработки игр на RFO

Примеры программ

http://65wat.ru/games.zip
( все исходники + APK из папки http://laughton.com/basic/programs/games/ )

+ http://65wat.ru/tools.zip
+ Содержимое папки "utilities" с ftp.laughton.com, https://yadi.sk/d/aS01QBHHjChyC

Также, примеры из поставки Basic, то, что доступно при его установке на устройство:
https://github.com/RFO-BASIC/B...urce/Sample_Programs

Изменено ewo (30.03 / 16:55) (всего 35 раз)
- 27.01.2015 / 14:50copy  #396956
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Любая игра, да и не только игра начинается с рисования графики и изучения средств графического вывода, имеющегося в выбранном для изучения, языке программирования. Я долго подбирал рабочие конструкции исходя из англоязычного учебника и знаний о других версиях бейсика. В этом языке нет номеров, все подпрограммы и прямые переходы объявляются метками в виде имени с двоеточием после. Вызываются эти переходы и подпрограммы по имени и без двоеточия.

Например:
  1. gosub Text print
  2.  
  3. Text print:
  4.    print "text"
  5. return


Изменено aNNiMON (28.01 / 15:24) (всего 1 раз)
- 27.01.2015 / 15:15copy  #396963
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Да да. Этот язык умеет понимать операторы написанные строчными буквами. Но игры с печатью и расчетами количества яблок мы оставим школьникам. Нас же, разработчиков домашнего софта интересует серьёзное программирование. Для графического режима в рфо бейсике имеются специальные команды. Итак, опишу то что потребуется для начала: сперва создаём фон грического окна
  1. gr.open 255,0,0,0
Получится чёрный непрозрачный экран.
Первая цифра это уровень прозрачности, вторая, третья и четвёртая, это цвета в формате RGB соответственно

Следующий цикл позволяет получить координаты нажатия на тачпад:
  1. do
  2.   gr.touch имя логической переменной,x,y
  3. until имя логической переменной.

Цикл завершается как только происходит нажатие на любое место экрана. В результате имеем координаты точки нажатия, которые потом можно использовать как для скроллинг так и для перемещений объектов по экрану. Я освоил скроллинг и перемещение рисунков любого графического формата, а также составление больших карт и карт состоящих из маленьких частей, ровно так как это реализуется старых игровых приставках за исключением того, что карлики имеют большее разрешение чем использовано в приставках. Об этих алгоритмах я расскажу позже.

Изменено aNNiMON (28.01 / 15:22) (всего 1 раз)
- 27.01.2015 / 15:36copy  #396964
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
aNNiMON, на твой пост (#396958) отвечу, Зверь этот умеет работать с блютусом, gps, ftp, html, sql, любыми файлами, создаёт файлы и удаляет их, есть также создание txt,bin,dat. Графический и текстовой режимы, легко перекллючаемые между собой. Понимает разные системы счисления, такие как двоичная, восьмеричная,шестнадцати ночная и десятичная.как и везде, умеет высадить тексты в графический экрана. Есть вращение, масштабирование и антиалиасинг изображений. 2D приложения отлично может обрабатывать, для 3D по моему мнению медленный. Но можно заменить псевдо 3D графикой. Способен работать с большими, графическими областями, что просто необходимо для игр с огромным игровым миром, непомещающемся на экране целиком. Звук может быть трёх вариантов, один тон моно, тон моно и аудиотрэк, любого формата, либо вся музыка и звуки состоят из трэков. Ещё этот бейсик умеет записывать звук в указанном вами формате, если этот формат поддерживают кодеки встроенные в операционку самого девайса или установлены на него. Может снимать данные с датчиков имеющихся в устройстве. По моему он лучше андроид версии MobileBasic. Более функциональные чтоли.
  Точных ссылок не помню. Вроде бы http:// learnrfo.com я искать его снова не хочу. Гуго находит сразу по запросу "скачать BASIC!" ещё DeRebasic.com
- 27.01.2015 / 20:49copy  #397026
Virus-ONЪ
  Пользователь

Virus-ONЪ 
Сейчас: Offline
Ребят, Сармат же уже создавал тему по этому бейсику. :gg:
- 27.01.2015 / 20:50copy  #397027
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Virus-ONЪ, по Pure Basic'у помню.
__________________
 let live
- 27.01.2015 / 20:51copy  #397029
Virus-ONЪ
  Пользователь

Virus-ONЪ 
Сейчас: Offline
aNNiMON, И по этому бейсу тоже. Точно помню. Тут ещё анальная сборка через исходники. :-D
- 28.01.2015 / 03:48copy  #397135
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Ну не знаю. Других ссылок не существует, а про сарматами ничего не знаю и не видел. А бейсик нормальный, только собирать apk нужно отдельно специальной прогой. Где-то она мне показалась, но пока искать её нет необходимости, сперва надо написать законченную программу.
- 28.01.2015 / 03:57copy  #397136
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Комментарии в программах можно писать четырьмя способами:
 
- Отдельная строка rem: текст комментариев
- Отдельная строка !текст комментариев
- Блок строк:
  1. !!комментарии
  2. Комментарии
  3. Комментарии!!
- И комментарий в строке программы:
  1. tone 300,2000 %звуковой сигнал

Я чаще пользуясь одиночными строками пояснений после "!" и комментарии в строке "%"
Поэтому поясню каждую строку своих примеров.

Изменено aNNiMON (28.01 / 15:20) (всего 1 раз)
- 28.01.2015 / 04:42copy  #397137
oslopov1991
  Пользователь

oslopov1991 
Сейчас: Offline
Маленькая программка приведенная ниже выводит выбранную картинку на экран и эта картинка движется по горизонтали, ударяясь о края экрана со звуком
Просто введите команды без комментариев. Я лишь разьясню каждый кусочек этого пирога :-D

  1. x=-256 %начальная координата по горизонтали(у меня она равна ширине картинки в пикселах)
  2. y=0 %начальная координата по вертикали
  3. gr.open 255,0,0,0 %чёрный фон
  4. !загружает картинку под именем picture
  5. !!(хочу отметить, что пока не разбирался с файловыми командами и поэтому все звуки, музыку и картинки надо кидать в папку /rfo-basic/data!!
  6. !!когда время дойдёт научить программу сохранять и грузить файлы из других мест, тогда уровню алгоритм.!!
  7. gr.bitmap.load picture,"image.bmp"
  8. gr.bitmap.draw pic,picture,x,y %поместить картинку picture по координатам, присвоив ей ярлык pic
  9. gr.render %первое отображение картинки
  10. gosub sound %я просто добавил звук при достижении края экрана
  11. while 1=1 %беконечный цикл для нормальной работы алгоритма(является началом основного текста программы)
  12. for w=x to x+(1024+abs(x)+1) step 8 %правый край w и скорость 8 пикселов(у меня разрешение на планшета 1024х552, поэтому такие сила и ставлю)
  13. gosub repeint
  14. next w
  15. gosub sound
  16. for w=x to x+(1024+abs(x)) to x step -8 %левый край экрана и скорость 8 пикселов пикселов
  17. gosub repaint %перерисовать с изменениями
  18. next w
  19. gosub sound
  20. repeat
  21. !подпрограммы
  22. sound:
  23. audio.stop %необходимо сперва остановить звук, чтобы избежать ошибки повторного запуска музыки
  24. audio.load snd,"bang.wav" %загрузить звук под именем snd
  25. audio.play snd %воспроизвести звук
  26. return
  27. repaint:
  28. gr.modify pic,"x",w %изменяет параметр объекта, т.е координату x картинки
  29. gr.render %выводит изменения на экран
  30. return


Изменено aNNiMON (28.01 / 15:18) (всего 2 раза)
Наверх  Всего сообщений: 2556
Фильтровать сообщения
Поиск по теме
Файлы топика (545)
Поиск по форуму
Новые вверху
  © aNNiMON (Melnik Software)
Онлайн: 36 (1/35)