|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
Создание игры(2d)12.05.2009, 21:08. Показов 100691. Ответов 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 | |
|
Помогаю со студенческими работами здесь
360
Создание игры
Создание игры Создание игры на C++ Создание 3д игры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|