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

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

12.05.2009, 21:08. Показов 102587. Ответов 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
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,472
09.04.2012, 15:15
рассуждая логически разумнее будет выделить для всех вещей общие методы (взять, выбросить, купить, продать, передать и тп) и свойства (вес, стоимость и тп) и описать их отдельным базовым классом
1
 Аватар для Deimon
35 / 35 / 6
Регистрация: 29.08.2009
Сообщений: 183
09.04.2012, 15:32
Цитата Сообщение от vxg Посмотреть сообщение
и описать их отдельным базовым классом
А как с ними потом работать? Как с несколькими контейнерам ? (в основном интересует вопрос отрисовки - как ориентировать их в инвентаре (присваивать номера ячейки, чтобы не пересекались с номерами ячеек других классов?
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,472
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru