|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
Змейка17.10.2010, 06:00. Показов 13028. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Прокомментировать код игры "змейка" в QT
Игра "Змейка": чтобы змейка не съедала сама себя Змейка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|