Показать сообщение отдельно
Старый 20.02.2011, 09:43   #57
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Пытаюсь писать свой пользовательский тип с функциями и методами. При компиляции, если я обратился к функции CreateBattleCharacter, выдает Attempt to access field or method of Null object на строчке
bchar_list.AddLast bchar
Если не трудно, подкиньте идею, где может быть косяк. Сам код:
Global bchar_list:TList = New TList
Global bchar_list_count:Int
Type TBattleCharacter
  Field model:Int, anim_mesh:Int
  Field selected:Byte
  Field name:String
  Field level:Int, life:Int, life_max:Int

 
  ' Создание персонажа
  Function CreateBattleCharacter:TBattleCharacter(variant:String, selected:Byte, level:Int, life:Int)
    Select variant
  	  Case "player"
        Local bchar:TBattleCharacter = New TBattleCharacter

        ' Определение переменных
        bchar.selected = selected
	    bchar.level = level

        ' Определение постоянных
        bchar.name = variant

        ' Определение параметров
        bchar.life_max = 60 + bchar.level * 27
        bchar.life = life
        If bchar.life > bchar.life_max
          bchar.life = bchar.life_max
        ElseIf bchar.life < 1
          bchar.life = 1
        EndIf

        ' Загрузка моделей
        bchar.model = xCreateCube()
        xScaleMesh bchar.model, 5, 14, 5
        xEntityAddBoxShape bchar.model, 10

        bchar_list.AddLast bchar
        bchar_list_count:+1
    End Select
  End Function

  ' Обработка персонажа
  Method Update()
    If selected = 1 Then MouseLook(model)
  End Method

End Type
End
(Offline)
 
Ответить с цитированием