LINUX.ORG.RU

Опубликованы исходники MoveNoid — бесконтактного арканоида под Linux

 , , ,


3

3

MoveNoid — это бесконтактный арканоид, в котором управление ракеткой осуществляется в воздухе с помощью специально размеченной картонки. Игра написана с помощью библиотеки компьютерного зрения OpenCV и популярного движка двумерной физики Box2D. В качестве фреймверка общего назначения используется Qt 5.9. Исходные коды proof-of-concept были открыты в этом месяце под свободной лицензией GPL v.3 и Modified BSD.

Для игры потребуется компьютер, веб-камера и специально размеченная картонка (чертеж разметки доступен на официальной странице игры). Желательно использовать камеру высокого разрешения с быстрой незамыливающей изображение матрицей. Автор использует бытовую Logitech C270, однако лучше подойдет более продвинутая модель C615, или другие веб-камеры из профессиональных серий.

Разработка игры находится в начальной стадии, код прост и понятен, поэтому в настоящий момент можно легко подключиться к разработке и сделать один из пунктов Плана развития игры.

Для интересующихся доступны ссылки:

>>> Официальная страница игры

>>> Видеообзор с демонстрацией процесса игры

>>> Подробности: Новость на сайте автора

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Napilnik

Есть у меня вэбка, при дневном освещении можно использовать как фотоаппарат, а при искусственном показывает тьму кромешную, нужен слишком яркий ламповый свет чтобы было получше. Нафиг мне такие джойстики, которые требуют яркого освещения.

Кстати заметь, автор там в полумраке сидит. И нормально захват идет.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Кстати заметь, автор там в полумраке сидит. И нормально захват идет.

Вэбка вэбке рознь, когда свою покупал, продаван на её стоимость скидку сделал, сам, я о таком не просил, так что дарёной вэбке в матрицу не смотрят.

Napilnik ★★★★★ ()
Последнее исправление: Napilnik (всего исправлений: 1)
Ответ на: комментарий от Napilnik

используется Qt 5.9

Не, не нужны такие исходники, пусть в них другие ковыряются.

Никаких жестких зависимостей на версию Qt нет, просто разработка шла именно в v.5.9.2. Возможно, что проект соберется и в более старых версия, как минимум в 5.6.x.

...хотя я лично предпочитаю делать наоборот - для разработки брать версию Qt постарше, а потом смотреть, как она собирается на более новых.

hobbit ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Но в теннисе рука не держится перед собой все время с точными движениями в плане поворота, она внизу под собственным весом и делает размашистые движения. Махать руками, кмк, куда проще, чем просто зиговать перед собой в течение долгого времени.

wolph ()
Ответ на: комментарий от wolph

Небольших движений достаточно чтобы не забивать руку, а движения в тенисе в итоге должны быть ещё и точнеее, как мне кажется. Здесь думаю тоже можно махать картонкой и убирать её вниз когда она не нужна - если движок распознавания сделают достаточно отзывчивым.

kirill_rrr ★★★★★ ()

игори и камера это все правильно. только надо не так. метку на дверь, камеру - на метку. когда дверь открывается, чтобы игорь сворачивалась с экрана.

а вообще вместо кутинойда напиши лучше драйвер, чтобы метка прикидывалась либо мышом, либо клавиатурой. тогда можно найти массу применений.

anonymous ()
Ответ на: комментарий от fluorite

Спасибо! Но что то не получается :-/

ivan@Dell-Inspiron-7520 ~/movenoid/build $ qmake ../MoveNoid.pro
qmake: could not find a Qt installation of ''

Но qt вроде стоит:

ivan@Dell-Inspiron-7520 ~/movenoid/build $ dpkg -l|grep Qt|grep core
ii  libqt5core5:amd64                           5.0.2+dfsg1-7ubuntu11.1                    amd64        Qt 5 core module
ii  libqtcore4:amd64                            4:4.8.4+dfsg-0ubuntu18.1                   amd64        Qt 4 core module

baaba ★★ ()
Ответ на: комментарий от baaba

Твоя версия Qt протухла на 5 лет минимум, актуальная на сегодня — 5.10. Проще всего скачать официальную версию Qt с сайта

$ wget http://download.qt.io/official_releases/qt/5.10/5.10.0/qt-opensource-linux-x64-5.10.0.run
$ chmod +x qt-opensource-linux-x64-5.10.0.run
$ ./qt-opensource-linux-x64-5.10.0.run
Потом открыть .pro в QtCreator'е и нажать зелёную кнопку build.

fluorite ★★★★★ ()
Ответ на: комментарий от fluorite

Спасибо за подсказку! Обновил Mint до 18. Сейчас не хочет находить opencv:

ivan@dell-insp-7520 ~/movenoid/build $ qmake ../MoveNoid.pro
Project ERROR: Package opencv not found

Из OpenCV установлены вот такие пакеты:


ivan@dell-insp-7520 ~ $ dpkg -l|grep opencv
ii  libopencv-calib3d2.4v5:amd64                2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Camera Calibration library
ii  libopencv-contrib2.4v5:amd64                2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision contrib library
ii  libopencv-core2.4v5:amd64                   2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision core library
ii  libopencv-features2d2.4v5:amd64             2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Feature Detection and Descriptor Extraction library
ii  libopencv-flann2.4v5:amd64                  2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Clustering and Search in Multi-Dimensional spaces library
ii  libopencv-highgui2.4v5:amd64                2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision High-level GUI and Media I/O library
ii  libopencv-imgproc2.4v5:amd64                2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Image Processing library
ii  libopencv-legacy2.4v5:amd64                 2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision legacy library
ii  libopencv-ml2.4v5:amd64                     2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Machine Learning library
ii  libopencv-objdetect2.4v5:amd64              2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Object Detection library
ii  libopencv-video2.4v5:amd64                  2.4.9.1+dfsg-1.5ubuntu1                      amd64        computer vision Video analysis library

Не понимаю что ещё нужно доустановить

baaba ★★ ()
Ответ на: комментарий от fluorite

Теперь не могу понять есть ли у меня opencv.pc в системе

ivan@dell-insp-7520 ~/movenoid/build $ pkg-config opencv --cflags --libs
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

baaba ★★ ()
Ответ на: комментарий от baaba

Тебе надо поставить пакет с заголовочными файлами opencv, они обычно в дебианоподобных дистрибутивах заканчиваются на -dev, ищи что-то типа libopencv-dev. Ещё libbox2d-dev нужен будет.

fluorite ★★★★★ ()
Последнее исправление: fluorite (всего исправлений: 1)

Разобрался с opencv и box2d, теперь вот так:

ivan@dell-insp-7520 ~/movenoid/build $ make
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../MainWindow.ui -o ui_MainWindow.h
make: /usr/lib/x86_64-linux-gnu/qt4/bin/uic: Команда не найдена
Makefile:303: ошибка выполнения рецепта для цели «ui_MainWindow.h»
make: *** [ui_MainWindow.h] Ошибка 127e]

baaba ★★ ()
Ответ на: комментарий от baaba

Как в итоге Qt поставил? Дефолтный системный qmake у тебя, похоже, до сих пор 4 версии. Гугель говорит, нужно поставить пакет qt5-default.

p.s. Хотя, наверное, можно ничего не ставить, а вместо

$ qmake
запускать по полному пути
$ /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
Только билд-директорию удали и создай заново.

fluorite ★★★★★ ()
Последнее исправление: fluorite (всего исправлений: 1)
Ответ на: комментарий от baaba

Сейчас только поставил Mint 18. Единственное не обновлял. В нём вроде как из коробки и Qt5 и Qt4. Поробовал с Qt4, процесс продвигается немного дальше но упирается в отсутствие g++

ivan@dell-insp-7520 ~/movenoid/build $ qmake ../MoveNoid.pro 
ivan@dell-insp-7520 ~/movenoid/build $ ls
Makefile
ivan@dell-insp-7520 ~/movenoid/build $ make
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../MainWindow.ui -o ui_MainWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../SettingsWindow.ui -o ui_SettingsWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../GameWindow.ui -o ui_GameWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../CaptureWindow.ui -o ui_CaptureWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../ReadyPoster.ui -o ui_ReadyPoster.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../GameOverPoster.ui -o ui_GameOverPoster.h
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I../../movenoid -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/opencv -I/usr/include/Box2D -I. -I. -I../../movenoid -I. -o main.o ../main.cpp
make: g++: Команда не найдена
Makefile:333: ошибка выполнения рецепта для цели «main.o»
make: *** [main.o] Ошибка 127
baaba ★★ ()
Последнее исправление: baaba (всего исправлений: 1)
Ответ на: комментарий от fluorite

Да, build-essential помог, теперь так:

ivan@dell-insp-7520 ~/movenoid/build $ make
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../MainWindow.ui -o ui_MainWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../SettingsWindow.ui -o ui_SettingsWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../GameWindow.ui -o ui_GameWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../CaptureWindow.ui -o ui_CaptureWindow.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../ReadyPoster.ui -o ui_ReadyPoster.h
/usr/lib/x86_64-linux-gnu/qt4/bin/uic ../GameOverPoster.ui -o ui_GameOverPoster.h
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I../../movenoid -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/opencv -I/usr/include/Box2D -I. -I. -I../../movenoid -I. -o main.o ../main.cpp
../main.cpp:1:24: fatal error: QApplication: Нет такого файла или каталога
compilation terminated.
Makefile:333: ошибка выполнения рецепта для цели «main.o»
make: *** [main.o] Ошибка 1

baaba ★★ ()
Ответ на: комментарий от fluorite

Помогло, остановился здесь: https://pastebin.ca/3955860 А если делать через qt5, как ты советовал ранее, получается так:

ivan@dell-insp-7520 ~/movenoid/build $ /usr/lib/x86_64-linux-gnu/qt5/bin/qmake ../MoveNoid.pro 
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/rcc: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found
sh: 1: /usr/lib/x86_64-linux-gnu/qt5/bin/uic: not found

baaba ★★ ()
Последнее исправление: baaba (всего исправлений: 1)
Ответ на: комментарий от baaba

qtbase5-dev, qtbase5-dev-tools, точно не скажу, у меня не минт.

С qt4 не соберётся, если код не править. Можешь удалить libqt4-dev

и в MoveNoid.pro допиши в конце CONFIG += c++11

fluorite ★★★★★ ()
Последнее исправление: fluorite (всего исправлений: 1)

Шёл 2017-ый год.

Шестнадцать лет назад авиасиммеры начали пользоваться TrackIR, чтобы, поворачивая голову (а в более новых версиях — и перемещая её), можно было бы менять вид из самолёта и более удобно следить за самолётами противника в ближнем воздушном бою.

4 месяца назад, надев VR-шлем и взяв в руки VR-джойстики, стало возможно запустить VR и ощутить себя бойцом, который держит в руках штурмовую винтовку и стреляет из неё.

Линукс-разработчики клеят картонку и позволяют поиграть в Arkanoid.

Whoo ★★ ()