 |
06.01.2010, 23:39
|
#376
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
ВОПРОС:
точнее пара вопросов
1.Есть ли команда типа EntityCollided(player,typesolid) - если игрок столкнулся с твердым телом.Только примерно вот так:
EntityCollidedY(player,typesolid) чтобы проверяло столкновение игрока с твердым телом по оси Y ? Если нету то как ето осущиствить?
2.Есть ли команда которая определяет высоту?Тоесть
допустим: если высота ступеньки 0.1 то запрыгнуть на ету ступеньку.
__________________
StimuL
Maks
|
(Offline)
|
|
06.01.2010, 23:49
|
#377
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
KingMaks
2) EntityY(entity) - узнает положение объекта по оси Y.
|
(Offline)
|
|
06.01.2010, 23:56
|
#378
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Сообщение от Igorian
2) EntityY(entity) - узнает положение объекта по оси Y.
|
положение обьекта. а мне нужно высоту обьекта узнать
__________________
StimuL
Maks
|
(Offline)
|
|
07.01.2010, 00:09
|
#379
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Эээ KingMaks ты встань на место блица - откуда ему то знать какая там высота у объекта?? Может это вообще шар...
но можно узнать скейл объекта по оси Y, но это через getMatElement(), думаю если товарищ H@non будет здесь, он тебе поможет 
|
(Offline)
|
|
07.01.2010, 00:36
|
#380
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Павел думаю тогда блиц хотябы должен знать по какой оси происходит столкновение.Тут у меня небольшая гравитация имееться:
If jump = 0 Then
If KeyDown(57) Then gravity = 0.1 : gravity2 = 0.03:jump = 1
End If
If Not EntityCollided(player,typesolid) Then jump = 1
If jump = 1 Then gravity = gravity + gravity2: gravity2 =gravity2 - 0.002:jump = 1
If EntityCollided (player,typesolid) Then gravity = 0:gravity2 = 0:jump = 0
TranslateEntity player,0,gravity/4,0
End If
как можно заметить при столкновении с любым твердым обьектом
гравитация = 0, тоесть даже если игрок врезаеться в стену гравитация = 0.
А мне нужно только чтобы если игрок сталкиваеться с полом тогда гравитация = 0. А пристолкновении со стенкой игрок скользит вниз под действием гравитации.
__________________
StimuL
Maks
|
(Offline)
|
|
07.01.2010, 08:25
|
#381
|
Мастер
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений (для 2,207 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Создай два разных типа: тип стены и тип пола. Если игрок соприкасается с полом, то отключить гравитацию, в другом случае включить.
|
(Offline)
|
|
07.01.2010, 11:45
|
#382
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
1) Использовать нормаль от столкновения. Примерно так :
InGround = false
entCol = EntityCollided(ent, ColType)
if entCol <> 0 then
For n = 1 to CountCollisions(ent)
if CollisionNY(ent, n) > 0.5 Then
InGround = True
Exit
EndIf
Next
EndIf
If InGround = true Then
перемещение
EndIf
2)Можно узнать размер меша через команду MeshHeight(), но если он будет отскейлен командой ScaleEntity, то тогда придется умножать это значение на скейл, чтобы получить точные значения.
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
07.01.2010, 13:48
|
#383
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Блин, сколько не читаю посты H@non'а, все нахожу новые команды 
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.01.2010, 13:48
|
#384
|
ПроЭктировщик
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений (для 34 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Спасибо, заработало =)
Вот только еще очередная проблебка...
он меняет разрешение только что при условии: предыдущее разрешение было 800x600 ... В принцепи меня это устраивает, у меня cs1.6. тоже самое,я написал код чтоб было опять 800x600
If XERK%=0 or YERK=0
XERK%=800
YERK%=600
EndIf
Но это надо же писать в цикле, а определение разрешения должно стоять
перед Graphics3D , помогите!Можно ли это реализовать?
|
(Offline)
|
|
07.01.2010, 13:56
|
#385
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Что то я не понял нифига
|
(Offline)
|
|
07.01.2010, 14:21
|
#386
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
при смене разрешения вся графика рушиться, поэтому тебе пришлось бы перезагружать все заного. Можно обойтись GoTo и при выборе разрешения переходить по метке, но лучше оставь пока эту тему, а то запутаешься.
|
(Offline)
|
|
07.01.2010, 17:01
|
#387
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
H@NON
InGround = 0
EntCol = EntityCollided(player,typesolid)
If EntCol <> 0 Then
For n = 1 To CountCollisions(player)
If CollisionNX(player,n) > 0.5 Then
InGround = 1
Exit
End If
Next
End If
В етом коде при столкновении с землей InGround серовно равен нулю
а нужна единица
__________________
StimuL
Maks
|
(Offline)
|
|
07.01.2010, 17:13
|
#388
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
Ох вот я протупил CollisionNX а у тебя CollisionNY.
Спасиба вопщем.Выручил мою гравитацию
__________________
StimuL
Maks
|
(Offline)
|
|
07.01.2010, 19:28
|
#389
|
Нуждающийся
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений (для 2 пользователей)
|
ОЧЕНЬ МОЩНЫЙ ВОПРОС !!!!!!!!!!!!!!!!!!!!!
Люди кто знает подскажите пожалусто !!!
Что большет ест ресурсов с текстурами спрайт (CreateSprite() ) или
3D обьект с текстурами (толщина обьекта равна толщена спрайта )
площади обоих одинаковы
кто больше есть ресурсы ?????????????????
|
(Offline)
|
|
07.01.2010, 19:48
|
#390
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Вопрос-Ответ (для новичков)
дело не в толщине, а в количестве полигонов, да и альфабленд тоже играет роль. Самый эффективный способ замерить время рендера тысячи спрайтов, а потом замерить время рендера тысячи твоих объектов. Тебе никто не сможет сказать что больше есть ресурсы, проверяй сам.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:35.
|