Текущее время: Чт 17 окт 2019 14:18

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 202 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Сообщение Пн 11 июл 2011 1:55
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
О концепции много рассказывать не буду. Пока что в планах просто продвинутая стрелялка. Вот скриншот:
Изображение
Скриншот наглядно демонстрирует, что пока что почти ничего не сделано (тем не менее над тем, что уже сделано, я старался), но версию я выложил для того, чтобы вы опробовали:
1. насколько вам нравится управление. У меня, например, есть проблемы с зажатием клавиш. Вот клавиши:
- вверх, вниз - вперед, назад;
- влево, вправо - влево, вправо;
- Q, E - слайд влево, слайд вправо;
- SPACE - прыжок (само нажатие немножко инертно, но это потом исправлю);
- CTRL - огонь (меня включительно интересует, есть ли проблемы с правым CTRL).
Реализовано элементарное перепрыгивание глайдера, но не более того. Столкновения пока что реализованы достаточно убого. Кстати, вражеский глайдер неуничтожим.
2. очевидные утечки, если они есть. Если вы вдруг заметите, что ваш комп начинает виснуть, это значит, что я где-то наплужил.
3. в Data лежит Game.cfg. Это - игровые настройки. Названия параметров, я думаю, достаточно ясно описывают значения, поэтому можно осознанно что-нето подкрутить.
4. неплохо, если кто-то знает, где можно взять хорошие спрайты для взрывов.

Скачать.

На семерке скорее всего не пойдет, но, может, и пойдет (во всяком случае, щупайте совместимость). Сейчас работаю под ХР, на семерку перекомпилю, когда будет что-то посерьезнее.
Надеюсь, что тестеры найдутся, потому что мне в будущем надо будет много тестеров.

(Пост обновлен)
Тестовая версия 2:
- полная,
- дополнительный модуль,

- exe-файл для Windows 7. (могут быть глюки)


Последний раз редактировалось Krogoth Пн 18 июл 2011 16:00, всего редактировалось 2 раз(а).

 Сообщение Пн 11 июл 2011 2:44
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
О концепции много рассказывать не буду. Пока что в планах просто продвинутая стрелялка.
Если хорошо будет идти, то продвинутая стрелялка обрастёт торговалкой, и в итоге может кончится стратежкой/экономическим симулятором. Маны тебе! :supercool:
Krogoth писал(а):
Скриншот наглядно демонстрирует, что пока что почти ничего не сделано
А по мне, так начать - пол дела сделано. Уже зашибато. Уже впечатляет.
Krogoth писал(а):
1. насколько вам нравится управление.
Ну разумеется оно не нравицца! Мышу можешь обрабатывать? Если да, то предлагаю на стрелки забить вперёд-назад и стрейфы, повороты - на мышку. Если юзер двинул мышь вправо/влево на Х пикселов, глайдер повернулся на s*X градусов. То, что управление идёт относительно текущей ориентации глайда, а не монитора, вполне сносно - как машинкой на радиоуправлении управлять. Пара минут привыкания - и ты в глайдере. Тут ОК.
Стрельбу на левую мышу забубень. Прыжок желательно на правую мышу, если не собираешься её под Тяжёлое оружие забивать.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 2:48
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Если юзер двинул мышь вправо/влево на Х пикселов, глайдер повернулся на s*X градусов.
Хм, действительно. Это же очевидное решение, но как-то мне и в голову не пришло. :shock:


 Сообщение Пн 11 июл 2011 2:49
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Кстати, насчёт анимации взрыва. Мне показалось, что последний кадр анимации взрыва рисуется первой картинкой (последним виден ровный яркий кружок после затухающего черного облачка). Проверь - баг, походу.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 2:51
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Кстати, насчёт анимации взрыва. Мне показалось, что последний кадр анимации взрыва рисуется первой картинкой (последним виден ровный яркий кружок после затухающего черного облачка). Проверь - баг, походу.
У меня нема. Поставь в конфиге DELTA_TIME, скажем, 100, так будет нагляднее.


 Сообщение Пн 11 июл 2011 2:54
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Просьба есть: если просто ехешник допиливаешь, то только его и заливай - а то 3+ метра качать каждый раз... :oops: А своего сайта у тебя нет, чтоб туда заливать? А то файлфронт такой рекламно-тормозно-вируснявый... :angel:

