Как работать с Типами

Предыдущая тема Следующая тема Перейти вниз

Как работать с Типами

Сообщение  Bagamut в Пт Май 14, 2010 12:40 pm

Всем жителям форума привет!

В программировании я совсем недавно, поэтому не судите строго. До Freebasic, я работал с Blitz3D, DarkBasic Pro, GLBasic и thinBasic (один из лучших бейсиков на мой взгляд).

В общем вопрос мой в следующем: у меня есть простейший код на Blitz3D по работе с типами и мне нужно его переписать в FreeBasic код, если быть точнее меня интересует несколько строк:

Пример кода на Blitz3D:
Код:

Type Monstr ; Создаю тип Monstr
  Field number ; Создаю в списке элемент number (номер)
End Type

; Дальше создаю 10 объектов типа Monstr и присваиваю им номера
For i=0 to 10
  enemy.Monstr = New Monstr
  enemy\number = i
Next

; А теперь, собственно то, что меня больше всего интересует
; Как во FreeBasic обращаться ко всем элементам одного типа???
For enemy.Monstr = Each Monstr
  enemy\number = enemy\number +1
Next

End

В общем во FreeBasic мне нужна команда, являющаяся аналогом команды "For enemy.Monstr = Each Monstr". Если кто знает отзовитесь. Заранее благодарю.
avatar
Bagamut

Сообщения : 10
Дата регистрации : 2010-05-14
Возраст : 28
Откуда : Мурманск

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как работать с Типами

Сообщение  Саня в Пт Май 14, 2010 2:03 pm

вроде как-то так:
Код:

 Type Monster                                              ' Тип Monster
    Dim Number as uinteger
    Dim NextMonster as Monster Ptr                  'Создаем указатель на следующий объект
      Declare constructor ()                              ' Объявление конструктора объекта
 End Type

constructor Monster()
    NextMonster=0                               
/'благодря этому,при появлении нового объекта
NextMonster всегда будет равен нулю
'/
End Constructor
dim FirstMonster as Monster ptr =New Monster    'создаем первый объект и  получаем ссылку на него
Enemy.Monster= FirstMonster                          /' это для счетчика, потому, что после первого цикла указатель
  на первый элемент списка не сохранится
'/
  for i=0 to 10
 Enemy.Monster->Number =i
 /'присваиваем номер; если Enemy.monster - указатель на объект, то
 к полям обращаемся через "->", иначе через "."'/

 Enemy.Monster->NextMonster=New Monster
 /'создаем новый объект; указатель на него,помещаем в NextMonster,
 таким образом мы сможем пройти по списку'/

 Enemy.Monster= Enemy.Monster->NextMonster
  next

do
FirstMonster->Number+=1 'увеличиваем номер
FirstMonster= FirstMonster->NextMonster  ' идем дальше по списку
loop while FirstMonster        'делать пока есть указатели на объекты, иначе в FirstMonster ноль и происходит выход из цикла

avatar
Саня

Сообщения : 65
Дата регистрации : 2010-04-28
Возраст : 23
Откуда : Екатеринбург

Посмотреть профиль http://vkontakte.ru/id30561430#/id57547166

Вернуться к началу Перейти вниз

Re: Как работать с Типами

Сообщение  Bagamut в Пт Май 14, 2010 3:31 pm

Саня пишет:вроде как-то так:
Код:

 Type Monster                                              ' Тип Monster
    Dim Number as uinteger
    Dim NextMonster as Monster Ptr                  'Создаем указатель на следующий объект
      Declare constructor ()                              ' Объявление конструктора объекта
 End Type

constructor Monster()
    NextMonster=0                               
/'благодря этому,при появлении нового объекта
NextMonster всегда будет равен нулю
'/
End Constructor
dim FirstMonster as Monster ptr =New Monster    'создаем первый объект и  получаем ссылку на него
Enemy.Monster= FirstMonster                          /' это для счетчика, потому, что после первого цикла указатель
  на первый элемент списка не сохранится
'/
  for i=0 to 10
 Enemy.Monster->Number =i
 /'присваиваем номер; если Enemy.monster - указатель на объект, то
 к полям обращаемся через "->", иначе через "."'/

 Enemy.Monster->NextMonster=New Monster
 /'создаем новый объект; указатель на него,помещаем в NextMonster,
 таким образом мы сможем пройти по списку'/

 Enemy.Monster= Enemy.Monster->NextMonster
  next

do
FirstMonster->Number+=1 'увеличиваем номер
FirstMonster= FirstMonster->NextMonster  ' идем дальше по списку
loop while FirstMonster        'делать пока есть указатели на объекты, иначе в FirstMonster ноль и происходит выход из цикла


Да на FreeBasic по сложнее будет, чем на Blitz3D, но в принципе не очень. Попробую этот способ в связке с Ninfa3D Engine. Спасибо за пример.

Тема открыта, если есть более простые способы обращаться к элементам типа, жду предложений.
avatar
Bagamut

Сообщения : 10
Дата регистрации : 2010-05-14
Возраст : 28
Откуда : Мурманск

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как работать с Типами

Сообщение  Vicmad в Вт Июн 01, 2010 8:56 pm

Я тоже с Блица на бейсик перейти пытаюсь. С нинфой пока не получилось, там камера недоделана.
avatar
Vicmad

Сообщения : 14
Дата регистрации : 2010-01-08

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Как работать с Типами

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения