Среда, 04 Декабря 2024, 08:27

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Результаты поиска
GrannerДата: Понедельник, 18 Апреля 2016, 19:33 | Сообщение # 61 | Тема: проигрывание анимации
почетный гость
Сейчас нет на сайте
Спасибо! За оперативность - плюсик smile С кодом - буду думать, как применить к своим условиям, ибо подобных анимаций у меня много.

Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Понедельник, 18 Апреля 2016, 18:42 | Сообщение # 62 | Тема: проигрывание анимации
почетный гость
Сейчас нет на сайте
Написал тут, чтобы не плодить похожую тему.
Остальные темы на форуме по анимации я уже просмотрел, и везде используется кнопочное событие "Завершение анимации", что мне не подходит. Есть ли другой, кодовый вариант этого события "Завершение анимации"?
Освещаю свою проблему...
Есть два спрайта: 1. str_intro - переключение оружия (анимация), 2. str_bomb - собственно герой с оружием (фактически это может последний кадр 1-ой анимации).
Задача:
Необходимо, чтобы анимация переключения оружия проигрывалась один раз, после чего ГГ меняет спрайт на спрайт 2 с оружием, который крутится в зависимости от point_direction.

Как пытался делать?
Вариант 1.
Код
sprite_index=str_intro;
image_index=0;
if image_index=15
    {
    sprite_index=str_bomb;
    image_index=0;
    image_angle=point_direction(x,y,mouse_x, mouse_y);
    }

Получается бесконечное проигрывание 1-ой анимации, а второй спрайт просто игнорируется.
Вариант 2.
Код
sprite_index=str_intro;
image_index=0;
for (i=0; i<16; i+=1)
    {
    image_index=i;
    if image_index=15
        {
        sprite_index=str_bomb;
        image_index=0;
        }
    }

Во втором варианте спрайт 1 пропускался напрочь и нормально проигрывался до бесконечности спрайт 2.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Суббота, 09 Апреля 2016, 14:09 | Сообщение # 63 | Тема: Столкновение и застревание объекта во время движения по пути
почетный гость
Сейчас нет на сайте
Цитата jayreck ()
не использовать твёрдость

Не использовать твердость - где? В главном персонаже, в препятствиях? И речь идет не об остановке, она и так есть, а о застревании на месте столкновения, например даже прямо в воздухе, при ударе о летающего противника. И это - при работающей гравитации.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Пятница, 08 Апреля 2016, 15:28 | Сообщение # 64 | Тема: Столкновение и застревание объекта во время движения по пути
почетный гость
Сейчас нет на сайте
Проблема:
При столкновении твердого объекта ГГ, двигающегося по пути, с любым другим твердым объектом - происходит застревание объекта ГГ на месте столкновения.
Необходимо:
При столкновении с любым твердым объектом у объекта ГГ путь должен заканчиваться (уничтожаться). Объект ГГ не должен застревать. На объект ГГ начинают действовать гравитация и вертикальная скорость.
Примечание:
Скорость пути - 60; путь создается программно из множества точек; в конце пути происходит нужное мне событие - и все это работает.
Как пытался делать через Step
Код
if (path_position>0 and path_position<1)
    {
    if !place_free(Braven.x+2, Braven.y)
        {
        Braven.path_position = path_positionprevious;
        path_delete(ogib);
        move_contact_solid(0,-1)
        move_bounce_solid(false);
        go=false;
        }
if (path_position==1)
    {
    vspeed=-12;
    go = false;
    path_delete(ogib);
    }


Есть ли тут иное решение?


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Пятница, 01 Апреля 2016, 17:14 | Сообщение # 65 | Тема: Конец пути и некнопочный path_endaction в GM 8.0
почетный гость
Сейчас нет на сайте
Цитата LunarPixel ()
А зачем там with Braven?

От безысходности smile И да, запускать путь через Create у меня не получится, путь создается на наборе случайных пользовательских координат. Но выход ясен и задача решена!:).

OpenGOO, LunarPixel - спасибо и плюсики за помощь.
Честно сказать, боюсь я Step перегружать. Кто может сказать - сколько проверок\действий можно загонять в Step без особого ущерба для производительности? А то у меня там на главном герое уже 6 и я начинаю в ужасе вибрировать smile А ведь еще и противник будет...


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Пятница, 01 Апреля 2016, 15:16 | Сообщение # 66 | Тема: Конец пути и некнопочный path_endaction в GM 8.0
почетный гость
Сейчас нет на сайте
Необходимо сделать, чтобы в конце пути происходило определенное событие (ну там смена спрайта, скачок объекта и пр.) Вроде бы все очевидно, но не работает либо вообще, либо событие происходит в начале пути, а не в конце. Пробовал следующим образом:
Вариант 1 (никакой реакции)
Код
path_start(ogib,80,0,true);
with Braven
    {
    if path_position=1
        {
        Braven.vspeed=-12;
        }
    }


