Создание пазла

From GCompris
Revision as of 04:43, 12 March 2010 by Alexei (talk | contribs) (Créer les régions)
Jump to: navigation, search
L'activité de géography.

Как использовать скрипт shapegame.py для создания паззлов

Введение

Многие упражнения GCompris работают по схожему принципу: они представляеют собой паззл из частей, иконки которых можно выбирать слева на экране. Такие упражнения называются shapegame в терминологии GCompris и используют встроенный движок упражнений.

Чтобы самостоятельно создать такое упражнение, можно воспользоваться скриптом на языке Питон, созданным для графического редактора GIMP Мигелем де Изаррой (Miguel De Izarra). Собственно, требуется всего лишь наложить изображения на фон.

Необходимые инструменты

  • скрипт на Питоне
  • Графический редактор Gimp
  • Картинка географической карты размером 800Ñ…520 пикселей, с хорошо видными границами государств.

Установка скрипта

Актуальная версия исходного кода скрипта находится на этой странице репозитория GCompris. Обратите внимание: скрипт не распространяется вместе с исходным кодом GCompris. Можно загрузить сам скрипт отсюда.

Чтобы его установить, скопируйте его в папку скриптов графического редактора GIMP. Ð’ Линуксе эта папка находится в вашем домашнем каталоге, в ~/.gimp-2.2/plug-ins/ ('~' представляет собой путь к домашнему каталогу, как /home/bruno). Затем добавьте права на исполнение этому скрипту :

cp gcompris_shapegame.py ~/.gimp-2.2/plug-ins/
chmod +x ~/.gimp-2.2/plug-ins/gcompris_shapegame.py

Отныне, если вы запустите GIMP, в нём будет новый пункт меню в меню Image: (Python-fu -> GCompris).

Подготовка

Создать собственную карту для GCompris легко. Мы покажем на примере, как создать карту Бразилии и разместить на ней областные регионы.

Скрипт работает только с файлами формата .xcf -- стандартного формата файлов GIMP. Нам было лениво вручную рисовать карту Бразилии, так что мы скачали её с Википедии в формате SVG (векторный графический формат, леко масштабируется без потери качества). Карты на Википедии распространяются по лицензии GPL и являются общественным достоянием.

Поскольку карта должна быть размером 800x520 пикселей, мы конвертируем векторый SVG-файл в растровый формат соответствующего размера. Сконвертированный файл уже можно открыть GIMPом.

Задание областей

На найденной нами карте Бразилия изображена светло-серым, а её внешние границы и границы между областями - темно-серым цветом. Каждая область хорошо видна. При помощи инструмента GIMP "волшебная палочка" мы выделим желаемую область ("волшебная палочка" выделяет последовательные регионы одного цвета). Когда область выделилась, она обрисовывается по контуру бегающими точками. Щелчком правой кнопки вызовем контекстное меню и выберем Выделить > Сохранить в Отдельный Канал [Select > Save to Channel]. Изменим имя канала (по умолчанию это "Копия маски выделения") и назовём его именем области, например Rio Grande do Norte.

Повторим операцию для каждого штата. Чтобы представить себе, о чем идёт речь, скачайте файл и посмотрите на результат. Откройте меню Диалоги > Каналы [Dialogs > Channels], чтоб увидеть созданные нами каналы.

Lancer le script

Lorsque vous lancez le script, vous allez passer un certain nombre de paramètre:

  • activity_name: Nom de l'activité (defaut = geography)
  • dossier: sous répertoire (par exemple Brazil)
  • title: Titre du puzzle GCompris
  • bordersize: La taille des bordure entre les pays (3 marche bien)
  • keepLimit: Garder la limite entre les pays (Préférable si carte complexe)
  • level: Le niveau de l'activité
  • sublevel: Le sous niveau de l'activité

Le script va se charger de colorier chaque région, créer une bordure autour du pays, ainsi que lier le canal à son emplacement pour le futur jeu.

Le résultat est sauvegardé dans le même répertoire que votre image source. Vous devez ensuite manuellement déplacer le résultat au bon endroit dans le répertoire de GCompris. Pour notre exemple, nous allons mettre les données dans /usr/share/gcompris/boards/geography_country

Faire un puzzle

Pour faire un puzzle, c'est plus simple, il suffit de prendre n'importe quelle image en 800x520, la sauvegarder dans Gimp et lancer le script Python-Fu->GCompris->Puzzle. Vous pouvez alors choisir le nombre de pièces à créer. Les autres informations sont similaires au script de création de carte.