Проблеми з батьками?!
| |
Dzirt | Дата: Суббота, 16.08.2008, 10:42 | Сообщение # 1 |
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
| Так, вернувся до своєї давньої проблеми.... Ще колись коли я писав свій перший арканоїд в 3д, в мене вискочила така проблема,після того як я назначив батьків(Parent) обєктам,почали виникати всякі бачіни,наприклад почали зміщуватись глобальні координати,або ж не відповідати дійсності: Допустим я наставив координати куба на центр машини,потім звязав куб з машиною(EntityParent cube,car), а потім починалася вистава. Коли машина рухалась(а куб звичайно рухався з нею),координати куба залишались не змінними! І це доставляло не мало проблем коли мені потрібно було їх взнать(entityX(cube)). Отака от фігня мужикі.Впевненний що я вже просто перепрацював,а ця проблема це просто нюанс який я десь завтикав.Але з моїм новим проектом,де цілі гори коду,його знайти вкрай важко.
Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
|
|
| |
turBO | Дата: Воскресенье, 17.08.2008, 05:32 | Сообщение # 2 |
Полковник
Группа: Администраторы
Сообщений: 297
Награды: 5
Репутация: 12
Статус: Offline
| Если мне не подводит память координаты ребёнка (child) выстраиваются не относительно глобальных координат, а относительно геометрического центра родителя (parent). Тут выше не прыгнуть - двигая родителя мы не меняем координат чайлда, хотя он и перемещается в пространстве. Как из этого выходить? Можно брать entityX(parent) и добавлять entityX(child). И так с каждой пространственной координатой! Именно так, если только я не переседелночью за компьётером...
If 2+2<>4 Then Restart
|
|
| |
Dzirt | Дата: Понедельник, 18.08.2008, 09:22 | Сообщение # 3 |
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
| Гггг, бачу всі "реальні" пацани над чимось допізна працюють.
Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
Сообщение отредактировал Dzirt - Понедельник, 18.08.2008, 09:23 |
|
| |
Spidy | Дата: Понедельник, 18.08.2008, 09:49 | Сообщение # 4 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| Не знаю правильно ли я понял проблему (сколько я не делал парент - никогда не видел проблему в считывании координат объектов как локально так и глобально). Для того, чтобы узнать координату функцией entityX(parent) следует просто указать дополнительный параметр true либо false. Global (не обязательно) = True для глобальных координат, False - для локальных. ex = EntityX( entity, true ) По умолчанию всегда стоит False т.е. глобально.
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
Dzirt | Дата: Вторник, 19.08.2008, 14:37 | Сообщение # 5 |
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
| Spidy, Бачиш в чому суть проблеми.Коли рухається парент його координати змінюються і їх можна визначити Entityx(parent).А координати чайлда не змінюються,при тому,що він рухається з парентом.Тобто якщо куб приєднанний до тачки,і тачка(парент) рухається то координати куба(чайлд) всерівно залишаються x=200,y=10,z=1400(це на приклад).От така штука.
Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
|
|
| |
Spidy | Дата: Вторник, 19.08.2008, 15:50 | Сообщение # 6 |
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
| Вот пример кода (написал за минуту). Если вместо строки Code RuntimeError EntityX(sh2)+" "+EntityY(sh2)+" "+EntityZ(sh2) написать Code RuntimeError EntityX(sh2,1)+" "+EntityY(sh2,1)+" "+EntityZ(sh2,1) координаты парента будут глобальными Code Graphics3D 800,600,32,2 SetBuffer FrontBuffer()
cam = CreateCamera() PositionEntity cam,0,90,0
sh = CreateSphere() sh2 = CreateSphere() EntityParent sh2,sh pn = CreatePlane() EntityColor pn,Rand(1,200),Rand(1,200),Rand(1,200)
While Not KeyHit(1) Cls PositionEntity sh,0,0,200 PositionEntity sh2,0,0,300 ScaleEntity sh,1,1,1 UpdateWorld RenderWorld RuntimeError EntityX(sh2,1)+" "+EntityY(sh2,1)+" "+EntityZ(sh2,1)
Flip Wend
End
Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
|
|
| |
Dzirt | Дата: Четверг, 28.08.2008, 16:11 | Сообщение # 7 |
форумовец
Группа: Модераторы
Сообщений: 260
Награды: 2
Репутация: 9
Статус: Offline
| Я знайшов вихід підключивши лібу.В любому випадку сянкс.
Головне в грі не графіка,а сюжет......хоча без першого його й розуміти не хочеться.)
|
|
| |
|