Вариант 2 (через попытку найти координаты последней точки пути и проверку попадания на эти координаты)
Код
path_start(ogib,80,0,true);
nmb=path_get_number(ogib);
koorx=path_get_point_x(ogib,nmb-1); koory=path_get_point_y(ogib,nmb-1); // пробовал и через просто nmb, не nmb-1
if Braven.x = koorx and Braven.y = koory
    {
    Braven.vspeed=-12;
    {

Вариант 3 (на основе сайта yoyo)
Код
path_start(ogib,80,0,true);
if path_endaction=0
{
    Braven.vspeed=-12;
    {

В последнем варианте, разумеется, действие происходит, но в самом начале пути, а не в конце. Прошу помощи с проблемой.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Пятница, 01 Апреля 2016, 10:58 | Сообщение # 67 | Тема: За видом
почетный гость
Сейчас нет на сайте
Интернет, спасибо за наводку с id. На меня свалилось прозрение и проблема решена (в контексте моих требований) :)
Итак, движение быстрых слотов за видом (несколько экземпляров одного объекта):
Create объекта инвентаря inv:

Create объекта o_case (те самые быстрые слоты):

End step объекта o_case:

И финальная часть решена через свитч по id создаваемых объектов o_case -
Draw объекта o_case (Ликвидация задержек следования за видом):

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


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Вторник, 29 Марта 2016, 10:45 | Сообщение # 68 | Тема: За видом
почетный гость
Сейчас нет на сайте
Да, с lengthdir_x задержек нет, но и кнопки становятся неактивны, просто как чистые спрайты, нарисованные поверх объектов o_case.Может быть, есть другие варианты? Через id?

Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Понедельник, 28 Марта 2016, 12:45 | Сообщение # 69 | Тема: За видом
почетный гость
Сейчас нет на сайте
Интернет, спасибо! Но именно так я и делал и все работало как часы, но это было еще ДО того, как решили делать игру с видами, а не в статике.
...
Увидел сообщение - что значит в другом объекте? Я же создаю o_case в Create объекта inv. Поясните, пожалуйста.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку


Сообщение отредактировал Granner - Понедельник, 28 Марта 2016, 12:47
GrannerДата: Понедельник, 28 Марта 2016, 12:05 | Сообщение # 70 | Тема: За видом
почетный гость
Сейчас нет на сайте
Подыму эту древнюю тему все с тем же замусоленным, но не менее актуальным вопросом (особенно в контексте 3-го поста ТС):
как сделать следование за видом нескольких экземпляров одного объекта, чтобы не было видимых задержек?
Пометка: это кнопки меню (слоты умений), которые должны быть не просто спрайтами, а активными кнопками. Спрайты этих кнопок меняются в зависимости от команд игрока. (Мой спрайто-хелсбар работает как часы, но это совсем другое).
Как делал:
объект инвентарь создает кнопки (в Create инвентаря):


В Draw объекта кнопок:


В End Step объекта кнопок:


Вроде и отрисовывается, но задержка всегда есть. Перебрал кучу вариантов, но тогда inv.cell[i] не работает, а на нем завязан уже работающий код типа if inv.cell[i].sprite_index = but_clear ... Может быть здесь надо как-то обращаться к id объекта, но в справке я так и не понял, как выявить id создаваемого объекта o_case, чтоб потом его двигать за видом. Буду благодарен за любую помощь!


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Вторник, 15 Марта 2016, 11:54 | Сообщение # 71 | Тема: Конфликт между траекторией движения и гравитацией
почетный гость
Сейчас нет на сайте
Код перемещения из события E-key перенесен в степ объекта ГГ - и не работает. Результат аналогичный начальному.
И там не нажатие кнопки E, а удержание, то есть может быть степ тут и не нужен?


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Понедельник, 14 Марта 2016, 12:48 | Сообщение # 72 | Тема: Конфликт между траекторией движения и гравитацией
почетный гость
Сейчас нет на сайте
Цитата Tymonr ()
If skill.go if equal to true:D

Там просто еще событие было для отпускания E-key: skill.go=false (при отпускании клавиши гравитация и вертскорость возвращались в норму).
А насчет пихания в степ - попробую.


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
GrannerДата: Понедельник, 14 Марта 2016, 11:32 | Сообщение # 73 | Тема: Конфликт между траекторией движения и гравитацией
почетный гость
Сейчас нет на сайте
GM 8 Pro
Есть необходимость заставить объект двигаться по созданной траектории, в зависимости от расстояния до ключевого объекта. Например, ГГ (главный герой) огибает угол по ровной кривой, радиус которой зависит от расстояния между ГГ и точкой угла.
Делал так:
Е-key
Код

x2=skill.x; y2=skill.y;
x1=krur.x; y1=krur.y;
rad=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
ugol=degtorad(10);                  
count=0;
rep=19;
for (i=1;i<rep; i+=1)               
    {                    
    yn=(rad*sin(ugol*i))+y1;        
    xn=(rad*cos(ugol*i))+x1;
       if xn>x2 {instance_create(xn, yn, kapl); count+=1;}
     }
for (i=0;i<count; i+=1)
    {
    near=instance_nearest(skill.x,skill.y,kapl)
    if near.x>skill.x
        {
        if place_free(near.x+2,near.y)
            {skill.x=near.x;
            skill.y=near.y;
            }
        }
    }

Создание траектории и движение ГГ (объекта skill) работает так, как мне нужно, НО!
При переносе в основной проект возникла проблема, ибо ГГ имеет гравитацию и вертикальную скорость. Решал эту проблему добавлением переменной skill.go=true; в вышеуказанный код.
А в Step ГГ добавлял проверку кнопками:
Код
if skill.go is equal to true
      set the gravity to 0 in direction 0
      set variable vspeed to 0

Получилось так - траектория создается нормально, при удерживании E-key ГГ зависает в воздухе (вроде как гравитация и вертикальна скорость отключены правильно), но не перемещается по траектории. Хотя видно, что в нужную сторону ГГ чуть-чуть смещается при каждом нажатии E-key.
Что делать?


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку


Сообщение отредактировал Granner - Понедельник, 14 Марта 2016, 11:34
  • Страница 4 из 4
  • «
  • 1
  • 2
  • 3
  • 4
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг