|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
Змейка17.10.2010, 06:00. Показов 13619. Ответов 95
Метки нет (Все метки)
wxWidgets - вот и пошло первое написание игры. Ну относительно игры конечно. Проблема вот в чем. Нам препод показал как сделать, чтобы "змейка" двигалась. Поднастроил, чтобы она двигалась правильно. Влево - влево, вниз - вертикально вниз и т.п. Но есть проблемка. При таком коде, что соответственно:
0
|
||||||
| 17.10.2010, 06:00 | |
|
Ответы с готовыми решениями:
95
Змейка не работает Змейка. Нужен совет как доработать программу Змейка на QT C++ |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 20.10.2010, 23:41 [ТС] | |
|
dxdy, На кьюте она легче пишется. Видел код полной игры. Непрофессиональный код конечно, довольно простой.
0
|
|
|
99 / 99 / 14
Регистрация: 14.06.2010
Сообщений: 284
|
||
| 21.10.2010, 00:34 | ||
0
|
||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||||||||||
| 21.10.2010, 01:25 | ||||||||||||||
![]()
Добавлено через 3 минуты
1
|
||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 21.10.2010, 07:48 [ТС] | |
|
rangerx, Кстати... А включение вообще нужно или же нет? Мб friend классом звено для змейки сделать?
0
|
|
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|||||||
| 21.10.2010, 18:12 | |||||||
1
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 22.10.2010, 22:39 [ТС] | |||||||||||
|
rangerx, Ну собственно да. Функции то есть нужные. Буду сегодня писать скорее всего.
Добавлено через 8 часов 46 минут Итак... Вообще что-то не совсем получается. Как должно происходить все - я примерно понял... НО... Как отрисовать отдельный фрагмент? Впринципе отрисовывается... Но... Вообщем, правильный ли алгоритм? На числа не смотреть. Эксперементировал. const wxPoint& old_pt - значение координат до их изменений.
Пришлось использовать так.
Что я сделал за сегодня в итоге... Разбил классы по хедерам. Добавил некоторые новые функции. Но пока вопросы только те которые задал тут. В отрисовке - не могу понять, то-ли дело с числами, то-ли сам алгоритм неверен. Я так понимаю, что мы убираем элемент с хвоста -> закидываем элемент перед головой и так далее. Верно? По-моему код это и должен реализовать... Добавлено через 19 часов 24 минуты Кто подскажет как быть?
0
|
|||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||||||||||
| 23.10.2010, 00:54 | ||||||||||||||
|
Метод DoDraw должен только рисовать, а у тебя он занимается непонятно чем... Все движения и перестановки это поведение самой змейки, а не канвы. Кстати говоря, на мой взгляд возможно лучше не делать никаких DoDraw в классе MyCanvas, а сделать метод draw для классов MySection и MySnake. А их конструкторы пусть принимают указатель на канву на которой будут отрисовываться. MySection::draw() пусть рисует само звено, а MySnake::draw() пусть вызывает MySection::draw() для каждого из своих звеньев. Но делать так или оставить как есть решай сам.
1
|
||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||||||
| 23.10.2010, 00:54 [ТС] | ||||||||||||||||
|
rangerx, DoDraw то вцелом только и рисует... Про методы классов да, пожалуй получше будет.
Но я собственно убираю последний элемент и ресайзаю вектор, после чего рисую с новыми координатами элемент перед головой. Один раз это проходит. Далее змейка так и остается. Т.е. Было.
0
|
||||||||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||||||
| 23.10.2010, 01:21 | ||||||||||
1
|
||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 23.10.2010, 01:25 [ТС] | |||||||||||
|
rangerx, Движение то делается. Но вот это
А разве шаг сам не делается? Мы ведь из таймера вызываем, в котором по сути делается шаг итак...
Никогда бы не подумал, что так дико буду тупить над реализацией змейки...
0
|
|||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|||||||||
| 23.10.2010, 02:35 | |||||||||
1
|
|||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||||||||||||
| 23.10.2010, 02:44 [ТС] | |||||||||||||||||||||
|
rangerx, Не против если не в архиве? По файлам покидаю.
Вся проблема в том, что я запутался в коде + с настолько новой областью довольно трудно разобраться... Спасибо тебе за помощь! Сейчас смысла сидеть всю ночь видимо нет, потому завтра у препода спрошу, чтобы он посмотрел код... Посоветует что-нибудь наверняка. Как посмотришь код - отпишись, что не так, что должно быть по другому. Хорошо? Код
0
|
|||||||||||||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||
| 23.10.2010, 03:49 | ||||||
|
Для начала тебе просто нужно сесть и подумать над поведением объектов. Т.е. продумать сам интерфейс классов. Например змейка
1
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 23.10.2010, 04:10 [ТС] | |
|
rangerx, Спасибо! Код я так понимаю лучше с нуля набить?
ЗЫ Код совсем плох?
0
|
|
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|||||||
| 23.10.2010, 04:25 | |||||||
P.S. К тому, что я написал ещё не мешало бы добавить метод для получения позиции головы змейки чтобы иметь возможность сравнить позицию головы с позицией того, что собственно змейка будет собирать. Что-то вроде
1
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 24.10.2010, 17:10 [ТС] | |
|
rangerx, Препод говорил многое... Но уже ничего не помню, помню, что мне точно надо будет все переписать, ибо я переборщил несколько... Так что собственно вот...
0
|
|
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||
| 24.10.2010, 20:11 | ||
1
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 24.10.2010, 20:32 [ТС] | |
|
rangerx, Блин. Сегодня боюсь не вспомню.
Вообщем буду пробовать переписывать. Начиная с завтра-послезавтра. К субботе надо постараться сделать...)
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 26.10.2010, 02:58 [ТС] | |||||||||||
|
Чорт. Видимо я совершенно не способен к пониманию графики...
Сделал что-то вроде такого... Интерфейс по сути неплохой... Я решил не отрывать голову/хвост у змеи, а просто менять координаты в соотвествии с нужным направлением. Т.е. движение допустим вправо изначально. Нажали вниз, голова сдвинулась вниз, остальные элементы дальше вправо. И т.д. Это ведь должно быть возможно? Не могу только понять как это связать с событием:
0
|
|||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
|||||||||||||
| 26.10.2010, 04:53 | |||||||||||||
@@@ - движемся влево (зелёный это хвост) Тепер нажимаем кнопку "вниз"(происходит два шага): 1) @@ - хвост стал точно на место головы(т.е. по порядку перемещённый элемент стал пeрвым(перед головой), но его координаты пока совпадают с координатами старой головы) Внизу под зелёным старая голова. ) 2) Тепер перемещаем новую голову(зелёную) вниз, и получаем @@ @ и т.д. Ты же, как я понимаю, хочешь сделать сдвиг всех элементов вектора... Сделать это конечно возможно, но только зачем, непонятно. Это самое неэффективное решение(если ещё учесть, что ты используешь вектор), которое только можно придумать. По поводу функции OnKeyboard... Во-первых зачем все эти wxGetKeyState? Во-вторых, почему направление у тебя опять "гуляет" отдельно от змейки(или это просто старый вариант функции)? И наконец зачем так извращаться с тернарным оператором, когда можно использовать switch?
1
|
|||||||||||||
| 26.10.2010, 04:53 | |
|
Прокомментировать код игры "змейка" в QT
Игра "Змейка": чтобы змейка не съедала сама себя Змейка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|