Добавлено спустя 1 минуту 43 секунды:

Krogoth писал(а):
У меня нема. Поставь в конфиге DELTA_TIME, скажем, 100, так будет нагляднее.
Да, стопудово уверен теперь: первый и последний кадр анимации взрыва одинаковые. Ищи баг. :tongue:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 2:57
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Ок, создам свое ftp.

Добавлено спустя 44 секунды:

А чо оно это слово ссылкой обозначило? O_o

Добавлено спустя 18 секунд:

А-а-а...

Добавлено спустя 1 минуту 4 секунды:

Шаман писал(а):
Да, стопудово уверен теперь: первый и последний кадр анимации взрыва одинаковые. Ищи баг.
А вот это уже СТРАННО, ибо у меня нету.

У тебя, кстати, винда какая?

_________________
Я - женщина, и значит я - актриса.
Во мне сто лиц и тысяча ролей.
Я - женщина, и значит я - царица.
Возлюбленная всех земных царей.


 Сообщение Пн 11 июл 2011 2:58
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
У меня винда работающая, точнее Х.Работающая. :mrgreen: Ты не к винде цепляйся. Код вываливай - авось я узрею криворукость твою? :shock:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:02
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
По идее у тебя еще должен быть глюк с картинкой глайдера, когда он 0 градусов проходит.

Код отрисовки спрайта:
Код:
void DrawSprite(const uint MaskId, uint n, const double UnitSize)
{
    const uint N = sqr(SpriteDeg[MaskId]);
    //Filter
    if (n > N)
        n -= N * int(n / N);

    uint X, Y;
    if (n <= SpriteDeg[MaskId])
    {
        X = n;
        Y = 1;
    }
    else
    {
        X = n % SpriteDeg[MaskId];
        Y = int(n / SpriteDeg[MaskId]);
        if (X == 0)
            X = SpriteDeg[MaskId];
        else
            Y++;
    }

    X--;
    Y = SpriteDeg[MaskId] - Y;
    const double SpriteSize = 1. / SpriteDeg[MaskId];
    //Mask
    glBlendFunc(GL_DST_COLOR, GL_ZERO);
    glBindTexture(GL_TEXTURE_2D, Texture[MaskId]);
    glBegin(GL_QUADS);
        //4 3
        //1 2
        glTexCoord2f( X      * SpriteSize,  Y      * SpriteSize);
            glVertex2f(-UnitSize, -UnitSize);
        glTexCoord2f((X + 1) * SpriteSize,  Y      * SpriteSize);
            glVertex2f( UnitSize, -UnitSize);
        glTexCoord2f((X + 1) * SpriteSize, (Y + 1) * SpriteSize);
            glVertex2f( UnitSize,  UnitSize);
        glTexCoord2f( X      * SpriteSize, (Y + 1) * SpriteSize);
            glVertex2f(-UnitSize,  UnitSize);
    glEnd();
    //Image
    glBlendFunc(GL_ONE, GL_ONE);
    glBindTexture(GL_TEXTURE_2D, Texture[MaskId + 1]);
    glBegin(GL_QUADS);
        glTexCoord2f( X      * SpriteSize,  Y      * SpriteSize);
            glVertex2f(-UnitSize, -UnitSize);
        glTexCoord2f((X + 1) * SpriteSize,  Y      * SpriteSize);
            glVertex2f( UnitSize, -UnitSize);
        glTexCoord2f((X + 1) * SpriteSize, (Y + 1) * SpriteSize);
            glVertex2f( UnitSize,  UnitSize);
        glTexCoord2f( X      * SpriteSize, (Y + 1) * SpriteSize);
            glVertex2f(-UnitSize,  UnitSize);
    glEnd();
}


 Сообщение Пн 11 июл 2011 3:02
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Нашёл решение (будет тебе подсказкой):
SHOT_EXPTIME = 24
Т.е. изменил с 25 на 24. Уже догадываюсь, где ты напортачил. :wink:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:03
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Код обновления выстрела (внутри собственного класса):
Код:
    void Refresh()
    {
        glLoadIdentity();
        glTranslatef(X, Y * CAMERA_ANGLE_COS + Z * CAMERA_ANGLE_SIN, 0);
        //Shot
        if (ExpTime == 0)
        {
            DrawSprite(GetTextureId(Id), round(Dir / dpi * sqr(SHOT_SPRITE_DEG)) + 1, Size);
            X += SHOT_SPEED * cos(Dir);
            Y += SHOT_SPEED * sin(Dir);
            //Removing flown one
            const double Y_ = Y * CAMERA_ANGLE_COS;
            if (X  <WORLD_BOUNDS_X> WORLD_BOUNDS_X ||
                Y_ <WORLD_BOUNDS_Y> WORLD_BOUNDS_Y)
                delete this;
        }
        //Explosion
        else
        {
            DrawSprite(GetTextureId(Id), ExpTime, Size);
            if (ExpTime == SHOT_EXPTIME)
                delete this;
            else
                ExpTime++;
        }
    }


