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

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

12.05.2009, 21:08. Показов 100218. Ответов 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
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
23.05.2010, 15:07
Студворк — интернет-сервис помощи студентам
Подскажите где взять исходник программы?
Времени нет чтобы ее написать
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.05.2010, 15:43
Исходник какой программы?
0
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
23.05.2010, 16:03
Программы "танчики" подобие программы написанную на денди
0
4 / 4 / 1
Регистрация: 15.04.2010
Сообщений: 134
23.05.2010, 21:49
Ребята уже не надо я розобрался, у меня еще один вопрос я пишу игру это и хочу узнать как реализовать случайний вопрос при загрузки игры!!!! Кто знает подскажите пожайлусто
0
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
26.07.2010, 08:40
Здрасте коллеги, тоже двудэшку создаю, вы уже реализовали поворот объекта? Только не картинки, а именно объекта, у меня как бы игрушка пашет вот тока поворот блин все тормозит!

Добавлено через 1 минуту
LedeN - у меня как раз типа танчиков, но сыроватая, подойдет?
0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
30.08.2010, 15:58
KTYJIX, Хай...

Слушай, не пойму. А где у тебя в игре очищяется окно от старых картинок.
Я по аналогии твоего кода написал прогу. И у меня отрисовывается каждое положение персонажа и курсора поверх предыдущих.

Как ты очищяешь ?

Добавлено через 16 часов 40 минут
Цитата Сообщение от Deimon Посмотреть сообщение
Я по аналогии твоего кода написал прогу. И у меня отрисовывается каждое положение персонажа и курсора поверх предыдущих.

Как ты очищяешь ?

Разобрался. Просто я рисовал без заднего плана. И следовательно у меня не перекрывалось ничего задним планом)

(!) Кстати... у меня через таймер все подлагивало (отрисовывалось 24-26 кадров в секунду, но на взгляд не больше 15). Врубил через поток все просто летает, но измерить пока не удалось.

А не кто не пробывал делать уровни при помощи ini файлов ?
(Хотелось бы взглянуть на алгоритм)

Может кто подсказать, как сделать так, чтобы игра была 2D но не просто вид сверху, а под углом. Может если создать Gif файл персонажа со всех сторон, а в зависимости от угла поворота грузить тот или иной кадр?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
30.08.2010, 16:05
Deimon, под углом, другим словом изометрией. Знаю по личному опыту, что это нелегко. Просто отрисовывать обьект под углом с разных сторон - самое простое в этой затее. Нужно также учитывать то, что обьекты стоящие ближе к центру покрывают обьекты, стоящие за ними, что делать с удалением таких обьектов (просто закрасить их не получится, потому как за ними, перед ними могут стоять другие обьекты) и прочее...

Добавлено через 3 минуты
А вот что мне удалось сделать при помощи TImage в свое время: https://www.cyberforum.ru/cpp-... post713553
0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
30.08.2010, 16:44
Папа Карло, Ну я тут прикинул, - рисовать по секторам.


Тоесть начинать с самого дальнего сектора..и продолжать рисовать поверх до самого ближнего. А потом выводить на экран.

Оценил твоё творение , жаль что такие люди как ты не выкладывают исходники. Хорошо бы, если бы выкладывали какие-нибудь куски, оригинального решения, с коментариями и блок схемой. Чтобы не тратить много времени на чтение и понимание огромного текста. А то мне это еще сложно дается.

Не по теме:

Может кто свои библиотеки создаст с документацией))) К примеру в этой теме вычесление угла поворота. Было бы удобно включить их файл в свою программу и использовать их функцию)

0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
30.08.2010, 16:51
Deimon, возможно выложил исходник, да вот только он сейчас с веселой компанией всех написанных мною программ, отправлен на тот свет из-за внезапного сбоя напряжения и последующего дурацкого случая с форматированием не того раздела... Так что не надо давить на больное место...

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Deimon Посмотреть сообщение
, с коментариями и блок схемой
Блок-схемы - вещь которую я до сих пор не понимаю и составлять не умею.:rofl:

0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
30.08.2010, 17:24
Папа Карло, Можешь описать как ты осуществлял анимацию ?
По какому принципу ?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
30.08.2010, 18:07
Deimon, если в общем, то могу:
Есть таймер, есть список обьектов с анимацией. Таймер циклом проходит весь этот список изменяя текстуру пройденного обьекта на "anim_step" + step+".bmp", где "anim_step" - это название файла с анимацией, а step - это порядковый номер текущего кадра. Пример:
C++
1
2
3
4
5
6
for(int i=0;i<anim_list->count;i++)
{
step++; //Увеличиваем счетчик кадра
ChangeObjectTexture(anim_list->Strings[i],"test"+String(step)+".bmp"); //Самписная функция, которая меняет текстуру
if(step>4)step=1;  //Если счетчик превысил определенный предел, то возвращаем его на первую позицию.
}
А вот так выглядит список изображений анимации обьекта:
test1.bmp
test2.bmp
test3.bmp
test4.bmp
Один файл - один кадр.
0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
31.08.2010, 15:06
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
void __fastcall Thread::back_draw() {
  char ABC[64];
  #define A(i,j) ABC[8*i+j]
  int i,j,x;
  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      x = A(i,j);
      switch(x) {
        case 49:
          Hero->LoadFromFile(".\\models\\misc\\grass.bmp"); 
          BUFFER->Canvas->Draw(i*50,j*50,Hero);
          break;
       case 50:
          Hero->LoadFromFile(".\\models\\misc\\road.bmp");
          BUFFER->Canvas->Draw(i*50,j*50,Hero);
          break;
      }
    }
  }
}
 
