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

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

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

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 09.11.2007, 18:19   #61
Bagration
Знающий
 
Регистрация: 05.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: FAQ по B3D

У меня вопрос по FastImage, на счет команды RectsOverlap, пашет то она пашет, но увы коряво. Просто паловина изображение по x координате просто не проверяется... что делать? Или у FastImage есть свои способы проверки столкновения имеджов. ImageRectOverlap не пашет. Так как, как я понел тип изображений FastImage не поддерживается этой командой.
Заранее спасибо!
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 18:48   #62
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: FAQ по B3D

половина... хм.. это наводит на мысль что x и y координаты- это центр имаджа.
__________________
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 18:52   #63
Bagration
Знающий
 
Регистрация: 05.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Вопрос Re: FAQ по B3D

Сообщение от dimanche13
половина... хм.. это наводит на мысль что x и y координаты- это центр имаджа.
То есть?
RectsOverlap(mx,my,1,1,x,y,257,47)
mx и my координаты курсора, 1,1 ширина и длина курсора, x,y коодинаты рисунка, 257,47 ширина и длина, просто с обычными имажами проблем нет, а вот FastImage...
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 19:28   #64
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 772 пользователей)
Re: FAQ по B3D

У тебя картинка похоже создана с флагом автоматического центрирования. ПОэтому у тебя координаты кортинки не в в левом верхнем углу, а в центре. Просто подставь значения правильные.
(Offline)
 
Ответить с цитированием
Старый 11.11.2007, 14:09   #65
Bagration
Знающий
 
Регистрация: 05.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: FAQ по B3D

Спасибо всем кто вызвался помочь мне с Rects-ами в FastImage. Оказывается все было просто, надо было просто скачать апдейт либы 1.6, тама уже есть команда на проверку сопрекосновения точки с имажой - TestImage. Вообщем всем ссори за беспокойство.
P.S. либа тут http://blitz.pp.ru/forum/showthread....=&pagenumber=1 в первом посту
(Offline)
 
Ответить с цитированием
Старый 01.12.2007, 14:31   #66
Bagration
Знающий
 
Регистрация: 05.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: FAQ по B3D

У меня вопрос: как сделать спрайт двухсторонним, что бы сделать иммитацию пули. А то спрайт имеет только одну сторону. Может есть какойто флаг? В справке я почитал вот это: "Вы будете видеть только одну сторону спрайта, если только не используете флажок EntityFX 16", но увы я таки не нашел где включить этот флаг.
P.S. у обоих сторон одна и таже картинка.
(Offline)
 
Ответить с цитированием
Старый 01.12.2007, 17:30   #67
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,784
Написано 1,176 полезных сообщений
(для 4,417 пользователей)
Re: FAQ по B3D

EntityFX entity,16
__________________
(Offline)
 
Ответить с цитированием
Старый 14.12.2007, 06:38   #68
NovICE
AnyKey`щик
 
Регистрация: 14.12.2007
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Re: FAQ по B3D

может кто-то знает. у меня такая проблема: создаю в 3ДМаксе 7.0 простую модельку, накладываю на нее скин, присоединяю кости и создаю анимацию автоматической расстановкой ключей (Автокей). затем экспортирую в формат .b3d. потом этот файл вставляю в Блитц. короче сама модель ходит в пространстве а вот самой анимации модели нет. в чем дело? помогите пжалста кто может и хочет)) заранее спасибо!
(Offline)
 
Ответить с цитированием
Старый 14.12.2007, 10:59   #69
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,418
Написано 3,438 полезных сообщений
(для 6,796 пользователей)
Re: FAQ по B3D

NovICE, найди у неё чайлд, самый первый обычно, это и есть сама модель. Когда ты грузишь как анимированную, получаеться ты грузишь пачку, поэтому анимировать нужно один из её чайлдов к которому прикреплен скелет, название обычно совпадает как в 3д максе.
Юзай FindChild, CountChildren, GetChild, EntityName функции для нахождения.
(Offline)
 
Ответить с цитированием
Старый 15.12.2007, 01:06   #70
avel
Бывалый
 
Аватар для avel
 
Регистрация: 11.10.2006
Сообщений: 737
Написано 131 полезных сообщений
(для 452 пользователей)
Re: FAQ по B3D

2NovICE то, что тебе уже посоветовали, плюс возожно при экспорте у тебя отсутствует анимация вертексов. проверь правильность расстановки всех галочек... и опиши подробнее как и что ты делаешь, поэтапно... тогда будет проще тебе помочь и найти ошибку.
(Offline)
 
Ответить с цитированием
Старый 15.12.2007, 21:24   #71
Alex_Noc
Разработчик
 
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений
(для 289 пользователей)
Re: FAQ по B3D

Всем доброго времени суток!
Хотел задать вопрос который меня очень беспокоит -
- как лучше сделать анимированный обьект - например нам надо чтобы сфера подпрыгивала бесконечно : так что будет лучше - анимировать сам обьект или прикрутить к нему кость и анимироватькость.? Заранее благодарен за ответ!
(програмировать анимацию не предлагать)
(Offline)
 
Ответить с цитированием
Старый 15.12.2007, 22:21   #72
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,212
Написано 5,084 полезных сообщений
(для 14,720 пользователей)
Re: FAQ по B3D

Alex_Noc, ИМХО один кер.
Только если ты сделаешь просто объектом, то те нада будет делать примерно так:
Шар = LoadAnimMesh ("путь к модельге шара")
Animate Шар

А если костями, то

Animate FindChild (Шар, "имя объекта в максе")

второе ИМХО геморройнее,
хотя если заюзаешь кости, можно сделать, например, чтоб в прыжке шарик вытягивался, а при контакте с землёй сплющивался.


В общем, решай по своим потребностям.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 16.12.2007, 08:33   #73
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,418
Написано 3,438 полезных сообщений
(для 6,796 пользователей)
Re: FAQ по B3D

Только не:
Шар = LoadMesh ("путь к модельге шара")
А:
Шар = LoadAnimMesh ("путь к модельге шара")
(Offline)
 
Ответить с цитированием
Старый 16.12.2007, 08:45   #74
NovICE
AnyKey`щик
 