Добавлено спустя 38 секунд:

Шаман писал(а):
Нашёл решение (будет тебе подсказкой):
SHOT_EXPTIME = 24
Т.е. изменил с 25 на 24. Уже догадываюсь, где ты напортачил. :wink:
Не спеши, у меня-то глюка такого нет почему-то!


 Сообщение Пн 11 июл 2011 3:05
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
if (n > N)
if(n>=N)
Ага? :hm:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:08
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Krogoth писал(а):
if (n > N)
if(n>=N)
Ага? :hm:
Да не, там же индексация с 1. Т. е. n = N - это последний элемент.


 Сообщение Пн 11 июл 2011 3:12
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
const uint N = sqr(SpriteDeg[MaskId]);
//Filter
if (n > N)
n -= N * int(n / N);
Как я понимаю, N - количество фреймов в спрайте (в нашем случае 5*5=25), так? А n - запрошенный номер спрайта. И ты проверяешь, не великоват ли запрошенный номер, и если да, то врапаешь его. Ну так подставь N=25. Если нумерация начинается с 0, а не с 1, то максимальный номер спрайта - 24, а 25 - уже перебор. Вот где собака порылась, ИМХО.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:14
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Блин, все же должно быть тривиально.
Я начинаю рисовать, когда ExpTime = 1.
Кусок такой:
Код:
            DrawSprite(GetTextureId(Id), ExpTime, Size);
            if (ExpTime == SHOT_EXPTIME)
                delete this;
            else
                ExpTime++;

Т.е. 25-й кадр (гм!!!) отрисовывается, а потом объект сразу же удаляется и быть нарисован еще раз не может, потому что не может быть вызван.

Добавлено спустя 10 секунд:

МИСТИКА.


 Сообщение Пн 11 июл 2011 3:14
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
sqr
Это макрос x*x или полноценная функция, погрязшая в плавании запятых? :hm:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:15
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Если нумерация начинается с 0
Нет.

Добавлено спустя 12 секунд:

Шаман писал(а):
Krogoth писал(а):
sqr
Это макрос x*x
Да.

Добавлено спустя 11 секунд:

Хотя не, функция.

Добавлено спустя 33 секунды:

Кстати, pow(x, 2) работает медленнее или быстрее, чем x * x?


 Сообщение Пн 11 июл 2011 3:30
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Блин, все транцидентные функции работают медленно. Не пользуйся math.h библиотекой если нет крайней необходимости, которой являются косинусы, синусы, степени, корни или логарифмы. Замени просто значком умножения. Приплывёшь с этими запятыми. :blabla: Значок умножения работает быстрее любой библиотечной функции. Чессгря, фраза "delete this" меня пугает. Никогда не юзал классы, удаляющие себя. Помяни моё слово - кончишь утечкой памяти. Динамический массив юзай, и движок, этот массив обрабатывающий.
Но мне кажется, дело не в этом. Подставь значение 25, и проследи, как что куда идёт. Что-то мне кажется, в DrawSprite лажа.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 3:51
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Шаман писал(а):
Никогда не юзал классы, удаляющие себя. Помяни моё слово - кончишь утечкой памяти.
Не вижу ничего криминального. Хотя на форумах читал, говорят, многие боятся, но если сделать грамотно, то все хорошо. Хотя не факт, что у меня грамотно.

Добавлено спустя 2 минуты 53 секунды:

Шаман писал(а):
Динамический массив юзай, и движок, этот массив обрабатывающий.
Ну, а у меня как?
Самый родительский класс - просто список, потом идет статичный объект, потом идут подвижный объект и тень, дочерние от статичного объекта, потом идут глайдер и выстрел, дочерние от подвижного объекта.


 Сообщение Пн 11 июл 2011 3:52
Профиль  
#105d99
Аватара пользователя
Сообщения: 15196
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
http://www.gamedev.ru/code/tip/advfloat - пячте логарифмы, товарищи!

_________________
Пацаки должны носить цаки!
http://www.youtube.com/watch?v=MXTBotdauPo
http://s004.radikal.ru/i208/1008/47/929cabe231b4.jpg


 Сообщение Пн 11 июл 2011 3:55
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Кто будет тестить - ОБРАТИТЕ ВНИМАНИЕ НА 25 КАДР. Что-то у меня подозрение, что глюк должен быть далеко не у всех.

Добавлено спустя 3 минуты 35 секунд:

C++ плохо знаю, поэтому только что узнал об inline. Возник вопрос: ее можно тыкать где только можно или надо все-таки предварительно головой думать?


 Сообщение Пн 11 июл 2011 4:08
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Тебе компиллер врнинг даст, если будет против. А вообще, любую коротенькую функцию инлайнай.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 4:19
Профиль  
#105d99
Аватара пользователя
Сообщения: 15196
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
У меня не было. Игруха, кстати, очень угарная.

_________________
Пацаки должны носить цаки!
http://www.youtube.com/watch?v=MXTBotdauPo
http://s004.radikal.ru/i208/1008/47/929cabe231b4.jpg


 Сообщение Пн 11 июл 2011 4:42
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
2 Razum: в придачу к логарифмам вот простенькие ассемблерные кусочки для замены син-косинусовых и квадратных функций из math.h:

Как посчитать синус, косинус, корень из float'а "f":

Код:
float f = 0.1,
        sin_f,
        cos_f,
        sqrt_f;

//Так считается синус угла (угол в радианах):
_asm{
 fld dword ptr f;
 fsin;
 fst dword ptr sin_f;
}

//Так считается косинус угла (угол в радианах):
_asm{
 fld dword ptr f;
 fcos;
 fst dword ptr cos_f;
}

//Так считается корень из числа:
_asm{
 fld dword ptr f;
 fsqrt;
 fst dword ptr sqrt_f;
}


Добавлено спустя 19 минут 17 секунд:

Krogoth писал(а):
Кто будет тестить - ОБРАТИТЕ ВНИМАНИЕ НА 25 КАДР. Что-то у меня подозрение, что глюк должен быть далеко не у всех.
Неча задом вилять - давай моск напрягай. Если багов нет, то ни у кого не заглючит.
Вообще, шо за школьная привычка - нумерацию с 1 вести, а не с нуля? Вон ты десять раз +/- 1 туда сюда гоняешь - не мудрено, что дваццать пятый кадр мистически материализовался.

_________________
Сообщество креативных механоидов:
aim-fans.ru


Последний раз редактировалось Shaman Пн 11 июл 2011 14:11, всего редактировалось 1 раз.

 Сообщение Пн 11 июл 2011 4:50
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Нумерация с 0 ничем не лучше, чем нумерация с 1, потому что в конце концов для некоторых операций мне надо будет добавлять единицу, точно так же, как и здесь мне нужно будет иногда вычитать (посмотри первый кусок моего кода, там гораздо удобнее манипулировать с номером, начинающимся с 1; потом я вычитаю, конечно). К тому же класс глайдера у меня будет общим с классом вспомогательных объектов, таких как, например, ремонтная площадка, а у них уже будет конкретная переменная "фрейм", 0 для которой будет обозначать инициализацию, т.е. объект есть, но пока еще не должен быть прорисован. Не знаю, зачем это надо, но мне такая концепция нравится больше.


 Сообщение Пн 11 июл 2011 5:06
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Что-то я засмущался. Захакал спрайт на 2х2 тилеса с 4 кадрами, 3х3 тилеса и 9 кадров, 4х4 клетки на 16 кадров - всё правильно рисует. С частотой обновления 400 мс, каждый тилес пометил, мордой в моник впячился - всё правильно рисует. Но когда 5х5 тилесов и 25 кадров - вместо последнего кадра первый показывает. :shock:

Добавлено спустя 3 минуты 31 секунду:

