|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
Создание игры(2d)12.05.2009, 21:08. Показов 103648. Ответов 423
Метки нет (Все метки)
Собственно идея такого создать нечто на подобиe ->
http://www.newgrounds.com/portal/view/494301 Буду сюда задвать свои вопросы,думаю всем кто будет увлечён создание игры тоже будет интресно) Otaka,этот задний буфер замещает собой background плюс курсор оставляет на неём свои артефакты,как его очищать,да так чтоб ещё и background у нас был. ________________________________________ ________________________________________ _________________________ Основные моменты Вычисление угла поворота персонажа в зависимости от положения курсора мыши То же Поворот изображения(тут еще как смещать точку поворота) Делаем пули Все еще непонятки с пулями Начинаем вычисление коллизий Идея про то, как это должно быть Как это должно быть реализовано Как повернуть массив точек(регион)? А тут код(в нем есть глюк. Потом есть исправленная версия) Находим столкновение региона и линии. Исправленная версия столкновения регионов Как это должно выглядеть в принципе? Начинается долгое обсуждение того как делать редактор уровней ... ... Первый вариант редактора Снова эти пули Функция которая бьет изображения на мелкие куски(тайлы) Версия редактора Загрузка сохранение Еще версия
4
|
|
| 12.05.2009, 21:08 | |
|
Ответы с готовыми решениями:
423
Создание игры Создание игры Создание игры |
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
| 04.08.2009, 12:09 | |
|
Так ведь поворот с помощью стандартных преобразований системы координат виндовса. Вот только если ты заметил, то только один вызов RotateDC не поможет, так как поворачивается еще и исходная точка нашего рисования. Чтобы такого не происходило нужно выполнять перед рисованием объекта функцию SetViewOrgExt, и сместить координаты 0,0 на точку от которой будет рисоваться фигура. После того как мы это сделали мы можем рисовать объект(картинку) на координату 0,0. 0,0, так как 0,0 не изменяется после поворота системы координат. После рисования данного объекта стоит вернуть систему координат в исходное положение. При рисовании следующего объекта нужно все это повторить.
Собственно все.
0
|
|
|
|
||||||
| 06.08.2009, 19:50 | ||||||
Добавлено через 10 минут 47 секунд а ещё почемупри поворачивании объекта на угол он движется по окружности а не стоит на месте и поворачивается и как этого избежать?
0
|
||||||
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||
| 06.08.2009, 22:21 | ||
|
Я же говорю, что при поворотах используются апи функция. Эта функция использует структуру XFORM для указания того, как именно выполнять преобразования. Почему именно там и там всякие там синусы и косинусы я не знаю, но в МСДН написано использовать именно так. Я даже тебе ссылочку дам:http://msdn.microsoft.com/en-u... S.85).aspx
При разных параметрах можно получать поворот, масштабирование, сдвиг, смещение. Очень полезная функция, но, правда, замедляет вывод на экран. Почему объект движется по окружности? Повторю еще раз:
0
|
||
|
|
||||||
| 07.08.2009, 11:07 | ||||||
|
спасибо, понял, всё работает)
Добавлено через 10 часов 20 минут 28 секунд Otaka а как заставить объект перемещаться по прямой, т.е как заставить пулю лететь в нужную сторону? я знаю что через таймер, просто угол нам известен, сама картинка пули поворачивается в нужную сторону но я что то не пойму как описать её движение, не подскажешь? И сразу как сделать так чтобы могло прорисовыватся столько пуль сколько нам нужно, и возможно ли это ведь для каждой пули надо описать такую конструкцию
0
|
||||||
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|||||||||||
| 07.08.2009, 11:19 | |||||||||||
|
KTYJIX, вроде, как с этим разобрался. Объяснить еще раз?
У нас есть структура
Не забудь, что функции синуса и косинуса работают с углами в радианах.
0
|
|||||||||||
|
|
|||||||||||
| 07.08.2009, 14:03 | |||||||||||
|
спс, кажется понял, сейчас попробую сделать
Добавлено через 1 час 37 минут 54 секунды извиняюсь за надоедливость и за тупые вопросы но я знаю ооп в общих чертах поэтому прошу объяснить как создать массив из объектов класса Bullet
ну или динамический массив
0
|
|||||||||||
|
|
|
| 07.08.2009, 14:04 | |
|
"Bullet b[300];"
Если это в глобальной части - то время жизни массива - вся программа. Если внутри процедуры или лексического блока - соотвественно время жизни ограничивается парой фигурных скобок. Если тебе на каждого персонажа нужно выделять, а затем удалять массив - "Bullet *b = new Bullet[300];"
0
|
|
|
инженер-системотехник
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
|
||||||
| 07.08.2009, 14:17 | ||||||
|
Нужно в цикле присваивать... Кроме того, конструктор без параметров так не вызывается. Нужно как-то так:
0
|
||||||
|
|
|||||||||||
| 07.08.2009, 14:29 | |||||||||||
Haster, в твоём способе имеется 300 указателей, а потом 300 раз выделяется объект. В моём способе имеется 1 указатель, а память под 300 объектов выделяется за раз. При этом, действительно, нельзя вызвать конструктор с параметрами, но для данной задачи, подозреваю, это неактуально, ибо сначала нужно иметь 300 пуль, а потом рассчитывать им координаты или что-то ещё
0
|
|||||||||||
|
инженер-системотехник
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
|
|
| 07.08.2009, 14:54 | |
|
Evg, согласен, твой способ лаконичней ))
0
|
|
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
| 14.08.2009, 16:09 [ТС] | |
|
Otaka,как ты сделал чтоб у тебя второе окно вместе с первым открывалось?
Form2->Show() - у мну не работает почему то (
0
|
|
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
| 14.08.2009, 16:28 | |
|
Так ты в редакторе свойств второй формы поставь Visible=true, и все.
Добавлено через 1 минуту 23 секунды Form2->Show() ты наверно вызываешь в OnCreate формы1, а это событие происходит до создания формы2, поэтому и не получается.
1
|
|
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
| 14.08.2009, 17:32 [ТС] | |
|
Слушай,а как у тебя работает механизм нажатия на выбранный таил,просто я код перекопировал с компонентами на свою форму,а клеточки пустые,и когда щёлкаю на них ничего не происходит (:
0
|
|
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
| 14.08.2009, 19:33 | |
|
Ты имеешь ввиду на форме2(библиотека тайлов)?
Если да, то обрати внимание, что у стринггрида определено событие onClick(там оно называется sgTileClick()) и OnDrawCell(sgTileDrawCell).
0
|
|
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
| 14.08.2009, 21:15 [ТС] | |
|
Ок,начал делать переходы.
Otaka,чего то я подзабыл,как мне узнать число тайла. Тобишь,что в нём находиться 1(песок) 2(трава) или ещё что то,чтоб он мне цифру выдал. То есть,как работать с массивом где матричные числа хранятся.
0
|
|
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||||||
| 14.08.2009, 22:07 | ||||||
|
Ну, так как у нас информация о тайлах хранится в линейном массиве, то нужно сделать функции:
1
|
||||||
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
| 15.08.2009, 18:56 [ТС] | |
|
У меня есть что то типа,вот этой картинки,как мне выводить его кусочками на экран.
0
|
|
| 15.08.2009, 18:56 | |
|
Создание игры
Создание игры Создание игры на C++ Создание 3д игры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|