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

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

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

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

Ответ
 
Опции темы
Старый 03.11.2007, 17:27   #1
TG
AnyKey`щик
 
Регистрация: 09.10.2007
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос про коллизии

Помогите понять ситуацию:
сделал модель комнаты, в ней столы и стулья (по типу офисных).
Созданы коллизии
Collisions IGROK,STOL,2,3
Collisions IGROK,STUL,2,3

И почему то если игрок запрыгивает на стол, его иногда (вернее скорее всего) подклинивает. И он уже с места не двигается.

Почему? Он и прыгать отказывается после того как его клинануло...
(Offline)
 
Ответить с цитированием
Старый 03.11.2007, 18:03   #2
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Вопрос про коллизии

Collisions IGROK,STOL,2,3
2 - сфера к полигону
3 - скольжение с предотвращением скатывания с наклонов

Мож луче делать колизию не к полигону, а к паралелепипеду ?

И ваще фиг иго знает какие у тя тама модельки. )))
(Offline)
 
Ответить с цитированием
Старый 03.11.2007, 19:06   #3
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Вопрос про коллизии

подбери радиус коллизии, мож у тебя сфера коллизии игрока изначально находится в столе/стуле, тогда может глючить, или еще , если у тебя есть гравитация, то отключай ее как только игрок твердо стоит на земле. И вообще приведи полный код, там где у тебя обрабатываются коллизии...
(Offline)
 
Ответить с цитированием
Старый 04.11.2007, 11:48   #4
TG
AnyKey`щик
 
Регистрация: 09.10.2007
Сообщений: 11
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Вопрос про коллизии

Спасибо за подсказки, буду пробовать
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 00:54   #5
GomZik
Нуждающийся
 
Регистрация: 19.07.2007
Сообщений: 85
Написано 3 полезных сообщений
(для 3 пользователей)
Re: Вопрос про коллизии

Ох... Что-то я совсем запутался с этими колизиями... Может вы мне разьясните... Уже сколько этот castle не перелистывал, уже тупо копи паст делал всёравно не работает!!! Вопсчем вот:

p\entity - пивот (EntityRadius=1.5)
p\model - модель привязаная к пивоту
p\y - изначально координата появления по y объекта
collisions TPlayer(на пивоте), CPol(Plane),2,3
идёт обновление мира (пытаюсь сделать гравитацию)
делаем так
ny#=entityy(p\entity)
d_y#=ny-p\y
p\y=ny
d_y=d_y-.2
trnanslateentity p\entity,0,d_y,0

В дэбаг при колизии должна появиться запись... Также в дебаг пишу каждый раз d_y (он от -0.2 и ниже)... Собственно вопрос... Ну пачиму он не колижица????=(((((((( Уже часа 2 долюаюсь =(
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 01:03   #6
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Вопрос про коллизии

Вот рабочий код прямо из проекта:

Function UpdateJump()
If he\jump>0 And he\jump_state=1
he\gravity#=he\gravity+he\jump
he\jump=he\jump/1.2
EndIf
;Гравитация

If he\collign
he\gravity=0
he\dop=0
Else
he\dop=he\dop-0.001
If he\dop<-0.06 he\dop=-0.06
he\gravity=he\gravity+he\dop
EndIf

TranslateEntity he\piv,0,he\gravity,0
he\collign=EntityCollided(he\piv,2)
If he\jump_state=1 And he\collign<>0
he\jump_state=0
he\jump_k=0
he\jump=0
EndIf
End Function
лишние переменные выкинешь сам 9там у меня двойной прыжок. отсюда избыток стейтов)
__________________
(Offline)
 
Ответить с цитированием
Старый 09.11.2007, 01:39   #7
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Вопрос про коллизии

GomZik
Надо было весь код выложить чёб все поняли.
я ваще не пойму нах там пивоты.

короче щас тебе пример коллизии и гравитации напишу:

Graphics3D 800, 600, 32
SetBuffer BackBuffer()
HidePointer

Global Red=100
Global Green=150
Global Blue=200

Global User
Global Zemla
Global G#=1
Global l = CreateLight()

Const TypeUser=1,TypeZemla=2,Gravitaciya#=1

User = CreateSphere(10)
ScaleEntity User,1,1,1
PositionEntity User,0,200,0
EntityType User,TypeUser
EntityColor User,90,10,10
EntityRadius User,1


Camera = CreateCamera(User)
PositionEntity Camera,0,30,-20
RotateEntity Camera,35,0,0
CameraClsColor Camera,red,green,Blue


Zemla = CreatePlane()
PositionEntity Zemla,0,-20,0
EntityType Zemla,TypeZemla
EntityColor Zemla,100,200,100

Collisions TypeUser,TypeZemla,2,3

While Not KeyDown(1)

If G#=1 Then TranslateEntity User,0,-Gravitaciya#,0

UpdateWorld
RenderWorld
Flip
Wend
End
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коллизии в 2.5D cheaters-hater 2D-программирование 11 07.07.2009 00:33
Вопрос про наболевшее - коллизии. DEGABB 3D-программирование 47 10.02.2008 02:37
Коллизии Crystal 3D-программирование 58 12.10.2007 17:16
Коллизии Stalnoy_Gvozd' 3D-программирование 6 30.08.2007 15:56
Вопрос по коллизии Fant 3D-программирование 24 03.11.2005 10:34


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


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