|
07.10.2011, 11:50
|
#1
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Как передать переменные типа в функцию
Нужно передать в функцию переменные типа и после изменения вернуть их.
Type bot
Field xbot
Field ybot
End Type
For b.bot=Each bot
Move(b\xbot,b\ybot)
Next
Function Move(x,y)
x=x+1
y=y+1
End Function
Перебор типа внутри функции не подходит.
Переменных больше чем в этом примере.
|
(Offline)
|
|
07.10.2011, 12:08
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Как передать переменные типа в функцию
For b.bot=Each bot
Move(b)
Next
Function Move(b.bot)
b\xbot=b\xbot+1
b\ybot=b\ybot+1
End Function
кажется как-то так.
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
10.10.2011, 11:44
|
#3
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Как передать переменные типа в функцию
Еще вопрос.
Как сделать эту функцию универсальной, чтобы можно было в ней передать любой тип.
Например типы bot и bot1 имеют много не одноименных переменных
Но есть и одноимённые, с ними и надо произвести действия
Type bot
Field privet
Field poka
Field id
End Type
Type bot1
Field kino
Field doroga
Field id
End Type
For b.bot=Each bot
Move(b)
Next
For a.bot1=Each bot1
Move(a)
Next
Function Move(???)
??? нужно изменить id
End Function
|
(Offline)
|
|
10.10.2011, 11:56
|
#4
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Как передать переменные типа в функцию
Например (в частности, если не хочешь просто описать различных ботов одним типом), создать прослойку типа
type unibot
field b1.bot
field b2.bot
end type
или
type unibot
field BotHandle%
field BotType%
end type
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
10.10.2011, 12:09
|
#5
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Как передать переменные типа в функцию
Сделай дополнительный общий тип для хранения передаваемых данных.
;общие данные
Type id_data
Field id
;другие общие данные
End Type
Type bot
Field privet
Field poka
Field id.id_data
End Type
Type bot1
Field kino
Field doroga
Field id.id_data
End Type
For b.bot=Each bot
Move(b\id)
Next
For a.bot1=Each bot1
Move(a\id)
Next
Function Move(m.id_data)
m\id = 8 ;задаем новое значение
;m\(другие значения) - меняем другие общие значения
End Function
p.s. пока писал, impersonalis предложил ещё два других варианта, всего теперь три разных решения
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо RBK за это полезное сообщение:
|
|
10.10.2011, 12:59
|
#6
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Как передать переменные типа в функцию
отнаследуй от общего типа bot. ах да, это же блиц((
|
(Offline)
|
|
Эти 8 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
10.10.2011, 13:03
|
#7
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Как передать переменные типа в функцию
Угу, в бмаксе это тоже есть.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
12.10.2011, 05:10
|
#8
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Как передать переменные типа в функцию
Еще вопрос, уже не по теме, чтоб не делать новую пишу сюда.
Нужно ли перед командами
приравнивать все переменные нулю.
Если это меш или картинка, то все понятно (надо удалить)
А если это просто число?
|
(Offline)
|
|
12.10.2011, 07:32
|
#9
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Как передать переменные типа в функцию
Поидее не надо ибо это все хранится в типе, а командой Delete b мы удаляем все это дело, а вот картинки и меши надо отдельно удалять ибо они хранятся в памяти, а в типе на них только ссылки.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.10.2011, 15:08
|
#10
|
Нуждающийся
Регистрация: 27.08.2010
Адрес: Лен. область
Сообщений: 58
Написано 21 полезных сообщений (для 50 пользователей)
|
Ответ: Как передать переменные типа в функцию
Извиняюсь, что вмешиваюсь в разговор) Но меня давно интересует вопрос:
Если удалять только родительский объект (с помощью FreeEntity), то дочерние объекты удалятся из памяти?
Или нужно всетаки удалять каждый объект поотдельности?
|
(Offline)
|
|
24.10.2011, 15:27
|
#11
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Как передать переменные типа в функцию
удаляются
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:04.
|