|
Задающий вопросы (%
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
|
|
Создание игры(2d)12.05.2009, 21:08. Показов 100248. Ответов 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д игры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
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 полиномов. . .
|