Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168

Создание игры(2d)

12.05.2009, 21:08. Показов 101612. Ответов 423
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно идея такого создать нечто на подобиe ->
http://www.newgrounds.com/portal/view/494301

Буду сюда задвать свои вопросы,думаю всем кто будет увлечён создание игры тоже будет интресно)

Otaka,этот задний буфер замещает собой background плюс курсор оставляет на неём свои артефакты,как его очищать,да так чтоб ещё и background у нас был.

________________________________________ ________________________________________ _________________________
Основные моменты
Вычисление угла поворота персонажа в зависимости от положения курсора мыши
То же
Поворот изображения(тут еще как смещать точку поворота)
Делаем пули
Все еще непонятки с пулями
Начинаем вычисление коллизий
Идея про то, как это должно быть
Как это должно быть реализовано
Как повернуть массив точек(регион)?
А тут код(в нем есть глюк. Потом есть исправленная версия)
Находим столкновение региона и линии. Исправленная версия столкновения регионов
Как это должно выглядеть в принципе?
Начинается долгое обсуждение того как делать редактор уровней
...
...
Первый вариант редактора
Снова эти пули
Функция которая бьет изображения на мелкие куски(тайлы)
Версия редактора
Загрузка сохранение
Еще версия
4
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2009, 21:08
Ответы с готовыми решениями:

Создание игры
Извините за очередную тему подобного рода, но все же не могу не спросить: Мечтаю о создании игры, пусть и очень простой.. Сейчас для меня...

Создание игры
Доброго времени суток! Лабораторная работа - сделать игру. Есть идея. Нужны любые советы, коментарии, пожелания и критика. Спасибо! ...

Создание игры
Люди есть у кого нибудь исходники игры на подобие игр от ALAWAR, что бы разобрать и поучиться на этом примере? Или подскажите где можно...

423
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.06.2009, 10:01
Студворк — интернет-сервис помощи студентам
Для порядка надо обязать автора выставлять все промежуточные стабильные состояния, дабы общественность была в курсе
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
02.07.2009, 23:55  [ТС]
Так,взял небольшой отпуск от компа,вот недавно вернулся

Подкормлю,недоделанным интерфейсом,и парочкой скетчей.

И совместно с рисованием назрел вопросик,как мне со скетчей перевести это мини чудо-юдо в электронный формат,может кто знает?
Миниатюры
Создание игры(2d)   Создание игры(2d)   Создание игры(2d)  

0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
03.07.2009, 00:10  [ТС]
Мне последний очень нравиться
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
03.07.2009, 10:17
В электронный формат можно перевести нарисовав это все заново на компе.
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
03.07.2009, 12:05  [ТС]
Это логично ,я просто не понимаю как это делать,а туториалов в инете чёто не нашёл
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
03.07.2009, 18:57
Лучший ответ Сообщение было отмечено как решение

Решение

А какие именно тебе нужны туториалы. Я могу тебе рассказать в двух словах. Берешь компьютер, открываешь пэинт(или чего-нибудь иное) и рисуешь.
Каждый кадр можно пихать в отдельный файл. Тоесть: например у тебя размер кадра 50*50 и должно быть 10 кадров героя. Создаешь 10 файлов с именами st_00.bmp,st_01.bmp... в них всех должно соблюдаться правило о 50*50 и цвете прозрачности. Что еще непонятно?
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
09.07.2009, 23:37  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void DrawToBitmap(TBitmap*c)  //Это так, для тестирования
        {
        int tx=x-Ox;
        int ty=y-Oy;
        c->MoveTo(p[0].x+tx,p[0].y+ty);
        for(int i=0;i<count;i++)
                {
                c->LineTo(p[i].x+tx,p[i].y+ty);
                }
        c->LineTo(p[0].x+tx,p[0].y+ty);
        c->Brush->Color=clRed;
        c->Ellipse(x-2,y-2,x+2,y+2);
        }
Что сдесь надо поменять чтоб,вращающийся регион можно было не только на Сanvas выводить ,но и на Bitmap,тобишь на BG.
0
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
09.07.2009, 23:44
кстати можеш занова не рисовать а тупо обрезать эти изображения
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.07.2009, 16:26
А не нужно создавать новыю функцию. У тебя ведь есть DrawTo(TCanvas*c).
Просто при вызове делай так:
C++
1
region.DrawTo(BG->Canvas);
Функция ведь рисует на канвас, а у каждой картинки есть свой канвас.

Добавлено через 1 минуту 46 секунд
А зачем тебе выводить регион? Эту функцию я написал просто для того, чтобы тебе показать работоспособность кода.
1
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
10.07.2009, 17:32  [ТС]
Если посмотришь,флешку в шапке,там выстрел пройзводиться просто линией из ствола,этой линией и будет CRegion заодно я буду проверять столкновение.
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.07.2009, 18:45
Мне кажется, что лучше написать функцию HitRegionAndLine, а линию рисовать просто линией(а можно вообще её не рисовать), хотя...
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
10.07.2009, 19:04  [ТС]
А как региону цвет придавать и ширину,через Brush?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.07.2009, 19:12
насколько я знаю, регион просто так не рисуется. Ты его должен сначала преобразовать в массив TPoint и методом FippPolygon закрасить его текущим brush.
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
10.07.2009, 19:32  [ТС]
Ясен,тоды не будем его выводить,вывидем просто Битмап.

Смотри такая задача -> как мне поместить точку вращения в ствол.(Единственное что получилось это чтоб пуля ровно вылетала из ствола как на первом скрине.)
Миниатюры
Создание игры(2d)   Создание игры(2d)  
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.07.2009, 22:00
Чет я непонял вопроса. Ты хочешь, чтобы человек крутился вокруг точки на ружье?
Неужели танки в нашем мире умеют поворачиваться вокруг конца своего дула?
Я думаю, что первый скрин отличный.
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
10.07.2009, 22:06  [ТС]
Пасяп но мне нужно чтоб регион вращался вокруг ствола,я есчо разброс хочу сделать.
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.07.2009, 22:13
Мда? Ну ладно.
Повернуть регион вокруг той точки очень просто. нужно в CRegion выставить правильные Ox и Oy. А также При отрисовке перса в SetViewportOrg(или как там его), выставить те же(не совсем те - с минусом) правильные координаты.
Я все таки не пойму, зачем так нереально крутить?
Да, пушка сбоку. Но ведь можно и курсор сместить вбок, и относительно него срелять?
А что такое разброс?
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
10.07.2009, 22:17  [ТС]
Разброс выстрела,у него же точно не 100%

Вот в этом и сама проблема я никак не пойму как сделать так чтоб OriginPoint следил за стволом а направление выстрела за мышкой.

C++
1
2
3
4
5
6
7
8
9
FPoint * Bullet = new FPoint[2];
Bullet[0] = FPoint(0,0);
Bullet[1] = FPoint(200,200);
Bul.p = Bullet;
Bul.count=2;
Bul.SetOriginPoint(Svalker->Width+152,Svalker->Height+200);//Выбираем центр квадрата(100*100)
Bul.x=SvPosX;
Bul.y=SvPosY;
Bul.Rotate(SvAng+130);
Это код того что ты видишь на первом скрине,но с ним разброса не получаеться.
Тоесть чтоб было так.
Миниатюры
Создание игры(2d)   Создание игры(2d)   Создание игры(2d)  

0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
11.07.2009, 20:52
Тебе нужно просто правильно выбрать SetOriginPoint и bul.x..y.
Разброс- это отклонение пули от той прямой, какой целится персонаж?
А откуда тут Bul.Rotate(SvAng+130); появилось 130?
Если уж делаем разброс, то там случайное число приплюсовуем:
C++
1
2
3
4
5
6
//где-нибудь у нас переменная разброса.
int Razbos=2;// +- 5 градусов
 
//.........
 
Bul.Rotate(SvAng+130+(random(Razbros*2)-Razbros));
0
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168
11.07.2009, 23:58  [ТС]
Так отлично,разбросс теперь работает нормально,теперь как бы сам выстрел реализовать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2009, 23:58
Помогаю со студенческими работами здесь

Создание игры
Здравствуйте форумчане, мой вопрос состоит в том. Я молодой парень, который знает языки C++, C# и т.д. Ести небольшой интерес к созданию...

Создание игры
Добрый вечер. Начал работу над собственным проектом, и задался вопросом. (gamedev и прочие сайты перечитывал, но так ответа и не нашел....

Создание игры
Посмотрел как сейчас на коленке люди клепают инди игры под андроид\иос e.t.c. Созрел вопрос - куда двинуть, что использовать чтобы написать...

Создание игры на C++
Скажите , а можно ли создавать игры на С++? Если да , то буду рад увидеть примеры как это все реализовать и где можно. Возможно это С++...

Создание 3д игры
Извиняюсь, если такая тема уже была, не нашел. Хочу написать свою игрушку. Игрушка по типу что то gta sa. Но со своим смыслом и тп. Я готов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Опции темы

Новые блоги и статьи
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru