Записки программиста Программирование и не только

11Окт/121

[Java] Подключаем чужие исходники в IntelliJ IDEA

По следам статьи

В статье предлагается попробовать себя в роли разработчика Рогалика (Rogue-like) - игрушки, в которых вместо графики используется ASCII символы.

Разберем, как же подключить правильно сторонние библиотеки, чтобы всё работало.

Необходимо скачать две (а не одну, как сказано в статье) библиотеки: jcurses и libjcsi
Для скачивания исходников для libjcsi понадобится SVN клиент (надо будет написать про них немного)
Или можно взять тут: http://axis.bplaced.net/wp-content/uploads/2012/10/libjcsi.zip
Качаем исходники (Source) и распаковываем их куда-нибудь. У меня это C:\JavaLib\jcurses и C:\JavaLib\libjcsi

Создаём новый модуль (или открываем старый) и добавляем туда новый класс Rogalic.

Заходим в File -> Project Structure
Раздел Module, вкладка Dependencies.

Жмём + -> Module

Выбираем Create module from existing sources и жмем "..."

Находим исходники

Жмем Next до упора и потом Finish (всё по умолчанию, все окна практически пустые)

Повторяем тоже самое для libjcsi

Теперь добавляем зависимости.
Жмем на модуль Net и затем справа на "+" -> Module dependency

Выбираем там Jcurses

Теперь выбираем наш родной модуль и повторяем операцию. Только теперь выбираем Net

Закрываем всё. Должно получиться как-то вот так

Теперь пишем в классе Rogalic следующее:

import java.util.ArrayList;
import java.util.Properties;

import net.slashie.libjcsi.CSIColor;
import net.slashie.libjcsi.CharKey;
import net.slashie.libjcsi.ConsoleSystemInterface;
import net.slashie.libjcsi.wswing.WSwingConsoleInterface;

public class Rogalic {
    private static Rogalic instance;
    private static ConsoleSystemInterface csi;
    private boolean stop;
    private int x,y;
    public static void main(String[] args)
    {
        Properties text = new Properties();
        text.setProperty("fontSize", "15");
        text.setProperty("font", "roguelike.ttf");
        csi = new WSwingConsoleInterface("RogueLike", text);
        instance = new Rogalic();
        instance.run();
    }

    public void run()
    {
        stop = false;
        x = 0; y = 0;
        while (!stop)
        {
            csi.cls();
            csi.print(x,y,'@', CSIColor.WHITE); // отрисовка игрока
            csi.refresh();
            handleKeys(); // обработка клавиатуры
        }
        System.exit(0);
    }

    private void handleKeys(){
        CharKey dir = csi.inkey();
        if(dir.isUpArrow()&& (y-1 >= 0)){
            y--;
        }
        if(dir.isDownArrow() && (y+1 < 25)){
            y++;
        }
        if(dir.isLeftArrow() && (x-1 >= 0)){
            x--;
        }
        if(dir.isRightArrow() && (x+1 < 80)){
            x++;
        }
        if(dir.code == CharKey.Q){
            stop = true;
        }
    }
}

Запускаем!
Если всё сделано правильно, то должно появиться окно с довольной "собакой (@) - главным героем всех Рогаликов. Ну, почти всех :)
Им можно шаволить курсорными стрелками.

Комментарии (1) Пинги (0)
  1. Добрый день, сделал все как написано в статье, но у меня не импортируются классы import net.slashie.libjcsi.CSIColor;
    import net.slashie.libjcsi.CharKey;
    import net.slashie.libjcsi.ConsoleSystemInterface;
    import net.slashie.libjcsi.wswing.WSwingConsoleInterface;
    «net» светится красным, как будто не находит откуда импортировать. IDEA 15 у меня, не подскажите в чем может быть проблема?


Leave a comment

Нет обратных ссылок на эту запись.