XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
JET_LI

offline
Опыт: 1,724
Активность:
Классы, методы
interface BodyData {
        real m = 0 // Масса
        // Ускорение свободного падения
        real gx = 0 
        real gy = 0
        real gz = -Gravitational_acceleration
        
        real mu = 0 // Коэффициент сухого трения
        real k = 0 // Коэффициент вязкого трения
        real r = 0 // Радиус тела, нужно для столкновений
        real q = 0 // Заряд
        real elastic = GetRandomReal(0.7,1) // Коеффициент упругости тела
        boolean AllowRest = true // Можно ли выключать тело, если оно не двигается
        
        // Создание тела
        method onCreate takes Body b returns void defaults void
        // Касание земли, срабатывает все время пребывания на земле
        method onGround takes Body b returns void defaults void
        // Столкновение
        method onCollusion takes Body b, Body b2 returns void defaults void
        // Сильное столкновение, скорость сильного столкновения в параметрах
        method onForcedColl takes Body b, Body b2 returns void defaults void
        // Столкновение с декорацией, срабатывает все время пересечения тела и дестра
        method onDestrColl takes Body b, destructable destr returns void defaults void
        // Столкновение с юнитом, срабатывает все время пересечения тела и юнита
        method onUnitColl takes Body b, unit u returns void defaults void
        // Столкновение с краем карты
        method onWorldBound takes Body b returns void defaults void 
        // Тело раскололось, передает структуру с осколками
        method onCrack takes Body b, CrackedBody cb returns void defaults void
        // Тело ударилось о клифф
        method onTerrainCliff takes Body b returns void defaults void
        // Тело отправлено в стек спокойных тел
        method onRest takes Body b returns void defaults void
        // Тело выбрано
        method onSelect takes Body b returns void defaults void
        // Тело больше не выбрано
        method onDeselect takes Body b returns void defaults void
        // Смерть тела
        method onDeath takes Body b returns void defaults void
        // Выход и цикла обработки
        method onExit takes Body b returns void defaults void
        // Приказ точка
        method onPointOrder takes Body b, real TargetX, real TargetY returns void defaults void
        // Приказ цель
        method onTargetOrder takes Body b, widget target returns void defaults void
        // Приказ без цели
        method onOrder takes Body b returns void defaults void
        // Помещение в цикл обработки
        method onStart takes Body b returns void defaults void
        #if MSpringes
            // Тело привязали пружиной к телу b, если b = null, тогда тело привязано к точке
            method onSpringBinded takes Body a, Body b, Spring sp returns void defaults void
            // Тело освобождено
            method onSpringUnBinded takes Body a returns void defaults void
        #endif
}
дан класс, как свою функцию привязать к методу onGround??
Старый 05.07.2010, 16:19
ScorpioT1000
Работаем
offline
Опыт: отключен
интерфейс я так понял это типа struct на vJass, но у которого не определены начальные методы? т.е. надо унаследоваться потом:
struct SoftBody extends BodyData 
//тут описываешь методы
endstruct
Старый 05.07.2010, 20:12
JET_LI

offline
Опыт: 1,724
Активность:
да да, но вот редактор чё-то не в какую не хочет!
struct human extends BodyData {
    real m = 0 // Масса
    real gx = 9.81
    real gy = 9.81
    real gz = 9.81 // Ускорение свободного падения, проекция по оси z
    real mu = 0// Коэффициент сухого трения
    real k = 0 // Коэффициент вязкого трения
    real r = 0 // Радиус тела, нужно для столкновений
    real elastic = 0.4 // Коеффициент упругости тела
    void onGround(Body b){
        DisplayTextToPlayer(Player(0),200,200,"dasd");
        return;
    }
}
пишет onGround signatures don't match
че ему не нравится, что не совпадает, какие сигнантуры?
Старый 05.07.2010, 21:56
XOR

offline
Опыт: 38,159
Активность:
Ретурн зачем?)
Старый 05.07.2010, 23:42
JET_LI

offline
Опыт: 1,724
Активность:
ну можно без ретурна :D
ну функция должна что-то возвращать, вот я и возвращаю void :D
но суть в том что ошибка остается
Старый 06.07.2010, 08:02
adic3x

offline
Опыт: 108,439
Активность:
ну функция должна что-то возвращать
endfunction (или } в данном случае) является неявным возвратом.
По вопросу правда же, незнаю, мануал читали внимательно?
Старый 06.07.2010, 12:15
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:38.