|
3D-программирование Вопросы, касающиеся программирования 3D мира |
09.09.2007, 22:28
|
#1
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Вопросы по синтаксису языка BlitzBasic
[blitz]
If GM\name = "фриц" U\mesh = CopyEntity GM\Mesh; еслиимямодели - "фриц" то копируем мешвюнита.
[/blitz]
Запускаю, ругается:
Expecting variable assignment
|
Уж и не знаю, в чём дело
Помогите, может, туплю не по-детски, но всё равно просьба ногами не бить, я только учусь
Кстати вот код типов, всё с комментариями:
[blitz]
TypeGameModel; Тип, вкоторомхранитсяигроваямодель + еёназвание.
Field Mesh; Самамоделька, собственно
Fieldname$ ; Имямодели
EndType
Type unit ; Очень ёмкое понятие. Пока что и в основном это враги,
; но также могут быть и здания, и всё другое что атакует и что можно убить.
Field HP = 100 ; Единицы здоровья. Куды ж без этого?
Field Mesh ; моделька юнита.
Field status$ = "идёт к цели" ; статус бота. По нему программа определит, как анимировать модель и какие действа выполнять
Field anim_status$ = "нифига не делает" ; статус анимации бота, указывает, как в данный момент анимирована модель.
Field speed# = 0 ; скорость бега бота (он не стартует с места сразу, а немного "разгоняется", по сему нужна эта переменная)
Field target.target ; цель, к которой бежит бот, котоая описана в отдельном типе (хз, а может ещё и не описана - всё времени нету прогу писать)
Field Kind$ = "фриц" ; тип монстра (бота), в данном случае - "фриц"
End Type ; вроде для юнитов на данном этапе всё.
[/blitz]
|
(Offline)
|
|
09.09.2007, 22:33
|
#2
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
А ты определял GM и U как указатели к типам? (Кстати, разве можно присавивать значения прямо в описание филдов?!). Выложи весь код (Не сопру!)
|
(Offline)
|
|
09.09.2007, 22:40
|
#3
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то руга
Сообщение от Michael
А ты определял GM и U как указатели к типам? (Кстати, разве можно присавивать значения прямо в описание филдов?!). Выложи весь код (Не сопру!)
|
Кода у меня уже очень много, покажу функцию, в которой я копирую меш:
[blitz]
Function Create_Unit() ; Создаёт юнита в игре. В функцию нужно передать цель бота. (или не надо...)
U.unit = New unit ; Создаём новый элемент типа "юнит"
U\HP = 100 ; Устанавливает здоровье юнита на сотню!
For GM.GameModel = Each GameModel ; перебираем все загруженные модели
If GM\name = "фриц" U\mesh = CopyEntity GM\Mesh ; если имя модели - "фриц" то копируем меш в юнита.
Next
; U\target = target ; ставим боту цель, которая была передана в функцию ПОКА НЕ СТАВИМ
End Function ; Кажись, всё.
[/blitz]
Но если нужно, могу дать и весь исходник с ресурсами.
|
(Offline)
|
|
09.09.2007, 23:01
|
#4
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
U.unit = New unit
__________________
|
(Offline)
|
|
09.09.2007, 23:21
|
#5
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
tormoz, дело в том, что я при копировании кода из Блитза в сообщение использовал ИЕ7 т.к. он сохраняет разноцветный синтаксис. Однако, он почему-то "зохавал" некоторые пробелы (знаю, звучит нереально, но всё же), мне их пришлось вставлять заново, кое где пропустил, как в этом случае. В коде у меня все пробелы на месте, даже в сообщении видно, что слово New выделено синеньким, а Unit - белым.
Впредь буду Оперу юзать - она пробелы никогда не теряет..
Ну что, кто нибудь знает решение проблемы?
|
(Offline)
|
|
09.09.2007, 23:25
|
#6
|
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Belamore
я цвет и шрифт подправил а то уж слишком сильно давило на глаза
подправь тогда и пробелы
|
|
|
09.09.2007, 23:41
|
#7
|
Нуждающийся
Регистрация: 22.07.2006
Сообщений: 50
Написано 6 полезных сообщений (для 19 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Аргументы к функциям, которые возвращают какие-либо значения нужно писать в скобках!
U\mesh = CopyEntity(GM\Mesh)
|
(Offline)
|
|
11.09.2007, 18:58
|
#8
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Frank, спасибо, помогло!
Теперь другой вопрос.
Пытаюсь проверить существование в филде бота цели:
[blitz] If bot\target <> Null[/blitz]
Пишет:
Хотя типа цели существует:
[blitz] Type target ; Тип цели, к которой следует направлять ботов.
Field target_unit.unit ; целевой юнит, на который будет производиться атака либо другие манипуляции вроде заклинаний и т.п.
; либо если отсутствует целевой юнит будет создаваться меркер для атаки на него, если, например, надо атаковать просто землю
; я ещё не решил до конца, может, создам юнита-пустышку чтоб атаковать его без геморроя с маркерами.
Field action ; действие, которое будем применять к целевому юниту, будь то атака, либо заклинание.
End Type[/blitz]
Объясните, в чём дело? Извините, если вопрос тупой, но всё же мне нужна ваша помощь.
|
(Offline)
|
|
11.09.2007, 19:42
|
#9
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Так-с, с пердыдущим вопросом я разобрался...
Теперь новый:
[blitz]
Function CreateUnit() ; Создаёт юнита в игре. В функцию нужно передать цель бота. (или не надо...)
U.unit = New unit ; Создаём новый элемент типа "юнит"
U\HP = 100 ; Устанавливает здоровье юнита на сотню!
For GM.GameModel = Each GameModel ; перебираем все загруженные модели
If GM\name = "фриц" U\mesh = CopyEntity (GM\Mesh) ; если имя модели - "фриц" то копируем меш в юнита.
Next
Return U
[/blitz]
На строчке
Return U
Выдаёт тот самый
Разве нельзя возвращать созданный элемент типа?
|
(Offline)
|
|
11.09.2007, 19:55
|
#10
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
ыыы... возвращай что-то конкретное
Return U\mesh
|
(Offline)
|
|
11.09.2007, 20:06
|
#11
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Raiter, мне нужно именно возвратить целый элемент типа.
|
(Offline)
|
|
11.09.2007, 20:08
|
#12
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Зачем?
|
(Offline)
|
|
11.09.2007, 20:14
|
#13
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Raiter, чтобы потом к нему (элементу) можно было обратиться
|
(Offline)
|
|
11.09.2007, 20:27
|
#14
|
Нуждающийся
Регистрация: 23.02.2007
Сообщений: 65
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
Может хенндлами лехче было бы? )))
Сам недавно начал про них узнавать.
Конечно может я не прав, ну если я прав то форумчане-ветераны
тебе точно всё обьяснят.
|
(Offline)
|
|
11.09.2007, 20:32
|
#15
|
Оператор ЭВМ
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается
breadman, нельзя ли не так лаконично? Можно поподробнее про хендлы?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:42.
|