|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
Создание игры(2d)12.05.2009, 21:08. Показов 103587. Ответов 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
|
|
| 01.02.2010, 21:08 | |
|
Ради каждой пули создавать TImage, это слишком накладно будет. При перемещении одного компонента по поверхности другого, будет посылаться туча всевозможнейших сообщений о перерисовке компонентов которые находятся ниже, а если у тебя там множество объектов, то это ой как плохо будет, конечно на наших быстрых компах это не сильно заметно, но ты попробуй подними количество объектов до тысячи(так теста ради), и посмотри что будет.
Нужно один раз грузить картинку пули, а потом просто её рисовать столько раз сколько нужно. Никаких сообщений, дополнительных обработок проводится не будет. Так делаются все спрайтовые игры.
0
|
|
|
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
|
||
| 02.02.2010, 00:19 | ||
|
А через что это делается ? (Draw?) Просто я почитал тут ... и мне показалось что у вас тут выстрелы это линии (по скринам судил) . Хочется все таки чтобы патрон эффектно смотрелся
0
|
||
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||
| 02.02.2010, 14:40 | ||
|
А рисуется оно просто через Canvas->Draw()(это если ты через GDI делаешь а не через DirectDraw) на заднем буфере.
0
|
||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|||||||||||
| 14.02.2010, 22:04 | |||||||||||
|
Otaka, помоги мне... Допустим мы имеем
0
|
|||||||||||
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
| 14.02.2010, 22:09 | |
|
А ты сначала вычисляешь угол от точки x1,y1 до x2,y2(можно посмотреть FPoint в файле myclasses.cpp), а потом уже можно полярными координатами дорисовать необходимый кусок.
1
|
|
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 14.02.2010, 22:14 | |
|
Otaka, можешь пожалуйста написать код
Я просто плохо знаю твой "MyClasses.cpp" и функцию FPoint
0
|
|
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
||||||
| 14.02.2010, 22:23 | ||||||
|
Вот:
1
|
||||||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 14.02.2010, 22:28 | |
|
Благодарствую
0
|
|
|
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
|
||||||||||||||||
| 14.02.2010, 23:06 | ||||||||||||||||
|
В данном случае удобно было бы работать с векторами.
например
Добавлено через 16 минут Я извиняюсь, случайно удалил вторую точку.
Вообще, для перемещения в 2д или в 3д Вам я бы сказал, что Вам просто необходимо использовать вектора. Потому, что имея 2 точки, очень легко получить направление. Отняли от второй точки первую и у вас уже есть нужный Вам вектор. И отправить "объект" из этих двух точек в данном направлении, просто. умножили вектор на скаляр (на число). и прибавили его к вашей текущей точке, которая должна быть перемещена. Слегкостью можно получить угол вектора(направления) функцией double arg(Complex) Единственное, что Вам нужно сделать для работы с векторами, это нормализовывать их. Так как вектор может иметь разную длинну, и если Вы его будете умножать на число, например, для перемещения объекта, то ваш объект будет передвигаться очень быстро(если вектор имеет очень большую длинну), или наоборот, очень меделло(если длина вектора мала). Нормализовать вектор - значит свести его длину к единице.
1
|
||||||||||||||||
|
13 / 3 / 0
Регистрация: 07.11.2009
Сообщений: 12
|
|
| 15.02.2010, 11:56 | |
|
Всем привет! Я тоже делаю 2D игрушку, искал разный материал и случайно наткнулся на эту тему. К этому времени уже разработал редактор карт, и часть движка игры. Выкладываю для примера свою версию редактора, если увидите что-то полезное могу выкинуть исходник.
P.S. Делается все от нефиг делать, и чтобы не отупеть т.к. сейчас несу службу в нашей доблестной армии
1
|
|
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
||||||
| 15.02.2010, 16:04 | ||||||
|
13__Apostol, хороший редактор
Потом кинешь исходники(если можно) ![]() Добавлено через 1 час 44 минуты Otaka, есть вопрос, как реализовать передвижение от точки к точке? Т.Е. Допустим мы имеем:
0
|
||||||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
||||||
| 15.02.2010, 16:25 | ||||||
|
Да кстати, кому интересно, вот игра(точнее то что есть
)Даю краткое описание функций в классе Actor:
1
|
||||||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 15.02.2010, 16:29 | |
|
Неправильный пост
ПРЕДУПРЕЖДАЮ ВСЕХ, У КОГО СЛАБЕНЬКИЕ КОМПЫ!!! У МЕНЯ ПОЧЕМУ-ТО НЕ РАБОТАЕТ УДАЛЕНИЕ ПУЛЬ!!! ПОЭТОМУ ПАМЯТЬ НЕ ОСВОБОЖДАЕТСЯ!!!
Предупреждаю всех, у кого слабенький комп!!! У меня почему-то не работает удаление пуль!!! Поэтому память не освобождается!!!
0
|
|
|
13 / 3 / 0
Регистрация: 07.11.2009
Сообщений: 12
|
|||||||
| 15.02.2010, 18:25 | |||||||
P.S. И исходник редактора лови
2
|
|||||||
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|||||||||||
| 16.02.2010, 11:30 [ТС] | |||||||||||
|
Всем день добрый! (%
Я вернулся к вам с вопросиком относительно Луа. Задача, через луа код создаётся временный текст(функция Message), после того как этот текст пропадает, должен запускаться скрипт с музыкой. Как это должно реализовываться? Класс временного текста TText:
Message(300,300,150,"Message script work, and here comes the music") if a == 1 then dofile("Sound.lua") end Я понимаю, что это должно реализоваться через lua.PushNumber(), но куда его надо вставить, чтоб скрипт загружался после того как временный текст пропадёт? Спасибо. P.s - Рад, что тема жива (%
0
|
|||||||||||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|||||||
| 16.02.2010, 18:36 | |||||||
|
Я не очень понял, что ты хотел, KTYJIX, но вот тебе пример с возвращением параметров
Если в функции - int Lua_Return(lua_State*st) - поставить допустим lua.Push(2), то результат выполнения луа будет другим
0
|
|||||||
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 16.02.2010, 19:45 | |
|
Итак, сделал, чтоб нпс ходил по координатам
1
|
|
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 16.02.2010, 20:48 | |
|
Сначала чертим путь , потом нажимаем на Enter и смотрим
![]() Добавлено через 1 час 2 минуты Как проверить столкновение пули и нпс'ников?
0
|
|
|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
| 16.02.2010, 20:52 [ТС] | |
|
1
|
|
|
18 / 18 / 1
Регистрация: 24.09.2009
Сообщений: 98
|
|
| 16.02.2010, 20:56 | |
|
Спасибо конечно, KTYJIX, но я не знаю как этим пользоваться
А ещё у меня структура игры отличается от вашего варианта. Так-что жду новых предложений ![]() Добавлено через 26 секунд Если надо, код игры могу кинуть
0
|
|
| 16.02.2010, 20:56 | |
|
Создание игры
Создание игры Создание игры на C++ Создание 3д игры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|