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

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

Закрытая тема
 
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Проблема с локальной переменной в структуре
» Код
private struct rof_data
    unit cas = null
    unit tar = null
    unit array fire[6]
    
    method rof_create_fires takes real x, real y returns nothing
        local integer i = 0
        
        loop
            .fire[i] = CreateUnit(Player(0), 'h000', 0, 0, GetUnitFacing(.cas))
            SetUnitPathing(.fire[i], false)
            SetUnitX(.fire[i], x)
            SetUnitY(.fire[i], y)
            SetUnitFlyHeight(.fire[i], GetUnitFlyHeight(.cas), 0.)

            exitwhen i == 5
            i++
        endloop
    endmethod
    
    method rof_set_position takes nothing returns nothing
        local real x = 0.
        local real y = 0.
        local integer i = 0

        loop
                x = 10.*Cos(GetUnitFacing(.cas)*0.01745)
                y = 10.*Sin(GetUnitFacing(.cas)*0.01745)
                Debug(R2S(y)+"  "+R2S(10.*Sin(GetUnitFacing(.cas)*0.01745)))
                SetUnitX(.fire[i], GetUnitX(.fire[i])+x)
                SetUnitY(.fire[i], GetUnitY(.fire[i])+y)
          
            exitwhen i == 5
            i++
        endloop
    endmethod

endstruct
Не пойму, почему переменная Y возвращает 0, в то время как 10.*Sin(GetUnitFacing(.cas)*0.01745) равно -10 (фейсинг есть 270). С переменной Х все впорядке, если ставлю фейсинг 0 - смещение происходит и значение возвращается соответсвенное. Кажется у меня тут где-то тупая ошибка, но я ее не вижу..

Отредактировано Vampirrr, 23.08.2011 в 13:01.
Старый 23.08.2011, 12:39
Doc

offline
Опыт: 63,163
Активность:
Потрясающая помесь сжасса с жассом.
И да, выложи карту.
Старый 23.08.2011, 13:53
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Doc, мм.. Я считаю, что это удобней, чем писать сеты, колы и i = i+1 =)
Кстати, нашел проблему: после
x = 10.*Cos(GetUnitFacing(.cas)*0.01745)
стоял комментарий
//*Sin(a*0.01745329)
Судя по всему "//*" косячит.
Старый 23.08.2011, 14:31
Закрытая тема

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

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

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

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



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