|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
||||||
Проблема с механизмом рисования12.11.2018, 22:56. Показов 3876. Ответов 32
Метки c++ для начинающих (Все метки)
Недавно я написал программу "Змейка" в которой используется следующий графический механизм
0
|
||||||
| 12.11.2018, 22:56 | |
|
Ответы с готовыми решениями:
32
Работа С Механизмом Удалениеобъекта Как пользоваться механизмом флагов в С++ |
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
|
| 18.11.2018, 11:38 [ТС] | |
|
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
|
| 18.11.2018, 12:02 | |
|
Alexberkut98, помимо удаления кисти нужно ещё освобождать HDC (GetDC ==> ReleaseDC).
У меня 12 студия, в ней нет поддержки 11 стандарта. Что бы скомпилировать пришлось в структуре Sharic убрать инициализацию переменных и добавить обнуляющий их конструктор. Далее программа крашилась при завершении игры в Raiting_Record, так как переменная Head1 содержала мусор. Пришлось добавить в конструктор Zmeia обнуление Head1 и Tail1. Далее змейка не управлялась нажатием клавиш, так как цикл опроса клавиатуры совмещённый с ожиданием времени (начало Napravlenie_hoda) всегда обнулял переменную <c>, решил проблему выносом обнуления из цикла в место объявления переменной <c> и парой строк if (c == 0) c = pred;. Napravlenie_hoda - вызывается рекурсивно, что не очень хорошо, теоретически, можно получить переполнение стека.
0
|
|
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
||||||||||
| 18.11.2018, 12:23 [ТС] | ||||||||||
Благодарен за детальный анализ кода. Однако хотелось бы взглянуть на его исправленную версию, с комментариями в переделанных участках. И опять пояснениями, почему у меня таких ошибок не всплывало.
0
|
||||||||||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
||||||||||||||||
| 18.11.2018, 12:37 | ||||||||||||||||
0
|
||||||||||||||||
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
|
| 18.11.2018, 12:59 [ТС] | |
|
Большое спасибо за ваши предложения. Теперь я бы все же хотел перейти к графическому механизму, что с ним не так?
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
||||||
| 18.11.2018, 13:17 | ||||||
|
Я уже озвучил своё мнение: помимо удаления кисти нужно ещё освобождать HDC (GetDC ==> ReleaseDC)
После добавления ReleaseDC и DeleteObject в три регулярно вызываемых функции рисования (Stiranie, Obhod и Risuem_Sharik) GDI-хендлы перестают расти в процессе движения змейки. Но нужно сделать подобное для всех функций рисования.
0
|
||||||
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
|
| 18.11.2018, 13:50 [ТС] | |
|
Нужен твой совет. Ситуация улучшилась, но появилась другая проблема и для того чтоб полностью ее оценить, нужно послать тебе видео, чей размер превышает максимально допустимые 20 мб. Что мне делать?
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
|
| 18.11.2018, 13:59 | |
|
Возможно будет достаточно пары показательных скриншотов и немного текстового описания.
0
|
|
| 18.11.2018, 14:01 | |
|
0
|
|
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
|
| 18.11.2018, 14:11 [ТС] | |
|
Вплоть до 17-го яблока игра шла хорошо (до этого только где то до 10-го) а потом случилось это. Причем управление слушалось, но эти белые ячейки все появлялись и не исчезали.
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
|
| 18.11.2018, 15:06 | |
Сообщение было отмечено Alexberkut98 как решение
Решение
Не знаю, у меня не появляются
![]() Но, похоже, что глючит генерация нового яблока, когда змейка длинная и яблоко выпадает в хвост змеи происходит какое-то зацикливание. Вот с таким кодом играл (слишком большой, что бы влезть без сжатия).
1
|
|
|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
|||||||||||
| 18.11.2018, 15:50 [ТС] | |||||||||||
|
1. Зачем вы закомментировали условия типа
2. Зачем вы закомментировали
3. Не могли бы вы скинуть мне в личные сообщения вашу почту на gmail, Что бы я там попробовал скинуть вам полное видео игры?
0
|
|||||||||||
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,132
|
|
| 18.11.2018, 16:12 | |
|
Я заблокировал выход за границы, потому что сильно увеличил скорость игры. Мне было лень долго ползать от яблока к яблоку, а что бы игра не прекращалась при ударе о стенку на таких скоростях я временно убрал часть ограничений.
Head->x1 != 1000 это, наверное, можно было и не комментировать, я его принял за что-то другое пока искал нужные строки.
0
|
|
| 18.11.2018, 16:12 | |
|
Reject связанный с механизмом логина Управление исполнительным механизмом, привод Каким механизмом расположить виджеты на форме? Подключение БД к клиентскому приложению с механизмом ADO Что не так со стандартным механизмом событий? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|