Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 28 мар 2024, 22:30

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Игра Dash для Java ME, MS-DOS и ZX Spectrum
СообщениеДобавлено: 26 ноя 2012, 15:46 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
После многих экспериментов могу с уверенностью сказать — разработка мидлетов на GPCP возможна.

Анонсирую кроссплатформенную игру Dash, разрабатываемую на Оберон-языках:

https://sourceforge.net/projects/bolderdash/
https://github.com/Oleg-N-Cher/Dash/

Столь различные платформы выбраны чтобы показать практическую мощь Оберон-технологий.

J2ME — 32-битная, как правило, для карманных устройств (мобильных телефонов) с маленьким экраном (разрешение варьируется от 128x128 до 240x320 и выше) глубиной цвета от 256 до 65536 цветов и небольшим количеством кнопок (или сенсором).

MS DOS — 16-битная классика. Кто не помнит Prince of Persia, DOOM или Norton Commander? Для усложнения условий решено ограничиться графикой CGA (320x200, неквадратные точки, 4 цвета, выбираемые из нескольких палитр).

ZX Spectrum — тоже классический 8-битный компьютер 80х - 90х годов. Специфическое строение экрана с атрибутной цветностью (из квадратиков), 48 Кб ОЗУ.

Цель проекта — отделить машинно-независимое представление игры в рамках стандарта языка Оберон-1 от платформенно-зависимых прослоек, разработанных на диалектах Оберон-1, Оберон-2 и Компонентный Паскаль.

Пример портабельного игрового кода:
Код: "OBERON"
  1. MODULE Dash; (** portable *)
  2. IMPORT
  3. GrScr, Rsrc, Til := GrTiles;
  4.  
  5. VAR
  6. title: Rsrc.Resource;
  7. titleSize: INTEGER;
  8. BEGIN
  9. Til.SetSize(10, 10, 5, 5);
  10. title := Rsrc.Open(Rsrc.Title);
  11. titleSize := Rsrc.TitleSize;
  12. REPEAT
  13. Til.PutTile(Rsrc.ReadByte(title), Rsrc.ReadByte(title),
  14. Rsrc.GetTileByNum(Rsrc.ReadByte(title)));
  15. DEC(titleSize);
  16. UNTIL titleSize = 0;
  17. Rsrc.Close(title);
  18. GrScr.Repaint;
  19. END Dash.

Пример непортабельной прослойки-биндинга к платформе J2ME на Компонентном Паскале:
Код: "OBERON"
  1. MODULE Timer; (** non-portable *)
  2.  
  3. IMPORT
  4. lang := java_lang;
  5.  
  6. PROCEDURE Delay* (msec: INTEGER);
  7. BEGIN
  8. lang.Thread.sleep(msec);
  9. RESCUE (interruptedException);
  10. END Delay;
  11.  
  12. END Timer.


Вложения:
Комментарий к файлу: Результат работы примера. GPCP-мидлет, запущенный на мобильном телефоне.
Dash.jpg
Dash.jpg [ 24.16 КБ | Просмотров: 8526 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club