|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
||||||
Столкнулся с такой проблемой, что не получается прописать взаимодействие героя с картой...07.11.2018, 16:01. Показов 1804. Ответов 19
Привет всем! Столкнулся с такой проблемой, что не получается прописать взаимодействие героя с картой. К примеру при условии(Проверка на блок стенки слева):
Помогите, пожалуйста! Ссылка на архив на Яндекс-диске(Форум не дал залить архив, хотя в нем 18,4 Мб из разрешенных 20 Мб): https://yadi.sk/d/nX-usEwXje84YA
0
|
||||||
| 07.11.2018, 16:01 | |
|
Ответы с готовыми решениями:
19
Начал изучать JFrame и столкнулся с такой проблемой, не устанавливается на бэк цвет вообще никакой
Столкнулся с проблемой на новом компьютере |
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 07.11.2018, 18:09 | |
|
0
|
|
|
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
|
|
| 07.11.2018, 18:39 | |
|
архив это дело такое..но если рассуждать логически то либо условие исполнения действия невыполняется либо сам алгоритм действия неправельно описан.В твоём условии как я понял проверка на значение матрицы которая соответсвует координатам поля и она должна быть 1 и координаты игрока по у-оси которые не должны быть меньше переменной цикла.Допустим что матрица может иметь 2 значения 1 и 0 где 1-свободно и 0 -непройти и вторая проверка может ли герой сместиться по у-оси вниз..если как ты пишеш зажать клавишу герой всетаки двигается значит все дело в механизме движения а не в условии его выполнения. Больше без закачки твоего архива врятли что можно посоветовать
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 08.11.2018, 09:38 [ТС] | |
|
Так архив на Я-диске лежит. Ссылка ж прилогается
Добавлено через 55 секунд Так проще (/*0*)/
0
|
|
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
||||||||||||||||
| 08.11.2018, 11:57 | ||||||||||||||||
Сообщение было отмечено CyberGlitch как решение
Решение
Рыться в чужом проекте это дело затратное и неблагодарное, и почему вы весь проект выкладываете ? с графикой и прочим. Покажите код вашего определения условий столкновения (коллизия), как вы уровень строите, пару скриншотов вашего проекта не повредит, что бы понимать.
Посмотрел ваш код: где научились строить уровень так ?
я делаю карты уровней вот так : room[z][i] = {1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,0,0,0,0,0,1}, {1,0,0,1,0,0,0,0,0,0,0,0}, {1,0,0,1,1,1,1,1,1,0,0,0}, {1,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1}; room[z][i] = {1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,0,0,0}, {1,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1}; длинна может быть любой, а кусочек кода в 5 строк прекрасно разбирает все по мере посещения комнат. далее ваша коллизия выглядит так
коллизия столкновения с квадратом выглядит немного побольше:
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 08.11.2018, 12:57 [ТС] | |
|
Карту отрисовал, спасибо. Но со столкновением так и не разобрался. Если не сдвинусь до завтра, то обращусь за помощью снова.
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|||||||||||
| 08.11.2018, 15:44 [ТС] | |||||||||||
|
Пробовал сделать проверку на выход за правую границу:
Что делать?
0
|
|||||||||||
| 08.11.2018, 15:59 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 08.11.2018, 16:01 [ТС] | |
|
Это курсач. Ни шагу назад
0
|
|
|
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
|
|
| 08.11.2018, 16:02 | |
|
возможно что checkCollision невидит массива winC.arrPic[i][j] из твоего кода тоже невидно где ты его делаеш..NullPointerException значит ссылка на пустое место памяти..
если так то тут либо winC.arrPic[i][j]=функцияКотораяДелает return winC.arrPic[i][j] либо public void checkCollision(winC.arrPic[i][j])
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 08.11.2018, 16:07 [ТС] | |
|
Я вынес функцию и он её увидел, но проблема со столкновением все ещё актуальна. Как только не пробовал-ничего не выходит
0
|
|
|
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
|
|
| 08.11.2018, 16:34 | |
|
heroX>=j*32 чисто из любопытсва это смещение игрока по х-оси ..если да то это явно больше размера массива 12х16
если цикл дойдет до 15 например j=15 то какие значения может иметь heroX 480 <> 0 чтобы не выполнить условие
0
|
|
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
|||||||||||
| 08.11.2018, 17:48 | |||||||||||
|
для создания условия определения препятствий я руководствуюсь одним своим выдуманным правилом, когда по координатам ваш персонаж перешагнул границу вам нужно 1. напечатать персонажа на границе 2. остановить слушатель клавиши на движение в данном направлении (или зеркально изменить скорость персонажа).
Так же обратите внимание на ваше управление персонажем вас не смущает что при нажатии на клавишу он сначала дернется а потом начнет двигаться ? когда я задаю управление я не вешаю на слушатели клавиш сразу изменение переменной в стиле speed+=3 и так далее. На клавиши я ставлю флажки или булевы переменные под каждую клавишу, а там поток или таймер(кому что ближе) и запускает движение персонажа. У вас в игре присутствует персонаж который должен принимать решение, ваш соперник, это самый трудный участок в вашей игре (я предпочитаю в играх делать рандомных персонажей, либо с неким алгоритмом движения в замкнутом пространстве) но у вам придется научить видеть лабиринт, и здесь вам нужно идти методом создателя игры пакмен, ставить флажки по лабиринту для него Добавлено через 31 минуту простите что пишу не кодом, мои доки не под рукой у меня сейчас. допустим ваш персонаж это квадрат 30х30 пикселей - "player" так же на потребуеться переменные player_x и player_speed, ваше препятствие это квадрат 50х50 пикселей - "box" 1. вам надо определить что попали в его зону "box" отсюда:
далее внутри условия вам надо определить с какой из сторон вы столкнулись и что делать дальше отсюда:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
||||||
| 08.11.2018, 18:36 [ТС] | ||||||
|
Cделал так,:
0
|
||||||
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 09.11.2018, 10:11 [ТС] | |
|
Даже Ютуб не помог :/
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
||||||
| 10.11.2018, 13:20 [ТС] | ||||||
|
Оставил проверку за выход экрана (В setSize(518,414), а по пикселям выходит 505 х 376. Почему так?)
Но с проверкой на блок так и не справился. Если кто-то сможет помочь буду очень благодарен!
0
|
||||||
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
|||||||||||
| 11.11.2018, 00:57 | |||||||||||
|
я же вам написал работающею коллизию на столкновение, я уже 14 лет игры создаю по этой схеме, все идеально работает что не так ? почему вы снова сюда лезете ?
если определять границы экрана то это пустяк
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
|
| 11.11.2018, 08:39 [ТС] | |
|
Я определил границы экрана. Мне нужно сделать взаимодействие персонажа с картой, т.е. чтоб он не проходил сковозь отрисованные стенки.
Выше я давал кусок когда, где пытался сделать взаимодействие персонажа через праверку на 1 в массиве, но она работает не правильно.
0
|
|
|
0 / 0 / 0
Регистрация: 20.11.2017
Сообщений: 38
|
||||||
| 12.11.2018, 13:27 [ТС] | ||||||
|
Прописал вывод, чтоб отследить координаты, но даже это не помогает. В цикле указал всё, что не обходимо, но ему все равно это не нравится. Вообще никто не может помочь что ли?
0
|
||||||
|
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
|
||||||
| 13.11.2018, 00:20 | ||||||
|
Скажите вы вообще понимаете что такое коллизия в двухмерном пространстве?
Решение вашей задачи это не программирование, это чистая математика. На таких вещах диссертации пишут. Для определения условия столкновения вам я уже дал рабочий выверенный годами код, почему вы его игнорируете ? В нем вам надо было всего лишь дописать оставшиеся 3 условия для других сторон квадрата и повесить этот код на ваши квадраты цикле. Этот код ПОЛНОСТЬЮ решает задачу по столкновению для вашей игры. 1. Выверяя координатами вы должны сначала понять с каким из блоков произошло условие столкновения. 2. Определить с какой из 4 сторон произошло столкновение. 3. Принять решение что вам делать дальше, отразить движение или остановиться. ах и чуть не забыл, java прекрасно воспроизводит mp3 Дальше сами... И только не говорите что ничего не работает.
0
|
||||||
| 13.11.2018, 00:20 | |
|
Помогаю со студенческими работами здесь
20
перехожу с mysql на mysqli и столкнулся с проблемой Массивы структур, столкнулся с небольшой проблемой! В IE прозрачный фон заменяется на чёрный Столкнулся с проблемой установки интерпретатора на Linux Debian Совсем недавно столкнулся с проблемой входа на сайт Вконтакте, периодически всплывает ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|