|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.04.2010, 00:19 | #1 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
"робобой" динамические бойцы ?
Вобщем пишу игрушку.
2D бои роботов. Сейчас немного в ступоре. Основная идея, которую я хотел реализовать в этой программке - это динамическая загрузка всех бойцов, ландшафтов и т.д. Чтобы можно было добавлять новых бойцов без перекомпиляции программы. С ландшафтами всё просто - просто сделал папку куда можно накидать картинок определённого формата и программка их поднимает и предлагает пользователю в качестве "ресталища". Проблема с роботами: Вопрос номер раз - во время боя тело персонажа может принимать очень много положений. Я пока не могу сообразить как сделать более-менее компактную анимацию всех возможных телодвижений перса. Вопрос номер два - сами действия персонажей тоже должны (по задумке) программироваться внешними настроечными файлами. Например для одного бойца кнопка "z" это удар рукой, для другого удар ногой (это я примитивный пример привёл). Вопрос номер три - действия персонажа могут зависеть от положений противника. Например кнопка "z" - это удар рукой, но если персонаж находится рядом с противником, то это уже допустим бросок ч.з. бедро. Вопрос номер четыре - разная геометрия персонажей (у одного руки короткие, у другого длинные, один низкий, другой высокий). Соответственно как то надо и контроль столкновений (попаданий) выносить во внешний файл. Вот как эту всю логику можно вынести во внешние текстовые файлы?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
17.04.2010, 01:29 | #2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Понаделать классов и рулить ими из lua, например
пыщь
|
17.04.2010, 15:20 | #3 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Да, без скриптов тут не обойтись. Можно написать что-то свое, или lua использовать, как уже предложили.
|
17.04.2010, 17:16 | #4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Ну я на асме пишу как обычно.
Нелепость какая-то. Сама программа 15-20к. А run-time этой самой луны 150k (ну как я по мануалам понял). И где я инки возьму. Да не, чё-то не то. Я может туплю. Но вот не понял, для чего здесь скрипты и классы. Игра то пятикопеечная. Нельзя что-ли без этого никак обойтись.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
17.04.2010, 18:11 | #5 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Ты ведь хочешь чтобы все данные о анимациях, управлении, обработке был во внешних файлах. Тогда надо как-то читать эти данные. Делать конфиги наподобие ini как мне кажется не подходит, следовательно можно использовать скрипты (либо вообще обойтись от внешних файлов и писать все через код на асме). А как еще?
Можно сделать файловый формат робота где будут все данные о нем и написать редактор, правда сложно это будет. Подумай, стоит ли использовать ассемблер для такой задачи. |
18.04.2010, 21:13 | #6 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Цитата:
Собственно что и как туда выносить, чтобы оптимизировать анимации и т.д. Базовый принцип N1: -все куски анимаций склеены в один большой bmp. -кадр анимации может склеиваться из произвольного количества кусков этого bmp, значит информация о кадрах должна быть в файле - описателе робота. - анимация - это последовательность кадров, значит на каждое действие перса вешается анимация, т.е. последовательность кадров. Эту последовательность тоже получается надо хранить в файле. Вот, примерно такой принцип хранения инф. об анимациях. А с управлением и контролем пересечений пока в тупике (это самое сложное). Ещё по поводу управления - всего на управление робота будет работать шесть кнопок - "z", "x" и четыре стрелочки. Все остальные комбо и супер удары - это комбинации этих кнопок и положений перса и его противника.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
19.04.2010, 14:09 | #7 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
В CosmoNoid я сделал так, что к каждому bmp шел ini файл, в котором были данные о кадрах анимации, ее скорости, номера использующихся кадров. Надо сделать похожую систему. В редакторе можно лишь указывать конфиг анимации. Контроль пересечений можно сделать подобным образом. То есть будут отдельные текстовые файлы с данными о формах роботов, а редактор будет ссылаться на эти файлы.
|
19.04.2010, 20:16 | #8 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Я может немного сумбурно спрашиваю, поэтому не очень понятно, в чём собственно проблема. Хорошо, буду тогда вопросы задавать последовательно.
Итак: Вопрос номер раз - во время боя тело персонажа может принимать очень много положений. Я пока не могу сообразить как сделать более-менее компактную анимацию всех возможных телодвижений перса. Здесь вопрос именно в том, как её сделать компактной. Например один кадр анимации робота имеет размер 180*180 точек. Теперь элементарные движения: 1. стоит 2. идёт вперёд 3. идёт назад 4. присел 5. прыжок вверх 6. прыжок вверх-вперёд 7. прыжок вверх-назад. Это элементарные движения без ударов. Т.е. в прыжках могут быть ещё анимации с ударами руками и ногами. Ещё должны быть анимации ударов , разных комбо и суперударов. Ещё я рассмотрел ситуацию, когда боец стоит с одной стороны (например справа), но он также может быть ещё и с другой и эти анимации не обязательно симметричные. Таким образом мы имеем минимум 14 базовых анимаций (на самом деле их гораздо больше). Если на одну анимацию в среднем приходится 5 кадров, то я уже сейчас имею картинку размером 900*2520 точек. И это перс ещё даже никого и ударить то не может. Это только передвижение. По моему перебор. Поэтому и появилась идея хранить в картинке анимации не полностью робота, а его запчастей (ну там туловище, ноги, руки и т.д.). А в самом ини файле хранить инфу о том, как из запчастей собрать кадр и как из кадров собрать анимацию. Пока даже не представляю, как редактор будет в таком случае выглядеть.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
20.04.2010, 19:22 | #9 | ||
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Цитата:
Вот пример как может текстурироваться часть робота (текстурирование происходит по двум точкам, при желании текстура растягивается как в демке (например у робота могут быть пружины)) http://narod.ru/disk/19931814000/2PointsDraw.rar.html (как раз так сделана подвеска в GravityRace) Такая система подойдет больше всего, проблема лишь в сложности ее создания и написания нормального редактора. И не сложна ли она будет для ассемблера? Цитата:
Надеюсь что-то прояснил. |
||
21.04.2010, 21:32 | #10 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Ещё один момент, программа делается на GDI. Никакого OGL/DX в ней быть не должно.
В этом как раз трудность (лично для меня) реализации "скелетной" анимации. Понятно, что на движках (в 3D) развороты, масштабирование и т.д. требуют от программиста всего навсего знать немного тригонометрии. А вот на GDI готовых функций нет, либо я их не знаю.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body | tabikA | HTML и CSS | 5 | 24.02.2009 21:50 |