Регистрация: 14.12.2007
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Re: FAQ по B3D

PLEASE! HELP ME!
последую твоему совету Avel, и постараюсь объяснить все поконкретнее:
1. вот полный код:
strelki: LEFT, RIGHT - povorot, UP\DOWN - camera UP\DOWN
; A - vpered, Z - nazad
Graphics3D 800,600,32,2 
Global ssp# = .05
Type Player
Field entity,model
Field anim_speed#,player_y#
End Type
Type SmartCam
Field entity,camera,target, heading
End Type
 
Const TYPE_PLAYER=1, TYPE_TARGET=2, TYPE_WALL=3
Collisions TYPE_PLAYER,TYPE_WALL,2,2
Collisions TYPE_TARGET,TYPE_WALL,2,2
Global level,player_model
LoadGameObjects()
player.Player=CreatePlayer( 0,5,0 )
camera.SmartCam=CreateSmartCam( player\entity )
While Not KeyHit(1)
UpdateGame()
UpdateWorld
For c.SmartCam=Each SmartCam
UpdateSmartCam( c )
Next
RenderWorld 
Flip
Wend
End
;--------- Functions -------------
Function UpdateGame()
For p.Player=Each Player
UpdatePlayer( p )
Next
End Function
 
Function CreatePlayer.Player( x#,y#,z# )
p.Player=New Player
p\entity=CreatePivot()
p\model=CopyEntity( player_model,p\entity )
p\player_y=y
PositionEntity p\entity,x,y,z
EntityType p\entity,TYPE_PLAYER
EntityRadius p\entity,2
Return p
End Function
 
Function UpdatePlayer( p.Player )
 
If KeyDown(203) ;left/right
TurnEntity p\entity,0,5,0
Else If KeyDown(205)
TurnEntity p\entity,0,-5,0
EndIf
 
If KeyDown(30) ;forward
If p\anim_speed<=0
p\anim_speed=1.75
Animate p\model, 1, 1.5, 1, 10 
EndIf
MoveEntity p\entity,0,0,1
Else If KeyDown(44) ;back
If p\anim_speed>=0
p\anim_speed=-1.75
Animate p\model, 1, 1.5, 1, 10 
EndIf
MoveEntity p\entity,0,0,-1
Else If p\anim_speed ;stop animating
p\anim_speed=0
Animate p\model, 2, 1, 0, 10
EndIf
 
ty#=EntityY(p\entity)
y_vel#=(ty-p\player_y)
p\player_y=ty
y_vel=y_vel-.5
TranslateEntity p\entity,0,y_vel,0
 
End Function
Function CreateSmartCam.SmartCam( entity )
c.SmartCam=New SmartCam
c\entity=entity
c\camera=CreateCamera()
 
c\target=CreatePivot( entity )
PositionEntity c\target,0,5,-10
EntityType c\target,TYPE_TARGET
 
c\heading=CreatePivot( entity )
PositionEntity c\heading,0,0,20
Return c
End Function
Function UpdateSmartCam( c.SmartCam )
 
If KeyDown(200)
TranslateEntity c\heading,0,-3,0
Else If KeyDown(208)
TranslateEntity c\heading,0,+3,0
EndIf
 
dx#=EntityX(c\target,True)-EntityX(c\camera,True)
dy#=EntityY(c\target,True)-EntityY(c\camera,True)
dz#=EntityZ(c\target,True)-EntityZ(c\camera,True)
 
TranslateEntity c\camera,dx*ssp,dy*ssp,dz*ssp
 
PointEntity c\camera,c\heading
 
PositionEntity c\target,0,0,0
ResetEntity c\target
PositionEntity c\target,0,20,-15
End Function
Function LoadGameObjects()
level=LoadMesh( "maps\tur.b3d" )
ScaleEntity level,.15,.15,.15
EntityType level,TYPE_WALL
 
player_model = LoadAnimMesh( "ROBOT\torus.b3d" ) 
ScaleEntity player_model,.2,.2,.2
LoadAnimSeq player_model, ("ROBOT\walk.b3d" ) 
TurnEntity player_model,0,-180,0 
HideEntity player_model
End Function
это не мой код. я его "стырила" из чужого исходника. сама еще не умею так.
Итак, я запустила МАКС и создала в сцене примитив цилиндр. Перевела его сетку в эдитейбл мэш. Затем наложила модификатор скин. Создала два бокса. поставила один на другого и расположила их внутри цилиндра и присоединила их в качестве костей. короче получилаось такое примитивное подобие ноги, сгинающейся в колене. И теперь перехожу File -> Export и сохраняю в формате b3d. под именем torus(для этого я установила B3D Pipeline). теперь после этого включила автоматическую расстановку ключей . анимация в 40 кадров. с 0 по 10 я с помощью наклоняю верхний бокс. с 10 по 20 возвращаю его в исходное положение. с 20 по 30 также наклоняю только в другую сторону и с 30 по 40 снова в обратном направлении возвращаю в исходное положение.
И все. Дальше опять перехожу File -> Export и сохраняю в формате b3d. под именем walk.
Еще скажу что когда экспортирую в формат .b3d, появляется окно с опциями экспорта. В этом окне галочки выставлены абсолютно везде уже с самого начала. (сама я не знаю какие именно галочки надо проставлять)
Теперь запускаю Блитц3Д и в вышеприведенном коде использую свои файлы.
нажимаю F5. короче цилиндр в пространстве есть. нажимаю клавиши A и Z для перемещения. И тут цилиндр хотя сам двигается (или правильнее скользит как и все объекты по умолчанию), самой анимации цилиндра, а он должен нагинаться в разные стороны при передвижении, нет.
вот такая вот загогулина.
А мог бы кто нибудь показать как именно надо ипользовать в Блитце модели, сохраненные в формате b3d. если можно конечно. а то может код неправильный?

Заранее Спасибо
(Offline)
 
Ответить с цитированием
Старый 16.12.2007, 15:24   #75
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,212
Написано 5,084 полезных сообщений
(для 14,720 пользователей)
Re: FAQ по B3D

MoKa, исправил!
NovICE, насчёт флажков, их надо расставлять вот так: (я объяснил наиболее важные)


1. Кликаешь Preview, если в нём всё верно работает, и анимация играется, то всё верно экспортнулось.
2. Экспортаешь в файл.
3. Загружаешь в игре при помощи LoadAnimMesh()
Мой привер:
mesh = LoadAnimMesh ("models\headcrab.b3d")
4. Самое важное! Т.к. у нас анимация костная, то анимировать надо не весь AnimMesh, а тот объект, который у нас анимирован костями. Для этого в Максе мы узнаём имя нашего объекта (в моём случае - это хедкраб, его имя в максе: smdimport)
5. При помощи FindChild "выделяем" этот объект в блитзе:
crab = FindChild(mesh, "smdimport")

Название объекта обязательно в кавычках!

6. Анимируем уже именно этот объект, который мы нашли:

Animate crab

Итог - краб устаршающе клацает клешнями, готовясь наброситься

Конкретно в твоём коде:

в функции UpdatePlayer нужно писать не:

Animate p\model, ...

а:

Animate FindChild (p\model, "имя объекта в кавычках"), ...

Если тебе непонятны какие-то команды, смотри о них подробно в Блитзевском хелпе.

сама еще не умею так
учись, на чужом коде долго не просидишь...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

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


Опции темы

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

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


Часовой пояс GMT +1, время: 01:21.


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