|
2 / 1 / 1
Регистрация: 02.07.2018
Сообщений: 49
|
||||||
Проблема с механизмом рисования12.11.2018, 22:56. Показов 3828. Ответов 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,128
|
|
| 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,128
|
||||||||||||||||
| 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,128
|
||||||
| 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,128
|
|
| 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,128
|
|
| 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,128
|
|
| 18.11.2018, 16:12 | |
|
Я заблокировал выход за границы, потому что сильно увеличил скорость игры. Мне было лень долго ползать от яблока к яблоку, а что бы игра не прекращалась при ударе о стенку на таких скоростях я временно убрал часть ограничений.
Head->x1 != 1000 это, наверное, можно было и не комментировать, я его принял за что-то другое пока искал нужные строки.
0
|
|
| 18.11.2018, 16:12 | |
|
Reject связанный с механизмом логина Управление исполнительным механизмом, привод Каким механизмом расположить виджеты на форме? Подключение БД к клиентскому приложению с механизмом ADO Что не так со стандартным механизмом событий? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|