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

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

Закрытая тема
 
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Как изучать структуры?
Вот добрался до структур. До этого момента изучение Jass казалось мне довольно таки не сложным занятием, но вот тут я повис. Прошу помочь.
Мне бы не помешала пара статей о структурах, или хорошие люди, которые могу объяснить основы. Из учебников знаю только vJassManual. Перечитывал его раз –цать, информации там маловато. Может, у кого в закромах завалялась статья, другая…
Что именно мне нужно.
  1. Общая информация о структурах, область их применения, степень полезности.
  2. Как переносить данные из одной функции в другую при помощи структур.
  3. Небольшой пример использования структур.
Буду очень признателен.
Старый 25.11.2008, 14:01
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
ну вроде это в раздел джаса надо...
Вобще в папке с джас-хелпером есть мануал на англ, но как я понял перевод сделан именно оттуда, а вобще там вроде все основное написано
Старый 25.11.2008, 14:17
zer0ne

offline
Опыт: 11,219
Активность:
Старый 25.11.2008, 14:24
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Точно. Ты прав, с разделом я ошибся. Думаю, это поправимо. Больше так не буду.

Линкольн 6 Эхо добавил:
Цитата:
http://xgm.guru/forum/showthread.php?t=18742 - тут все есть

Это я читал. Можно что-нибудь ещё? Мне главное основные методы узнать. Я обучаемый, разберусь.
Старый 25.11.2008, 14:29
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Вот здесь http://xgm.guru/forum/attachment.php?attachmentid=31989 перевод мануала ОфыыТуцПут JassNewGen - в нем можно многое почитать. Если что будет непонятно - с вопросами в раздел JASS
Старый 25.11.2008, 14:31
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Так, я же написал: «…Из учебников знаю только vJassManual. Перечитывал его раз –цать…». А можно эту тему перенести в раздел «Jass»? Будет не очень удобно создавать для каждого вопроса отдельную тему.
Старый 25.11.2008, 14:51
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Вопрос о полезности структур начнет холивар. Погугли "функциональное программирование vs ООП". Я считаю, что полезность vJass не сводится к свободным глобалкам, а основная соль как раз в структурах. Не зря же Векс начал переписывать CS на vJass.
Старый 25.11.2008, 14:58
Лось

offline
Опыт: 7,223
Активность:
Посмотри Стомп спелл там стриктура аттачится на таймер с помощью XAT.
Что имеено тебе не ясно нащёт структур?
Старый 25.11.2008, 15:55
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Цитата:
основная соль как раз в структурах

Полностью согласен. Именно поэтому мне и нужно их вызубрить. В целом это труда не составляет, но мне нужны базовые знания, на которые можно опираться.
Старый 25.11.2008, 15:58
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Вот еще пример, но уже с ABC.
Старый 25.11.2008, 16:53
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Линкольн 6 Эхо, задай конкретные вопросы, которые тебе непонятны - мы на них ответим =)
Старый 25.11.2008, 17:11
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Хорошо. Первое. Как переносить данные из одной функции в другую при помощи структур?

Линкольн 6 Эхо добавил:
И еще, хотелось бы уточнить, что значит это строка.
Код:
integer $s$_tmp=0
Старый 25.11.2008, 17:44
zer0ne

offline
Опыт: 11,219
Активность:
Цитата:
Как переносить данные из одной функции в другую при помощи структур?

По всем ссылкам приведенным выше можно это узнать, даже Лось так немного описал
Цитата:
стриктура аттачится на таймер с помощью XAT.
Старый 25.11.2008, 17:46
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Код:
struct point
  real x
  real y
endstruct

function Offset takes point p, real dx, real dy returns nothing
   set p.x = p.x + dx
   set p.y = p.y + dy
endfunction

...
local point p
set p.x = 4.
set p.y = 5.
call Offset(p,3,5)
...

point - точка, функция передвигает её на определенный оффсет по иксу и по игреку

Van Damm добавил:
вжассовые структуры - не зло, там весьма неплохо организовано если не юзать излишеств
Старый 25.11.2008, 17:49
Линкольн
Barg Ent.
offline
Опыт: 4,812
Активность:
Van Damm. Т.е. почти как в простых фун-ях.
Я еще не достиг той степени просветления, что бы судить, зло структуры или нет, но я их все ровно изучу.
Старый 25.11.2008, 18:10
ShadoW DaemoN

offline
Опыт: 36,798
Активность:
Линкольн 6 Эхо, это часть текстового макроса (textmacro). Пример использования тут.

Структуры - хорошая штука, для аллокации/деллокации выбран наиболее эффективный алгоритм.

Отредактировано ShadoW DaemoN, 26.11.2008 в 13:56.
Старый 25.11.2008, 18:14
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Цитата:
Это делать нуно методами.

Jon это было чисто для демонстрации что такое структура и как её юзать. Не хотелось сразу усложнять методами чтобы человек понял - просто в голову с ходу не пришло другого примера :/

Отредактировано ShadoW DaemoN, 26.11.2008 в 13:55.
Старый 25.11.2008, 18:31
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
Я считаю, что полезность vJass не сводится к свободным глобалкам, а основная соль как раз в структурах.

считаю с точностью до наоборот

Цитата:
и? величина кода и длины названий функции никак невлияют на производительность,

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

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

Отредактировано ShadoW DaemoN, 26.11.2008 в 13:57.
Старый 25.11.2008, 19:18
user_jasser

offline
Опыт: 232
Активность:
Линкольн 6 Эхо что бы быстрей понять мало читать одну инфу надо практиковаться, делая ошибки и исправляя их ... начни с простых примеров.
Старый 25.11.2008, 21:12
adic3x

offline
Опыт: 108,439
Активность:
возращаясь к сабжу скажу, что структуры в вЖасс - просто форма работы с паматью, попытка сделать динамическу юпамять (причем довольно успешная)

к примеру простойшая структура - точка, имеет трех мемберов - три флоата, соотв каждой координате, т.е.

Код:
struct xyz
 real z
 real y
 real z
endstruct


теперь мона написать

Код:
local xyz cord=xyz.create() // создать новый обьект
 set cord.x=1. // присвоить что то
 set cord.y=2.
 set cord.z=100500.
 call MyFunc(cord) // передать в функцию хендл обьекта
 call cord.destroy() // удалить обьект

Отредактировано ShadoW DaemoN, 26.11.2008 в 13:58.
Старый 26.11.2008, 11:21
Закрытая тема

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

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

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

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



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