![]() |
Хм неплохо ! Я бы даже сказал хорошо !
И вот ещё , вдруг прегодится ! Скрытый текст: |
Цитата:
|
Цитата:
P.S.Спасибо всем, что одобрили мой танчик. :) |
^i_Swep
Спасибо. Серия видюх GeForce 6xxx под подозрением. Чего-то они не умеют делать... Буду разбираться. DEAD_Angel dds DirectX поддерживает, psd, конечно, нет. |
Всем Сорри!! ORTODOX опять забанился :( Теперь я заместо него :))
ЗЫ Анимацию снаряда сделали? Добавлено через 1 минуту ЗЫ pokibor знаешь в чем баг на 6 серии жирафов? |
Миланчег
Если б знал, бага бы уже не было. Впрочем, его нет, если использовать другой класс для квада, который с Lock'ом памяти. Стало быть, баг не является критическим, просто приложение, возможно, будет работать чуть-чуть медленнее. P.S. Сейчас не до таких разборок. Закончил добавление клавиатуры через DirectInput. Скоро будет первый общественный релиз (в рамках сидящих здесь людей, конечно :) ). В ближайших планах - реализация мыши, добавление связанных с ней событий и пара методов у квада. Тогда движок будет уже готов к тестам игры. P.P.S. Администрация сочла Миланчег'а фейком. Сочувствую. Только заверяю, что объяснительный пост был принят во внимание. |
Цитата:
Пора выбирать заместителя ORTODOX Пишите кандидатуры (синим) |
pokibor
Цитата:
|
System32
Вы что-то не поняли. Я говорю о движке, а не об полноценной игре. Движок простейший пока, так что не надейтесь на его мощь, и для посылки куда-то там он точно не подходит... |
Цитата:
|
Цитата:
System32, вступай ещё одним художником (ну, если конечно, остальные не против) ! :) ORTODOX, ну ты даёшь - из бана в бан ! :lol: (не обижайся, я похорошему) Кончаем флуд. Я стараюсь к нему гуманно относиться, ибо тема всё-таки живому обсуждению проекта посвящена, но всему есть предел. |
Для связи !
Скрытый текст: |
Хотелось-бы чтобы управление танчиком было организованно не как в "стандартной версии"
Скрытый текст: |
Цитата:
про cooldown. Да, если танк может выпустить несколько снарядов, то нужно задать промежуток между выстрелами. Грубо говоря, танк может выстрелить при выполнении двух условий: - с момента прошлого выстрела прошло достаточное время, и - количество существующих сейчас его снарядов меньше его максимума. насчёт дискретности времени - тут надо кое-что уточнить и ещё многое обдумать. Прежде всего: грубо говоря, игровая система является неким конечным автоматом. В каждый момент времени она принимает одно из состояний, число которых конечно, и может перейти в другое состояние; считаем, что для перехода в новое состояние все объекты что-то делают (могут и не делать). в идеале одновременно, но в реальности будет некая очерёдность. переход из одного состояния в другое - это такт. Такт для этой системы - это атомарный проежуток времени, единица времени. В этом смысле "логическое" время дискретно. Но для пользователя (значит и для графичиского движка) этот такт не является атомарным - он длится некоторое время (допустим, несколько секунд), за это время проигрываются нужные анимации и тд. Например, танк перемещается на один слой ячеек вверх. Он не может зависнуть между ячейками, для него существуют только варианты "до перемещения" и "после перемещения". Времени между ними для него тоже не существует. Но графический движок изображает это как непрерывный процесс, плавно перемещает картинку на одну ячейку вверх. Плавно подходим к "времени выстрела" выстрел, с точки зрения игровой логики, - это элементарное (атомарное) действие. В начальном состоянии есть танк, в конечном - танк и снаряд где-то в соседней ячейке. Для пользователя/визуализации - это процесс. у него есть своя анимация, и, скорее всего, время выстрела это и будет продолжительность анимации. иными словами - да, это будет в игре, но нет, это не является частью ядра. так что cooldown можно добавлять в свойство оружия, но это величина не в секундах, а в тактах, единицах "логического времени" ----- ещё один важный аспект, по которму ещё нет единого решения - динамика. нужно определить, как именно осуществляется движение в этом клетчном мире, как реализовать движение с разными скоростями, и как это соотносится с логическим временем и реальным временем. Тут можно отталкиваться от двух идей. Первая - считаем движение непрерывным. хм.. абстракция: все traverser'ы на самом деле движутся где-то в ином измерении и имеют вещественные координаты, а мы отсчитываем такты и в каждый такт определяем, какие ячейки матрицы они занимают - т.е. какие у них целочисленные координаты; округляем, в общем). Сюда хорошо вписывается вещественная скорость, и веществвенные же модификаторы скорости у объектов. Однако при таком подходе скорости могут быть (и будут) такими, что объекты - танки и снаряды - могут перемещаться за один такт на несколько ячеек, т.е. перескакивать через ячейки. Поэтому обрабатывать столкновения снаряда, двигающегося со скоростью, например, 3, будет сложнее (потребуется обрабатывать не только столкновения, но и пробегать по "предшествующим" ячейкам) Вторая идея - за каждый такт любой объект может переместиться не более чем на одну ячейку. Для представления разных скоростей используются задержки; объект с нулевой задержкой - самый быстрый, он перемещается на одну ячейку за такт. Остальные ждут несколько тактов перед (или после) каждым перемещением. Тут проще обрабатывать столкновения и взаимодействия с другими объектами, но возникает риск: самое быстрое возможное движение - это движение объектов с нулевой задержкой. если игра будет тормозить, то это может оказаться слишком медленно. Кроме того (это относится к движению вообще, независимо от выбранного варианта), Танки (MatrixTraverser'ы) занимают ячейки в матрице, поэтому нужно не допустить таких ситуаций, когда на первом такте танк решает переместиться куда-то в свободное место, и за то время, пока он ждёт, это место кто-то занимает (а графический движок уже начал анимацию, передвинул картинку на половину ячейки!) Это можно сделать двумя способами - перемещать танк сразу и потом ждать, или же "зарезервировать" целевые ячейки, подождать, потом переместится (в этом случае танк стоит на месте и снаряды его там могут повредить, но на его новое место никто заехать не сможет, а снаряды там спокойно пролетают). |
Ловите первую версию недо-движка с демонстрационным приложением. Сразу говорю, что в демонстрации затронуты далеко не все возможности даже из уже имеющихся в наличии (так, например, нет буферизации ввода DirectInput). В общем, смотрите и разбирайтесь. Программеры... :D
Да, там вроде как все объекты я сделал нетрансформируемыми, следовательно, проблем ни у кого быть не должно. Сглаживание, кстати, надо бы сделать... займусь этим позже :) К движку относятся следующие файлы: global.h i_keyboard.h; i_keyboard.cpp r_window.h; r_window.cpp renderer.h; renderer.cpp resource.h; resources.rc; Короче, все h-cpp кроме main'а и пустых пока t_core, плюс ресурсный файл rc. Ссылки: http://ifolder.ru/5048137 либо http://webfile.ru/1698709 Проект сделан в VS 2005 с использованием DirectX SDK от ноября 2007'ого года, но загрузить все файлы и скомпилить, думаю, можно и при более ранних версиях. Повторяю, не открыть проект (VS может выдавать ошибку!), а создать новый и загрузить в него все h, cpp и rc-файлы! Только новый создавайте в той же папке либо модифицируйте в коде путь к текстурам (в main.cpp, найдёте сами). P.S. Бывает же такое... Дико стормозил и вместо нормальных enum'ов пихнул какое-то Java-подобное извращение с уймой констант в классе... Ну да ничего, я уже исправился, заодно нашёл баг в оптимизаторе VS 2005 (он просто не понимает то ли членов enum'а в качестве default-значений, то ли ещё чего-то, с enum'ами связанного) и перешёл под бету VS 2008, попутно качая релизную версию. О чём и оповещаю участников проекта. Отныне под 2005 мои файлы вполне могут не компилиться из-за традиционных M$'ных БАГОВ. |
А демо-игры ещё нету?? или хотяб какую-нить версию игры.:)
|
Fey
Цитата:
|
pokibor
У меня работает нормально. :) HaNproKilleR Ну как там с уровнями ? Придумываешь ? |
DEAD_Angel
Да что работает нормально, ясно. Я жду, пока программист(ы) наши распробуют текущую версию движка. Для кого я его пишу, в конце концов? |
Цитата:
P.S. Придётся тебе программером "записываться" :)) P.P.S. Простите за флуд. Добавлено через 7 часов 15 минут pokibor Как движок назовёшь ? Это только движок на С++ написаный, такую структуру имеет, да? А на каких языках програмирования другие движки пишут ? (Извините, понимаю немного не по теме) |
| Часовой пояс GMT +4, время: 08:28. |
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.