С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.12.2018
Сообщений: 5
1

Сделать программу для навигация в игре

09.12.2018, 19:06. Показов 1669. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день,
Играю в MMO RPG ArcheAge.

Скриншот из игры:
Кликните здесь для просмотра всего текста
Сделать программу для навигация в игре


Хотел бы сделать небольшую программу (AAHalper), которая мне поможет в перевозке паков (крафтовый ресурс).
Программа не должна вмешиваться в процесс самой игры (decompiling, decrypting, engineering data analysis...), необходимо использовать только Computer Vision, например, OpenCV и Python.
Пример как может веглядить программа:
Кликните здесь для просмотра всего текста
Сделать программу для навигация в игре


• Synchronize - синхронизизация игры и AAhelper, то есть выбор локации (map) и местоположения игрока на карте;
• Record – сохранение траектории в виде последовательности точек (координаты) или линии траектории (не знаю что лучше);
• Save - сохранение траектории в виде точки или кривой (не знаю что лучше);
• Open - открытие сохраненной ранее траектории и последовательности точек;
• Play - переход к начальной точке, а затем движение по заданной траектории;
• Config - изменение точности, интервала между точками и изменение параметров следования траектории (PID регулятор)

Следование по траектории осуществляется нажатием и удержанием клавиш на клавиатуре или на панели Numlock.

Вот пример перевозки через 3 локации, по времени занимает примерно 15 мин,
видно, что в каждой локации своя карта

Кликните здесь для просмотра всего текста
Сделать программу для навигация в игре

Кликните здесь для просмотра всего текста
Сделать программу для навигация в игре

Кликните здесь для просмотра всего текста
Нажмите на изображение для увеличения
Название: ScreenShot0011.jpg
Просмотров: 10
Размер:	252.4 Кб
ID:	991082


Иконка игрока на мини карте:
Название: player_cursor.png
Просмотров: 56

Размер: 3.1 Кб

Направление:
Название: player_cursor1.png
Просмотров: 55

Размер: 1.4 Кб

Вопросы:
Как лучше и легче всего это можно сделать?
Есть ли похожие проекты на облаке?
Какие алгоритмы можно использовать?

Заранее благодарю за ответы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2018, 19:06
Ответы с готовыми решениями:

Навигация в пошаговой игре
Создаю пошаговую игру. Минимальная единица времени – тик. Персонаж может передвинуться на соседнюю...

требуется программу для мс в игре cs 1.6
требуется написать программу или скрипт для игрового мониторинга по привлечению уников на...

Нужно сделать мониторинг по игре для сайта!
http://mmorpg-online.ucoz.ua Вот есть сайт.хочу сделать мониторинг,и не просто что-бы вставить...

Как сделать кликабельным куб в игре для Android
Есть кубик, а точнее, его 2d версия - квадратик. Нужно, чтобы при нажатии квадрат менял цвет или...

2
26 / 24 / 1
Регистрация: 29.06.2018
Сообщений: 199
11.12.2018, 19:14 2
Gin Freecss, всё всегда реализуемо, но подход с комп зрением, больше подходит для 2д игр...
0
0 / 0 / 0
Регистрация: 09.12.2018
Сообщений: 5
20.12.2018, 20:57  [ТС] 3
Добрый вечер,
пытался выделить иконку игрока на карте, помощью Python, OpenCV.
Параметры HSV и результаты показаны на картинках

Код на Python
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 20 18:49:54 2018
 
@author: gin
"""
 
import cv2
import numpy as np
import time
from PIL import ImageGrab
 
if __name__ == '__main__':
    def nothing(*arg):
        pass
 
cv2.namedWindow( "result" ) # создаем главное окно
cv2.namedWindow( "settings" ) # создаем окно настроек
 
 
last_time = time.time()
 
# создаем 6 бегунков для настройки начального и конечного цвета фильтра
cv2.createTrackbar('h1', 'settings', 0, 255, nothing)
cv2.createTrackbar('s1', 'settings', 0, 255, nothing)
cv2.createTrackbar('v1', 'settings', 0, 255, nothing)
cv2.createTrackbar('h2', 'settings', 255, 255, nothing)
cv2.createTrackbar('s2', 'settings', 255, 255, nothing)
cv2.createTrackbar('v2', 'settings', 255, 255, nothing)
crange = [0,0,0, 0,0,0]
 
while True:
    print('loop delay {} seconds'.format(time.time()-last_time))
    
    img =  np.array(ImageGrab.grab(bbox=(1165,0,1920,565)))
 
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV )
 
    # считываем значения бегунков
    h1 = cv2.getTrackbarPos('h1', 'settings')
    s1 = cv2.getTrackbarPos('s1', 'settings')
    v1 = cv2.getTrackbarPos('v1', 'settings')
    h2 = cv2.getTrackbarPos('h2', 'settings')
    s2 = cv2.getTrackbarPos('s2', 'settings')
    v2 = cv2.getTrackbarPos('v2', 'settings')
 
    # формируем начальный и конечный цвет фильтра
    h_min = np.array((h1, s1, v1), np.uint8)
    h_max = np.array((h2, s2, v2), np.uint8)
 
    # накладываем фильтр на кадр в модели HSV
    thresh = cv2.inRange(hsv, h_min, h_max)
 
    cv2.imshow('result', thresh) 
 
    
    last_time = time.time()
    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break


параметры HSV и результат показанный на изображении
Для теста картинка захватывались с видео на youtube Видео.

Тест1
Сделать программу для навигация в игре


Тест2
Сделать программу для навигация в игре


Проблема в том, что по ходу движения меняется ландшафт и значит значение цвета на карте,
из-за этого усложняется распознание иконки игрока.
Подскажите пожалуйста как можно нивелировать влияние ландшафта за картой на распознание иконки?
Спасибо.
0
20.12.2018, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2018, 20:57
Помогаю со студенческими работами здесь

Исправить программу и задать условие для противника в игре 21 очко
Как задать условие для противника и как по нажатию кнопки "Новая игра" начать все заново? Вот...

Составить программу для определения победителя в игре (через функцию)
Составить программу для определения победителя в игре: два школьника загадывают по одному натур....

Как сделать управления в моей мобильной игре таким же как в игре hop
Как сделать язиком программирования c#

Хочу сделать навигация
Помогите сделать навигацию. Для этого я сделал <div class="block" чтоб было удобней разместить...

навигация для слайдера
Здравствуйте, знатоки. Подскажите, как создать вот такую навигацию

Навигация для слепых
Начал верстать сайт для людей с ограниченными возможностями. Как сделать что бы навигация сайта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru