С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.12.2020
Сообщений: 12

Неправильно работающее столкновение

07.02.2021, 11:27. Показов 999. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я хочу сделать маленькую 2D стрелялку на 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
    def wallsDetect(self, walls): #Walls - это массив с объектами стенами
        for a in walls:
            r = a.pos()
            if self.lastPress == "Up":
                if self.y1 < r[3] and self.y2 > r[1] and self.x1 > r[0] and self.x1 < r[2]:
                    c.move(self.player, 0, self.size*self.speed)
                    a = c.coords(self.player)
                    self.x1 = a[0]
                    self.x2 = a[2]
                    self.y1 = a[1]
                    self.y2 = a[3]
                    print("Detect")
            if self.lastPress == "Down":
                if self.y1 < r[3] and self.y2 > r[1] and self.x1 > r[0] and self.x1 < r[2]:
                    c.move(self.player, 0, -self.size*self.speed)
                    a = c.coords(self.player)
                    self.x1 = a[0]
                    self.x2 = a[2]
                    self.y1 = a[1]
                    self.y2 = a[3]
                    print("Detect")
            if self.lastPress == "Right":
                if self.y1 < r[3] and self.y2 > r[1] and self.x2 > r[0] and self.x2 < r[2]:
                    c.move(self.player, -self.size*self.speed, 0)
                    a = c.coords(self.player)
                    self.x1 = a[0]
                    self.x2 = a[2]
                    self.y1 = a[1]
                    self.y2 = a[3]
                    print("Detect")
            if self.lastPress == "Left":
                if self.y1 < r[3] and self.y2 > r[1] and self.x1 > r[0] and self.x1 < r[2]:
                    c.move(self.player, self.size*self.speed, 0)
                    a = c.coords(self.player)
                    self.x1 = a[0]
                    self.x2 = a[2]
                    self.y1 = a[1]
                    self.y2 = a[3]
                    print("Detect")
Класс wall:
Python
1
2
3
4
5
class wall:
    def __init__(self, xPos1, yPos1, xPos2, yPos2, color, outlineq, outlineWidth):
        self.wall = c.create_rectangle(xPos2, yPos2, xPos1, yPos1, fill = color, outline = outlineq, width = outlineWidth)
    def pos(self):
        return (c.coords(self.wall))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2021, 11:27
Ответы с готовыми решениями:

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

Событие работающее с ListView
Здравствуйте! Пытаюсь научиться работать с JavaFX и создавать графический интерфейс для приложений. Столкнулся с такой проблемой: мне нужно...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2021, 11:27
Помогаю со студенческими работами здесь

Приложение, работающее с БД Access
Доброго времени суток, нужна программа учёта ТМЦ. Возможности: Сортировка по наименованию, по характеристикам; добавление, удаление,...

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

Создать приложение работающее с файлом!
Создать приложение,работающее с файлом. Приложение должно выполнять следующие функции: -создавать файл,содержащий не менее 15 записей, ...

Работающее меню при нажатии
Мне нужно что бы меню(class=&quot;Pmenu&quot;) раскрывался не при наводке мышки, а при нажатии и что бы открывшееся меню (class...

Многопользовательское приложение, работающее с одной БД
Добрый день. Имеется microsoft visual c# 2010 и sql server 2008 express. Задача состоит в написании приложения которое будет...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru