|
3D-программирование Вопросы, касающиеся программирования 3D мира |
03.08.2011, 19:12
|
#1
|
ПроЭктировщик
Регистрация: 01.02.2009
Адрес: Москва
Сообщений: 112
Написано 10 полезных сообщений (для 33 пользователей)
|
Проблема !?
Дело такое, нашел на форуме тему делаем квест на xors3D .
Скачал я этот квест посмотрел что все объекты анимированые и все работает нормально и вот когда я перевел код в обычный для блитза код ( без х ) то началось проблема с анимацией и вылетом при нажатии на ящик " Entity has no animation"
Помогите решить эту проблему.
http://forum.boolean.name/showthread.php?t=12628
__________________
« 3нание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. »
|
(Offline)
|
|
03.08.2011, 20:59
|
#2
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Проблема !?
Ксорс и Блитз не одинаковы!
Кури код, подставляй другие команды пробуй эксперементировать все в твоих руках.
На счет анимации сильно помочь не могу.Возможно проблема в коде(в анимации каких-то опр.сценок... см. оффтоп)
|
(Offline)
|
|
04.08.2011, 03:04
|
#3
|
ПроЭктировщик
Регистрация: 01.02.2009
Адрес: Москва
Сообщений: 112
Написано 10 полезных сообщений (для 33 пользователей)
|
Ответ: Проблема !?
я все перепробовал ничего не получается , не знаю что еще можно сделать.
__________________
« 3нание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. »
|
(Offline)
|
|
04.08.2011, 12:08
|
#4
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Проблема !?
Всё говоришь... а свой код написать не пробывал. Намного лучше и меньше гемороя.
Я так обычно и делаю.
А вообще я посмотрел код и получается там не может наити анимацию объекта. Такое чувство что она просто не загружена. Но мне кажется проблема в самой загрузке объекта, ибо не может наитись анимация для объекта.. Попробуй сделать свою загрузку уровня наподобе:
Function RecurseSeek(free)
For i=0 To xCountChildren(free)-1
child=xGetChild(free,i)
name$=Lower(xEntityName(child))
;Collisons
If Instr(name$,"s2")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Collisions",True,True
xFlip
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
xCreateTrimesh(child,0)
xEntityType child,Nwall
xEntityPickMode child,2
EndIf
If Instr(name$,"stup")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Collisions",True,True
xFlip
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
xCreateTrimesh(child,0)
xEntityType child,Nwall
EndIf
;Doors
If Instr(name$,"doorl")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Doors",True,True
xFlip
xNameEntity child,"left"
InitDoor(child)
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
xCreateHullmeshDoor(child,0)
EndIf
;Player
If Instr(name$,"player")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Player",True,True
xFlip
px#=xEntityX(child)
py#=xEntityY(child)
pz#=xEntityZ(child)
rpy#=xEntityYaw(child)
xHideEntity child
EndIf
If Instr(name$,"doorr")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Doors",True,True
xFlip
xNameEntity child,"right"
InitDoor(child)
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
xCreateHullmeshDoor(child,0)
EndIf
;Meshes
If Instr(name$,"bo4ka")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Meshes",True,True
xFlip
InitBo4ka(child)
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
rx#=xEntityPitch(child)
ry#=xEntityYaw(child)
rz#=xEntityRoll(child)
xCreateHullmeshB(child,0)
EndIf
If Instr(name$,"lesn")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Meshes",True,True
xFlip
InitLesn(child)
x#=xEntityX(child)
y#=xEntityY(child)
z#=xEntityZ(child)
rx#=xEntityPitch(child)
ry#=xEntityYaw(child)
rz#=xEntityRoll(child)
xEntityType child,Nwall
xCreateHullmeshL(child,0)
EndIf
;Water
If Instr(name$,"water")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Water!!!",True,True
xFlip
Delay 30
xEntityType child,Nwall
xp#=xEntityX(child)
yp#=xEntityY(child)
zp#=xEntityZ(child)
xEntityAlpha child,0.7
xEntityPickMode child,2
xAnimate child,1,0.4
EndIf
;Sky
If Instr(name$,"sky")
xCls
xFlip
xCls
xColor 200,200,200
xText 640,500,"Sky",True,True
xFlip
xFlipMesh child
EndIf
Next
End Function
Убери просто лишнее из моей функции и поставь в свой двиг.
ПС недавно понял главную вещь как загружать объекты из мапы и их потом использовать(т.е двигать вращать и пр.):делаешь масив на то кол-во объектов которое будет в сцене(ну там 20 ящиков значит dim obj_yashik(20)...) потом при загрузке предмета назначаешь ему массив:
if instr(name$,"yashik") then
n=n+1
obj_yashik(n)=child ;Смотри что такое чилд в начале моей функции.
endif
И все. У меня все пашет. Удачи в реализации и создании новых проэктов.
|
(Offline)
|
|
05.08.2011, 01:26
|
#5
|
ПроЭктировщик
Регистрация: 01.02.2009
Адрес: Москва
Сообщений: 112
Написано 10 полезных сообщений (для 33 пользователей)
|
Ответ: Проблема !?
спасибо за ответ,но я хочу сказать что у меня есть свой код ,техногия чтения карт похожа ,только более совершеная но только я не использую анимацию,зато все пашет.просто захотелось,чтоб была анимация это сократит мой код во много раз.например действия всех объектов будет производиться одной командой но канечно все через тип.id name
__________________
« 3нание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. »
|
(Offline)
|
|
05.08.2011, 02:15
|
#6
|
Мастер
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений (для 2,207 пользователей)
|
Ответ: Проблема !?
во-первых, проверь добавил ли ты анимацию объекту, во-вторых, проверь загрузил ли ты её при помощи xLoadAnimMesh(), в-третьих, проверь указал ли ты правильный путь к файлу. И да, у ксорса и блица есть небольшое различие в xFindChild(), у одного счет начинается с 0, у другого с 1, это тоже проверь. Вроде бы всё.
|
(Offline)
|
|
05.08.2011, 13:51
|
#7
|
ПроЭктировщик
Регистрация: 01.02.2009
Адрес: Москва
Сообщений: 112
Написано 10 полезных сообщений (для 33 пользователей)
|
Ответ: Проблема !?
все случаи у меня правильно написано и это ничего не дает
ошибка анимации проподает когда я ставлю анимате для всей карты а это никуда негодиться т.к все начинает дейтвовать одновременно, а для опреленного объекта ошибка нет анимации
__________________
« 3нание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. »
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:43.
|