А при растильсовке 5х5 и 24-х кадрах - всё правильно показывает. Ну что за магия с числом 25?! :mad:

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Пн 11 июл 2011 12:34
Профиль  
#105d99
Аватара пользователя
Сообщения: 15196
Откуда: Москва, сектор бетонных домов
Зарегистрирован: Пн 20 фев 2006 3:56
2 Шаман
Че это за пепяки fsin, и прочее? Это команды? Или функции?

Добавлено спустя 4 минуты 36 секунд:

А, все, позырил - это математический сопроцессор.

Добавлено спустя 2 минуты 54 секунды:

Я думаю, если мат. сопроцессор достаточно долго считает(весьма вероятно, что он вычисляет это дело с хорошей точностью), то лучше будет подобрать квадратичную аппроксимацию, скажем, того же косинуса, и юзать его там, где нужна мега-скорость, но точности особой не требуется.

_________________
Пацаки должны носить цаки!
http://www.youtube.com/watch?v=MXTBotdauPo
http://s004.radikal.ru/i208/1008/47/929cabe231b4.jpg


 Сообщение Пн 11 июл 2011 14:09
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
2 Razum: функции действительно тормозные - сотня таков. :tongue: Однако обращение к незакэшированной ячейке памяти займёт столько же времени. :teeth:
Это проста альтернатива функциям sin, cos, sqrt из мат-библиотеки. В конечном итоге они так или иначе пользуют эти команды мат-сопроцессора, но сперва расковыряют все проверки и эксепшены по всем системным областям связи. В результате, за такое же время можно десяток синусов посчитать. Короче, я предпочитаю ассемблером пользоваться, где можно.

_________________
Сообщество креативных механоидов:
aim-fans.ru


 Сообщение Ср 13 июл 2011 23:16
Профиль  
Скриптизёр
Аватара пользователя
Сообщения: 10646
Откуда: Мариуполь
Зарегистрирован: Пт 13 апр 2007 17:15
Сейчас холявой занимаюсь: CFG-шки клепаю. :mrgreen:

Многа думал над столкновениями, решил вот как сделать: для столкновения в плоскости буду изучать пересечения глайдеров, нарисованных отдельной картинкой с видом сверху, а чтоб учесть вертикальное взаимодействие, задам эллипсоид, причем вырежу на нем такой небольшой круг посредине (ну, не круг, а то, что получается в результате пересечения сферы цилиндром), на котором глайдер может спокойно стоять, т.е. в его пределах взаимодействие вообще не происходит (объект воспринимается как поверхность), а за его пределами будет постепенно возрастать плоскостное взаимодействие и переходить в корректное взаимодействие, когда оба глайдера в одной плоскости. Таким образом, на глайдер можно запрыгнуть, а можно и неудачно запрыгнуть, в результате чего глайдеры разлетятся. О как. Но это я долго мутить буду. :]

Добавлено спустя 1 минуту 31 секунду:

И еще печалька с наложением теней: сделать в плоскости это корректно, не затрачивая больших ресурсов компьютера, у меня не получилось. :/

_________________
Я - женщина, и значит я - актриса.
Во мне сто лиц и тысяча ролей.
Я - женщина, и значит я - царица.
Возлюбленная всех земных царей.


 Сообщение Чт 14 июл 2011 0:14
Профиль  
Разработчик идей
Аватара пользователя
Сообщения: 4577
Откуда: Минск, Беларусь
Зарегистрирован: Ср 14 ноя 2007 19:00
Krogoth писал(а):
И еще печалька с наложением теней: сделать в плоскости это корректно, не затрачивая больших ресурсов компьютера, у меня не получилось.
А разве это не также ресурсозатратно, как рисование самого глайдера? ИМХО, бери в качестве текстуры картинку маски, и рисуй её (т.е. черное пятно) на dx пикселов правее и dy пикселов ниже глайда (dx и dy пропорциональны высоте глайда). Рисовка должна быть в два этапа - сначала рисуются тени, затем рисуются сами глайды. Так в чём, собсно, запара? Эквивалентная работа, как глайд два раза нарисовать, только с разными текстурами. :roll:
Сушь, Кроготь, а зачем тебе в 2D вообще вдаваться в физику столкновений? Вполне сносно было бы упругое столкновение двух шариков. В 3дэшных мехах так было, ну так в двадэ-то чего изголяцца? Лучше б дал повертеться мышкой - это ж вовсе не долго реализовать. :smile:

_________________
Сообщество креативных механоидов:
aim-fans.ru


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 202 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB