Воскресенье, 17 Ноября 2024, 18:51

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
GM вопросы о программировании
gefremoДата: Суббота, 11 Июня 2011, 19:24 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте, я разбираюсь в ГМ но вот у меня появились вопросы какие не получается решить и ответа на них ненашел( Кто знает подскажите плз.

1. Скрипт по выбору цели:

Экземпляр объекта должен выбрать цель, эта цель является таким же объектом как и тот который её выбирает, поэтому использовать instance_nearest неполучается, так как он выбирает сам себя.

В документации есть пример о том как просто выбрать какую-то цель определенного типа, я его и использовал.. вот так я его преобразовал:

if (target<1) //если цели нет
for (i=0; i<instance_count; i+=1) //перебираем обьекты
{
iii = instance_id[i];
if (iii.object_index == object0) //если обьект такой
if(iii!=id) //и этот обьект не он же сам
{
target=iii; //выбираем его как цель
break;
}
}
Но, почемуто когда обьект убивают то часто(невсегда) вылезает вот такая ошибка

Error in code at line 7:
if (iii.object_index == object0)
^
at position 14: Unknown variable object_index

2.
когда несколько экземпляров объектов выбирают одну и туже цель, и она умирает, то получается так что она убирается с переменной таргет только у того экземпляра который её добил (если хп цели<1 тогда таргет = 0) а остальные выдают такую ошибку

Error in code at line 7:
if (distance_to_point(target.x,target.y)>20) {spd=mspd; mp_potential_step(target.x,target.y,spd,true);}
^
at position 31: Unknown variable x

как можно сделать так чтобы все убрали её как цель, как проверить существует ли этот экземпляр объекта который в таргете ?

3.
Как сделать скрипт, что бы можно было передавать в него аргументы ? Я так понял что в var мы описываем те аргументы которые передаются в скрипт, но что то не получилось(


Сообщение отредактировал gefremo - Суббота, 11 Июня 2011, 19:33
D9TEJI=DДата: Суббота, 11 Июня 2011, 20:12 | Сообщение # 2
частый гость
Сейчас нет на сайте
1. Проверяй существование объекта - instance_exists(объект). По идее должно помочь. То есть код должен выглядеть примерно так:
Code
if (target<1) {
     for(i=0; i<instance_count; i+=1) {
       iii=instance_id[i];
       if instance_exists(iii.object_index) {
           if iii.object_index=object0 && iii!=id {
               target=iii;
               break;
               }
           }    
       }
}


3. Аргументы в скрипт передаются проще, чем ты думаешь. имя_скрипта(аргумент0,аргумент1) и так далее. А затем в самом скрипте просто получаешь отправленные значения - например, argument0. А var - для создания временных переменных.


Сообщение отредактировал D9TEJI=D - Суббота, 11 Июня 2011, 20:13
gefremoДата: Суббота, 18 Июня 2011, 15:31 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quote (D9TEJI=D)
1. Проверяй существование объекта - instance_exists(объект). По идее должно помочь. То есть код должен выглядеть примерно так:

Code
In script select_target:
Error in code at line 21:
           if instance_exists(iii.object_index) {
                    ^
at position 32: Unknown variable object_index
Вот что пишет теперь(

Добавлено (11.06.2011, 21:02)
---------------------------------------------
А решить 2 проблему удалось с помощью инстанк_екзист)

Добавлено (11.06.2011, 21:03)
---------------------------------------------
о и 1 тоже, вот так надо было

Code

if (target<1) {
      for(i=0; i<instance_count; i+=1) {
        iii=instance_id[i];
        if instance_exists(iii) {
            if iii.object_index=object0 && iii!=id {
                target=iii;
                break;
                }
            }     
        }
}

Добавлено (11.06.2011, 21:23)
---------------------------------------------
4. Вопрос о наследовании: допустим у меня есть родительский объект Units там есть характеристики и все что умею делать юниты, и у меня есть еще несколько типов юнитов которые наследуют его, но если я например пишу им чтото в событии Create то вовсе вылазит ошибка, если в Step то характеристики меняются, но при этом они уже не выбираються как цель, если целью может быть только юнит(

Добавлено (14.06.2011, 20:36)
---------------------------------------------
Кто знает подскажите плз, почему если я изменяют характеристики дочернего объекта, то его нельзя больше выделить как тот объет который он наследует ?

Добавлено (18.06.2011, 15:31)
---------------------------------------------
5 Подскажите идею как синхронизировать проигрывание анимации и нанесение урона ? (в случае для ближнего боя)

FadeBakerДата: Суббота, 18 Июня 2011, 16:14 | Сообщение # 4
JavaSE Game Developer
Сейчас нет на сайте
Quote (gefremo)
Подскажите идею как синхронизировать проигрывание анимации и нанесение урона ? (в случае для ближнего боя)

Что-то типа того:
Code
damage = image_single;

В этом случае, чем дольше будет воспроизводиться анимация, тем больше урона наносится.
Code
r = image_number - image_single;
damage = r;

Здесь всё наоборот: чем дольше будет воспроизводиться анимация, тем меньше урона наносится.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
gefremoДата: Суббота, 18 Июня 2011, 16:39 | Сообщение # 5
был не раз
Сейчас нет на сайте
Я имел ввиду как сделать что бы урон наносился когда анимация доиграет до конца.

И еще вопрос - как взять какие то параметры еще не существующего экземпляра объекта ? По данным самого объекта ?
BaHu3aTopДата: Суббота, 18 Июня 2011, 17:20 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Узнать сколько кадров анимации боя и в степе написать
Code
if image_index=кол-во_анимации
{enemy.zyzni-=15}


  • Страница 1 из 1
  • 1
Поиск:

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