forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

Kolobok 06.07.2010 13:05

Ответ: Вопрос-Ответ (для новичков)
 
С кубиками теперь всё нормально, а вот с моделями всё равно не получается... Кубик входит в модель.

is.SarCasm 06.07.2010 13:24

Ответ: Вопрос-Ответ (для новичков)
 
уличная магияяя

pax 06.07.2010 13:55

Ответ: Вопрос-Ответ (для новичков)
 
Еще раз повторюсь, что сталкиваться может только сфера с чем-то. Т.е. у кубика должна быть коллизия как у сферы, чтобы он не проходил сквозь модели.

Maxim1441 06.07.2010 22:10

Ответ: Вопрос-Ответ (для новичков)
 
Выбери нормальные значения EntityRadius

Вот тебе параметры команды:

EntityRadius entity,x_radius#[,y_radius#], где
entity - указатель объекта
x_radius# - радиус по оси x эллипсоида зоны столкновений
y_radius# (optional) - радиус по оси y эллипсоида зоны столкновений. Если не указано, то будет использоваться значение параметра x_radius# (будет сфера).

Как я увидел из твоего скрина, то танк длина танка у тебя больше высоты, поэтому попробуй больше поставить x_radius#, а y_radius# поменьше.

Коллизию для проверки столкновений м\у танком и картой используй типа сфера-полигон. Т.е. в Collisions src_type,dest_type,method,response используй method=2

Kolobok 07.07.2010 08:09

Ответ: Вопрос-Ответ (для новичков)
 
EntityRadius... А что другого нечего нет? Модели ведь не кубики и не сферы... Как же им делать столкновения?
И если делать EntityRadius и скольжение при столкновении, то они будут друг на друга лезть...

Один на сфере зациклился... А зачем EntityBox тогда (я думаю для куба)?
Как я понял, надо в интернете найти исходник игры с моделями и коллизией...

Kolobok 07.07.2010 08:39

Ответ: Вопрос-Ответ (для новичков)
 
Короче вот:
http://blitz3d.at.ua/forum/2-239-1659-16-1264154433
Не только сфера сталкивается...
EntityBox применил и всё норм. И не скользит по объекту вверх

Hurrit 07.07.2010 08:44

Ответ: Вопрос-Ответ (для новичков)
 
Тогда используй физ.движки, если тебе нужна нормальная коллизия

Maxim1441 07.07.2010 10:19

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Kolobok (Сообщение 153308)
EntityRadius... А что другого нечего нет? Модели ведь не кубики и не сферы... Как же им делать столкновения?
И если делать EntityRadius и скольжение при столкновении, то они будут друг на друга лезть... Один на сфере зациклился... А зачем EntityBox тогда (я думаю для куба)? Как я понял, надо в интернете найти исходник игры с моделями и коллизией...

Да, ничего другого нет, только эллипсы и кубы - этого тебе должно за глаза хватить. Исходник целой игры с моделями и коллизией тебе на фиг не нужен, ибо кури сэмплы блитцевские - там все есть.

RlexGm 07.07.2010 11:05

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от EaNub (Сообщение 153010)
я написал говнокод приседания, но он слишком багнутый, хочу узнать как это делается цивилизованно.Может кто нибудь дать пример с использованием.Приседание примерно как в CS 1.6 (ну и в других шутерах)

Цитата:

Сообщение от EaNub (Сообщение 153043)
игра от первого лица

Цитата:

Сообщение от EaNub (Сообщение 153046)
а какже изменение радиуса, пролезание в вентилиционные трубы и т.д.?

Цитата:

Сообщение от EaNub (Сообщение 153087)
используются стандартные блиц коллизии

мда... походу не кто не знает или просто не видели

Вот решил дополнить ещё своим гавнокодом, может баги хотя бы удастся устранить
Код:

;нужно подилить всё на части:0 стоит, 1 сидит

If SidStatus=0
YplayerSid0=EntityY(player); определяем стоячию позицию по Y :)
skProsh=0
EndIf

EntityRadius player,80,RadiusPlayer ; но эт само сабой

If KeyDown(29)  And SidStatus=0  Then ;нажимаем ctrl и при этом он должен стоять
RadiusPlayer=150 ; менем высоту радиуса
YplayerSid1=EntityY(player) ; определяем Y в сидячем положении
PositionEntity camera,0,75,0 ; двигаем камеру вниз, что бы камера не проходила сквозь верхние объекты, радиус же уменьшился
skProsh=SidStatus0-YplayerSid1 ; даная переменная указывает насколько он сел:-D
SidStatus=1 ; меняем статус
EndIf

If KeyDown(29)=False And SidStatus=1 Then  ; если кнопка отпущена да и еще он сидит , то :
YplayerSid2=EntityY(player) ; определяем позицию во время вставания
If YplayerSid2-YplayerSid1>skProsh Then ; если поднялись выше чем опускались :)
RadiusPlayer=300 ; то радиус норм
PositionEntity camera,0,145,0 ; камера норм
SidStatus=0 ; игрок стоит
EndIf