void Thread::player_draw() {
  int s = Main->player.side;
  int x = Main->player.x;
  int y = Main->player.y;
    switch(s){
      case 1:
         Player->LoadFromFile(".\\models\\people\\player\\w.bmp");
         BUFFER->Canvas->Draw(x,y,Player);
         break;
      case 2:
         Player->LoadFromFile(".\\models\\people\\player\\s.bmp");
         BUFFER->Canvas->Draw(x,y,Player);
         break;
      case 3:
         Player->LoadFromFile(".\\models\\people\\player\\a.bmp");
         BUFFER->Canvas->Draw(x,y,Player);
         break;
      case 4:
         Player->LoadFromFile(".\\models\\people\\player\\d.bmp");
         BUFFER->Canvas->Draw(x,y,Player);
         break;
    }
}
У меня вопрос, можно ли так открывать постоянно файл, даже если он там открыт ?




Может кто подсказать, из-за чего возникает эта ошибка при работe с Canvas ?

Хотя бы одну из причин
П.С. ошибка связана с текстом программы выше
0
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
30.10.2010, 13:12
Народ, я впринципе понял что вы тут делали, но у меня возник вопрос....а вы вообще ботов или какиз-нибудь существ делали ? Мне бы понять элементарные вещи, в плане, - можно создать класс bot ..и занести в него все его характеристики (чтобы не делать через класс Player, потому что у меня там дохрена всего - память только захломлять). Ну а как вы AI описывали, по какому принципу?

Добавлено через 4 минуты
Цитата Сообщение от [XandeR] Посмотреть сообщение
спс, кажется понял, сейчас попробую сделать

Добавлено через 1 час 37 минут 54 секунды
извиняюсь за надоедливость и за тупые вопросы но я знаю ооп в общих чертах поэтому прошу объяснить как создать массив из объектов класса Bullet
C++
1
Bullet*b[300]=new Bullet();// это не правильно я что то вроде забыл?
Добавлено через 2 минуты 14 секунд
ну или динамический массив
C++
1
Bullet*b[n]=new Bullet();
А ктонибудь пробывал использовать Multimap<><> ???или что-то вроде этого ? Вроде, тогда не ограниченное количество (ограниченное памятью) можно сделать ?!

Добавлено через 14 часов 44 минуты
Цитата Сообщение от KTYJIX Посмотреть сообщение
Так парни поздравляю,у нас почти получилось крутить его вокруг своей оси,вот проэкт он сдесь нормально крутиться за мышкой(ток с небольшим отклонением почему то).

Следующая цель завставить его нормально двигаться,просто если во время вращения начать движение опять какаято фигня происходит.
По моим наблюдениям, он у тебя так странно вращяется, потому что центр игрока (точка отсчета) не середина, как должно было бы быть, а крайний правый угол. А Когда ходит, то почему то он очень зависит от указателя мыши (прицела)

Ты уже исправил это ?
0
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 7
09.05.2011, 14:06
классная тема оч помогла, спасибо
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
23.05.2011, 21:38
NiTan, по моему лучше сделать анимацию по другому. в файле хранить высоту, ширину кадра, кол-во кадром, скорость воспроизведения и месторасположение илюстрации. выводить через рект.
1
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
23.05.2011, 23:28
Лучший ответ Сообщение было отмечено как решение

Решение

Набросал пример.
Вложения
Тип файла: zip animation.zip (359.2 Кб, 77 просмотров)
3
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
09.04.2012, 14:42
Возник вопрос по ходу написания игрушки. Как можно реализовать инвентарь?! Тоесть у меня есть и оружие, и броня, и ресурсы, и просто шлак. Все имеет свое отдельное предазначение. Есть ли идеи или может кто-то так делал: по какой схеме реализовать игровой "инвентарь"?! Делать отдельные классы или один большой класс ? Чтобы потом можно было сунуть в контейнер все, что находится в инвентаре ?!
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.04.2012, 15:15
рассуждая логически разумнее будет выделить для всех вещей общие методы (взять, выбросить, купить, продать, передать и тп) и свойства (вес, стоимость и тп) и описать их отдельным базовым классом
1
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
09.04.2012, 15:32
Цитата Сообщение от vxg Посмотреть сообщение
и описать их отдельным базовым классом
А как с ними потом работать? Как с несколькими контейнерам ? (в основном интересует вопрос отрисовки - как ориентировать их в инвентаре (присваивать номера ячейки, чтобы не пересекались с номерами ячеек других классов?
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
09.04.2012, 15:45
возможно я не понял что вам нужно. в чем проблема ориентации то? на каждую единицу иметь рисунок (можно сделать его полем класса) и рисовать его в ячейке где лежит объект (при помощи метода отрисоваться). сама панель с инвентарем будет идти отельным объектом имеющим поле-список элементами которого будут объекты инвентаря, методы отрисовать (рисует последовательно все инвентари в ячейках) ну и всякие служебные методы вроде перетащить в другую ячейку и тп

Добавлено через 2 минуты
если по концепции интерфейса предусматривается упорядочивание инвентаря пользователем наподобие titan quest то ессно нужно отслеживать не пытается ли инвентарь вставиться в место уже занятое другим инвентарем, хватает ли ему ячеек и тд
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2012, 15:45
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
400
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью 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 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru