Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/516: Рейтинг темы: голосов - 516, средняя оценка - 5.00
Задающий вопросы (%
 Аватар для KTYJIX
16 / 15 / 0
Регистрация: 09.05.2009
Сообщений: 168

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

12.05.2009, 21:08. Показов 100164. Ответов 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
Ответ Создать тему
Новые блоги и статьи
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 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru