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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 09.09.2007, 22:28   #1
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Вопросы по синтаксису языка BlitzBasic

[blitz]
If
GM\name = "фриц" U\mesh = CopyEntity GM\Mesh; еслиимямодели - "фриц" то копируем мешвюнита.
[/blitz]

Запускаю, ругается:

Expecting variable assignment
Уж и не знаю, в чём дело

Помогите, может, туплю не по-детски, но всё равно просьба ногами не бить, я только учусь

Кстати вот код типов, всё с комментариями:

[blitz]
Type
GameModel; Тип, вкоторомхранитсяигроваямодель + еёназвание.
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
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

А ты определял GM и U как указатели к типам? (Кстати, разве можно присавивать значения прямо в описание филдов?!). Выложи весь код (Не сопру!)
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 22:40   #3
Belamore
Оператор ЭВМ
 
Регистрация: 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
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

U.unit = Newunit
U.unit = New unit
__________________
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 23:21   #5
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

tormoz, дело в том, что я при копировании кода из Блитза в сообщение использовал ИЕ7 т.к. он сохраняет разноцветный синтаксис. Однако, он почему-то "зохавал" некоторые пробелы (знаю, звучит нереально, но всё же), мне их пришлось вставлять заново, кое где пропустил, как в этом случае. В коде у меня все пробелы на месте, даже в сообщении видно, что слово New выделено синеньким, а Unit - белым.
Впредь буду Оперу юзать - она пробелы никогда не теряет..

Ну что, кто нибудь знает решение проблемы?
(Offline)
 
Ответить с цитированием
Старый 09.09.2007, 23:25   #6
jimon
 
Сообщений: n/a
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Belamore
я цвет и шрифт подправил а то уж слишком сильно давило на глаза
подправь тогда и пробелы
 
Ответить с цитированием
Старый 09.09.2007, 23:41   #7
Frank
Нуждающийся
 
Аватар для Frank
 
Регистрация: 22.07.2006
Сообщений: 50
Написано 6 полезных сообщений
(для 19 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Аргументы к функциям, которые возвращают какие-либо значения нужно писать в скобках!
U\mesh = CopyEntity(GM\Mesh)
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 18:58   #8
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Frank, спасибо, помогло!
Теперь другой вопрос.
Пытаюсь проверить существование в филде бота цели:

[blitz]If bot\target <> Null[/blitz]

Пишет:
Illegal type conversion!
Хотя типа цели существует:

[blitz]Type target ; Тип цели, к которой следует направлять ботов.
Field target_unit.unit ; целевой юнит, на который будет производиться атака либо другие манипуляции вроде заклинаний и т.п.
; либо если отсутствует целевой юнит будет создаваться меркер для атаки на него, если, например, надо атаковать просто землю
; я ещё не решил до конца, может, создам юнита-пустышку чтоб атаковать его без геморроя с маркерами.
Field action ; действие, которое будем применять к целевому юниту, будь то атака, либо заклинание.
End Type
[/blitz]

Объясните, в чём дело? Извините, если вопрос тупой, но всё же мне нужна ваша помощь.
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 19:42   #9
Belamore
Оператор ЭВМ
 
Регистрация: 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
Выдаёт тот самый
Illegal type conversion!
Разве нельзя возвращать созданный элемент типа?
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 19:55   #10
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

ыыы... возвращай что-то конкретное

Return U\mesh
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 20:06   #11
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Raiter, мне нужно именно возвратить целый элемент типа.
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 20:08   #12
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Зачем?
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 20:14   #13
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Raiter, чтобы потом к нему (элементу) можно было обратиться
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 20:27   #14
breadman
Нуждающийся
 
Регистрация: 23.02.2007
Сообщений: 65
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

Может хенндлами лехче было бы? )))
Сам недавно начал про них узнавать.
Конечно может я не прав, ну если я прав то форумчане-ветераны
тебе точно всё обьяснят.
(Offline)
 
Ответить с цитированием
Старый 11.09.2007, 20:32   #15
Belamore
Оператор ЭВМ
 
Регистрация: 23.07.2007
Сообщений: 42
Написано 0 полезных сообщений
(для 0 пользователей)
Re: При попытке копирования Ентити из филда одного типа в другой блиц почему-то ругается

breadman, нельзя ли не так лаконично? Можно поподробнее про хендлы?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка ссылки на ентити, на содержание ентити. Baisangur 3D-программирование 2 25.05.2009 22:52
Ошибка при попытке компиляции любого кода. klopmaks C++ 15 19.05.2009 19:11
Lib_canvas - библиотека для поворачивания изображений, копирования части экрана... Kurdt Библиотеки 42 06.01.2009 23:57
EntityDistance между обьектами одного типа IGR 3D-программирование 8 09.10.2007 14:25
Столкновение обьектов из одного типа Atomikc 2D-программирование 2 21.05.2007 18:36


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


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