TranslateEntity player,0,20,0 ; пока это не произошло тянем его вверх
gravity=2 ; 1*
EndIf

1* - но получается если при подъёме мы что нибудь задеваем, то опять летим вниз, а потом опять наверх и т.д :)
Я решил эту проблему отключением гравитации, и он липнет и не падает,
(у меня Gravity=2 отключает гравитацию) но сдесь появлятся первый(баг, просчёт и др :-D хз чё это) если же мы сталкиваемся с потолком то мы не как не можем достичь нужной позиции и можем летать по комнате :( , я думаю нужно это нужно решать не отключением грави, а чем то еще:)
И второе. Если ты сидя прополз ниже, то есть skProsh= больше чем надо , то при отпускании он начнёт тебя возращать на позицию Y с которой ты начал приседать.И если залез сидя выше , то вроде он провалиться.

-А почему же нельзя поднимать не на разницу а сразу на нужную высоту??
А вот потому что если он не достиг пола, то он будет подниматься выше чем надо, например можно барабанить ctrl(или что нибудь ещё) и он будет поднимать всё выше и выше:(
Надеюсь вы мне поможете:)

is.SarCasm 07.07.2010 11:14

Ответ: Вопрос-Ответ (для новичков)
 
Блджд ПЕРЕПИШИ КОД! С говнокодом тебе никто не поможет, напиши по людски в конце концов. Что за херь с отключением гравитации при прыжке.

RlexGm 07.07.2010 11:15

Ответ: Вопрос-Ответ (для новичков)
 
это не прыжок это подъём после приседания
и как это реализовать без отключения грави?
Нормальный код найти мне даже Google не помог найти

Maxim1441 07.07.2010 11:21

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

но сдесь появлятся первый(баг, просчёт и др :-D хз чё это) если же мы сталкиваемся с потолком то мы не как не можем достичь нужной позиции и можем летать по комнате :( , я думаю нужно это нужно решать не отключением грави, а чем то еще:)
Э... Как я понял, у тебя перс при прыжке, когда достигает потолка, не падает после этого вниз как должно быть? Ежели так, то тебе просто нужно определить момент столкновения с потолком и после этого перемещать перса вниз и запрещать ему в это время прыгать. Лично я делал это через команду LinePick ( x#,y#,z#,dx#,dy#,dz#[,radius#] ) Ну x y z - это коориднаты твоего перса, а вот dy сделай побольше ноля - тогда и выяснишь, когда потолок достигнут. Ну и еще вроде надо тогда EntityPickMode установить на тот объект, что у тебя за потолок отвечает.

Что касается остальных трабл, то выложи во вложении весь исходник - тогда можно глянуть.

RlexGm 07.07.2010 11:30

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Maxim1441 (Сообщение 153331)
Э... Как я понял, у тебя перс при прыжке, когда достигает потолка, не падает после этого вниз как должно быть? Ежели так, то тебе просто нужно определить момент столкновения с потолком и после этого перемещать перса вниз и запрещать ему в это время прыгать. Лично я делал это через команду LinePick ( x#,y#,z#,dx#,dy#,dz#[,radius#] ) Ну x y z - это коориднаты твоего перса, а вот dy сделай побольше ноля - тогда и выяснишь, когда потолок достигнут. Ну и еще вроде надо тогда EntityPickMode установить на тот объект, что у тебя за потолок отвечает.

Что касается остальных трабл, то выложи во вложении весь исходник - тогда можно глянуть.

было же описано выше что это не прыжок, а дело в том что когда он сталкивается при вставании с потолком он падает вниз потом опять наверх, и тд пока не достигнет нужной высоты, исправил отключением гравитации, но всё норм пока он сталкивается с потолком, а к примеру в какой нибудь трубе всё норм, когда вылезаешь из неё он встаёт до конца

Maxim1441 07.07.2010 12:11

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от EaNub (Сообщение 153337)
было же описано выше что это не прыжок, а дело в том что когда он сталкивается при вставании с потолком он падает вниз потом опять наверх, и тд пока не достигнет нужной высоты, исправил отключением гравитации, но всё норм пока он сталкивается с потолком, а к примеру в какой нибудь трубе всё норм, когда вылезаешь из неё он встаёт до конца

Нда... Единственный человек, который понял, что ты написал - это ты сам (и то не факт). Либо формулируй по людски, лидо давай исходник в студию.

Kolobok 07.07.2010 16:05

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Maxim1441 (Сообщение 153312)
Да, ничего другого нет, только эллипсы и кубы - этого тебе должно за глаза хватить. Исходник целой игры с моделями и коллизией тебе на фиг не нужен, ибо кури сэмплы блитцевские - там все есть.

Ты походу выше сообщений 5 не читал?
Мнё всё говорили что:
Цитата:

что сталкиваться может только сфера с чем-то. Т.е. у кубика должна быть коллизия как у сферы, чтобы он не проходил сквозь моделию.
Так вот... Мне нужно было увеличить коллизию куба, радиус коробки... Ну всё сделал уже. А в модель он всё равно входит...


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot