Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 03.01.2011, 02:34   #1
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
начать перебор не с первого элемента

Есть цикл For ent.Entity= each entity
он должен остановится в какой то момент
записать последний entity и в следующий раз попадая на этот цикл начать перебор с entity на котором он остановился в последний раз. Такое ощущение что это просто и часто используется.
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 03:29   #2
Ky3R_94
Нуждающийся
 
Аватар для Ky3R_94
 
Регистрация: 29.08.2009
Адрес: Україна, Донецьк
Сообщений: 71
Написано 13 полезных сообщений
(для 45 пользователей)
Ответ: начать перебор не с первого элемента

Через Handle по идее нужно делать

Ну или введи дополнительное поле(ID например), если ещё с handle не работал. Так легче понять, по-моему.
При проходе цикла при выполнении данного условия (в тот самый "какой то момент") присваиваешь какой-либо временной переменной значение ID твоего объекта. И введи дополнительное условие в свой цикл, например
Есть цикл For ent.Entity= each entity
If ent\id>current_id then
.
.
.
end
next
Должно работать)
__________________
PC: AMD Phenom x4, 4096 MB RAM, Nvidia GeForce 9600GT, Windows Vista
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 04:02   #3
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Ответ: начать перебор не с первого элемента

Да точно, хендлы, вспомнил)) Спс)
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 18:52   #4
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: начать перебор не с первого элемента

Какие нафиг хендлы
Local z.y
...
начало_главного_цикла
...
For x.y = Each y
If z<>Null Then x=z
...
Next
z = x
...
конец_главного_цикла
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Crayzi (03.01.2011)
Старый 03.01.2011, 21:08   #5
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от DeeJex Посмотреть сообщение
Какие нафиг хендлы
оО, ты чё, Хендлы сила, если умееш пользоватся командами After,Type, New, Before, First, Last, Each, Insert, Delete,Handle и Object (позволяет сразу-же перейти типу с заданным хендлом)...
В его случае надо создать глобалку в которой будет хранится последний хендл и тот на котором он закончил поиск и далее спомощью пары манипуляций начинать перебор сразу с того места где он его закончил. Вот представь что у него в типе 2 000 объектов, добавилось 2, и изза этих 2-х перебирать все 2 002 объекта и проводить сравнение не разумно!
в его случае надо чёт типо такого:
 Graphics 800,600,32,2


  Global HdlTec,HdlMax,Ft=CreateTimer(10)
   Type Buliga
      Field HP
   End Type
  CrBuligs(5)
   For OoO.Buliga = Each Buliga
      HdlTec=Handle(OoO)
      OoO\HP=Rand(1,100)
   Next
Repeat
   WaitTimer(Ft)
   If HdlTec<HdlMax
      While Not HdlTec=HdlMax
         jjj.Buliga=Object.Buliga(HdlTec)
         jjj = After jjj
         If Handle(jjj)
            HdlTec=Handle(jjj)
            jjj\HP=Rand(1,100)
         EndIf
      Wend
   Else 
   CrBuligs(2)
   Print HdlMax
   Print HdlTec
   EndIf
   
If KeyHit(1) Then Quit=True
Until Quit
Function CrBuligs(Count%)
 Local bbb
 For bbb=1 To Count%
    NewBulg.Buliga=New Buliga
    HdlMax=Handle(NewBulg)
    NewBulg\HP=100
 Next
End Function
Перебор не с первого элемента находится в цикле Repeat>Until.
Сообщение от CRASHER Посмотреть сообщение
Такое ощущение что это просто и часто используется.
Ну как бы сказать, это используется часто, особенно если делаеш сервер)))(ну в моем случае), но там если допускаеш ошибку то долго ее искать, поэтому иногда это сложно)
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 21:28   #6
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: начать перебор не с первого элемента

Думаешь я не знаю как Handle и Object работают?! Сравни мой и свой код. Нахера интовые хэндлы, если переменные пользовательского типа И ЕСТЬ ХЭНДЛЫ НА ОБЪЕКТЫ, блджад. Твой код будет работать гораздо медленнее.
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 21:34   #7
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от DeeJex Посмотреть сообщение
Думаешь я не знаю как Handle и Object работают?! Сравни мой и свой код. Нахера интовые хэндлы, если переменные пользовательского типа И ЕСТЬ ХЭНДЛЫ НА ОБЪЕКТЫ, блджад. Твой код будет работать гораздо медленнее.
Твой код будет выигрывать при количестве объектов в типе до сотни, а мой рассчитан на большое количество...
+ он просил функцию чтобы перебор щел с того момента де он закончил.
П.с. И как понимать фразу "интовые хендлы"?
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 21:43   #8
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: начать перебор не с первого элемента

+ он просил функцию чтобы перебор щел с того момента де он закончил.
А я по-твоему что написал? Ты просто не понимаешь как работает мой код.
Твой код будет выигрывать при количестве объектов в типе до сотни
Клевета.
П.с. И как понимать фразу "интовые хендлы"?
Инт - целочисленный. Handle даёт порядковый номер объекта и тратит на это время. А переменные пользовательсокого типа содержат адрес участка памяти.
Local z.y ;Объявляем переменную z типа y
...
начало_главного_цикла
...
For x.y = Each y ;Цикл для x типа y
If z<>Null Then x=z ;Если z - это объект, Тогда идентификатор цикла x = z
...
Next
z = x ;z приравнивается x, когда выходим из цикла
...
конец_главного_цикла
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Crayzi (03.01.2011)
Старый 03.01.2011, 21:56   #9
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от DeeJex Посмотреть сообщение
Ты просто не понимаешь как работает мой код.
Мои извенения, я просто не увидел как ты там все организовал, я просто подумал что у тя там обычный перебор со сравнениями)) а оказалось... то чего я незнал)
Блин, понял что делает, но никак не догоню как работает...
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 22:04   #10
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от Crayzi Посмотреть сообщение
Ну как бы сказать, это используется часто, особенно если делаеш сервер)))
малята, писать сервер на блице это страшная ересь. есть технологии специально для этого предназначенные.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
Crayzi (05.07.2011), falcon (04.01.2011), moka (04.01.2011)
Старый 03.01.2011, 22:07   #11
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от ffinder Посмотреть сообщение
малята, писать сервер на блице это страшная ересь. есть технологии специально для этого предназначенные.
Те технологии надо изучать, и явно не в одиночку, а сервер на блитце, согласен ересь) но на более я на данный момент не способен
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 22:11   #12
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от Crayzi Посмотреть сообщение
Те технологии надо изучать, и явно не в одиночку, а сервер на блитце, согласен ересь) но на более я на данный момент не способен
Отмазки
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо baton4ik за это полезное сообщение:
ABTOMAT (04.01.2011), Crayzi (03.01.2011)
Старый 03.01.2011, 22:13   #13
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от baton4ik Посмотреть сообщение
Отмазки
Просто не хочу еще год убить на самообучение этим самым технологиям, о которых я даже незнаю, чтобы написать то что я за год закончу...
(Offline)
 
Ответить с цитированием
Старый 03.01.2011, 22:15   #14
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: начать перебор не с первого элемента


Хочешь сделать нормальный сервер? Лень учить всякие сиплюсплюсы? Бери PureBasic, синтаксис почти такой же, производительность гораздо выше.
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 04.01.2011, 00:28   #15
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: начать перебор не с первого элемента

Сообщение от DeeJex Посмотреть сообщение

Хочешь сделать нормальный сервер? Лень учить всякие сиплюсплюсы? Бери PureBasic, синтаксис почти такой же, производительность гораздо выше.
Я не говорил что лень, я уже много раз пытался разобратся в том же С++, но он мне не дается потому что там нет такой хорошей справки как в Блитз, где даны конкретные ответы и примеры использования функций, а не тупо описание вот ваша первая программа, выводит в маленькое окошко дэбильную надпись "Hello World", я такое и на ассемблере могу сделать, который посложнее будет, только наф?
В блитзе мне нравится не его простота, а то что про него много хороших мануалов.
П.с. За совет насчет пуре басика спс, попробую погуглить по нему. В нем либы подключаются так-же как и в блитзе? Будут ли там работать wrapper-ы для билтза?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (04.01.2011)
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:59.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com