5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
||||||
1 | ||||||
Игра23.08.2013, 00:24. Показов 1485. Ответов 10
Метки нет Все метки)
(
Есть вопрос, но не знаю даже как правильно спросить.
Написал логику игры "Змейка". Теперь переношу на WinApi (писал на консоль). Вроде всё пашет, но хочется "причесать код". Вопрос. Подскажите пожалуйста как правильно реализовать работу логики и отрисовки. Т.е. хочется чтобы в WM_PAINT происходила только отрисовка, а логика - в другом месте. Просто у меня пунктик такой. Вот код: Кликните здесь для просмотра всего текста
Работа далеко не гениальная, улучшать и улучшать, про двойную буферизацию не говорите, сейчас этим и занимаюсь ![]() Спасибо! M VS 2013 Preview Добавлено через 15 минут Жду ваших советов ![]()
0
|
23.08.2013, 00:24 | |
Ответы с готовыми решениями:
10
Игра слов, игра Scrabble Игра |
23.08.2013, 00:44 | 2 |
0
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
|
23.08.2013, 01:24 [ТС] | 3 |
Dani, а что нибудь касательно разделения логики и отрисовки можете подсказать?
Либо статью какую-нибудь посоветовать. Добавлено через 34 минуты Может кто подсказать как называется книга? Там было что-то типа: Можете попрощаться со своими друзьями на 2 года, но зато сколько интересных фильмов вы сможете посмотреть. Это книга как раз по разработке игр
0
|
![]() 150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
23.08.2013, 02:19 | 4 |
Если разрабатывать игры, то тогда уже лучше Opengl или DirectX
0
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
|
23.08.2013, 02:20 [ТС] | 5 |
Bend3r, а можете что-то по поводу поста выше подсказать? (мой)
0
|
![]() 150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
23.08.2013, 02:22 | 6 |
Зайдите в гугл, и вбейте в поиск - "Разработка игр, посоветуйте библиотеки". Изучайте их, и пишите все что угодно. Так же можете сказать бесплатные игровые движки.
0
|
![]() |
|
23.08.2013, 04:22 | 7 |
что сказать? Игра работает? Значит норм.
А вообще как-то многовато всего для змейки: какие-то бессмысленные классы, например. А что сразу десяток паттернов туда не вставлено? "Расширяемость, ё..!" Автор, наверное хотел советы конкретно по коду, а не общие слова. Добавлено через 3 минуты про звёздочки верно заметили! Раз уж приспичило выделять двумерный массив вручную, почему же не достаточно Element** map;???
0
|
![]() 840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
23.08.2013, 10:33 | 8 |
Kuzia domovenok, совет на будущее, старайтесь писать в одном стиле. Ну если пишите через указатели, то пишите через указатели, если используете STL, то старайтесь их придерживаться ( разумеется все в рамках разумного), разбираться в коде будет легче.
Почитайте про MVC, поможет разделить логику, отображение, и при переходе с консоли на WinApi, или там на что-то другое. По сути у вас должно получится, что просто переписываете отображение.
1
|
![]() 576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
|
|
23.08.2013, 12:03 | 9 |
PakistanCode,
* разделение классов на h и cpp файлы * один h файл - один класс * инкапсуляция - где она?) * для перечислений в с++ есть такая штука как enum * наличие динамик кастов говорит, что архитектура не до конца продумана. В идеале, их быть не должно * вижу по коду выделение памяти через new. delete-ы есть? утечек памяти не боитесь? желательно, прикрыть все new умными указателями или стандартными контейнерами
1
|
5 / 5 / 5
Регистрация: 05.02.2013
Сообщений: 197
|
|
23.08.2013, 12:33 [ТС] | 10 |
I.M., спасибо за советы, исправляю
![]() Есть вопрос по поводу динамик каста. Я хотел бы организовать работу следующим образом: Матрица указателей на класс наследник от базового класса. Я не разобрался с тем, как мне грамотно это сделать. Т.е. допустим если голова змейки находиться на звёздочке то: Грубо говоря удалить звёздочку и создать новое "пустое место". Звёздочка и пустое место - разные классы. Ну либо подскажите пожалуйста другой подход ![]() ![]()
0
|
![]() |
|
23.08.2013, 12:38 | 11 |
Зачем пустое место создавать?
Если голова в одной клетке с яблоком (звездочкой), отрисовываешь яблоко с новыми координатами, увеличиваешь змейку.
0
|
23.08.2013, 12:38 | |
Помогаю со студенческими работами здесь
11
игра (с++) Игра Игра на c++ C++ игра в 21 Игра на С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Winforstrap или красявый дизайн своими руками на HTML+JS+Winforms
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом.
Бывает нужен современный дизайн программы а писать на MAUI,. . .
|
Формат данных для симуляции физики, посредством распространённых не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
|
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
|
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
|
Создание производительных API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
|
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
|
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
|
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
|
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
|
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
|