[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Гравитация для героя
SharkboyДата: Суббота, 10 Января 2009, 04:34 | Сообщение # 1
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
Подскажите как можно настроить гравитацию для созданного героя, так как когда я просто поместил
MoveEntity player,0,-.1,0 в бесконечный цикл, то объект двигается в низ...как бы это и надо, но когда я поднимаюсь, например по горе, то он начинает съезжать с
нее, скользить.
Подскажите как можно настроить так что бы когда он по ней поднимался, он оставался на том месте куда я пришел. и в то же время работала гравитация.


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»

 
ПрохожийДата: Суббота, 10 Января 2009, 04:46 | Сообщение # 2
Группа: Гости





TranslateEntity вроде..
 
tjslashДата: Суббота, 10 Января 2009, 06:17 | Сообщение # 3
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Простейшая гравитация:

mvy=mvy-0.06 ;прижатие к Земле
If EntityCollided(user,TypeCeil) ;если происходит столкновение с полом, тогда
mvy=mvy+0.12 ;приращение +0,12
EndIf ;конец цикла If
TranslateEntity user,0,mvy,0

 
SharkboyДата: Суббота, 10 Января 2009, 06:55 | Сообщение # 4
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
Quote (tjslash)
mvy=mvy-0.06 ;прижатие к Земле
If EntityCollided(user,TypeCeil) ;если происходит столкновение с полом, тогда
mvy=mvy+0.12 ;приращение +0,12
EndIf ;конец цикла If
TranslateEntity user,0,mvy,0

По твоему примеру...если не прописывать колизию между объектами, то герой проходит сквозь гору, а если прописать, то при столкновении, он просто подпрыгивает, но все равно съезжает.

Quote (Gideon)
Ты чего? Просто Collisions тип, тип, 2, 2

У меня и так это стоит.


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»

 
SharkboyДата: Суббота, 10 Января 2009, 07:04 | Сообщение # 5
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
Вообщем всем спасибо, я исправил ошибку, просто поменял тип коллизии
не на
Quote (Sharkboy)
Collisions тип, тип, 2, 2
, а на Collisions тип, тип, 2, 3 Хотя странно ведь есть всего две реакции, остановка объекта при столкновении и скольжение вдоль не подвижного.
Но все вроде бы все работает, т.е. объект останавливается.

А если кому интересно то вот код:

Code

Const TypePlayer=1,TypeWall=2
...
EntityType player,TypePlayer
EntityType terrain,TypeWall
Collisions TypePlayer,TypeWall,2,3
...
while not keyhit(1)
...
GetGravity(player,0.5)
...
updateworld
renderworld
flip
wend

Function GetGravity(name$,number#)
mvy#=mvy-number
If EntityCollided(name,TypeWall)
mvy#=mvy+number
EndIf
TranslateEntity name,0,mvy,0
End Function


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»



Сообщение отредактировал Sharkboy - Суббота, 10 Января 2009, 07:11
 
tjslashДата: Суббота, 10 Января 2009, 07:28 | Сообщение # 6
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote
, а на Collisions тип, тип, 2, 3

Блин, ну это-то естественно нужно было fool
 
SharkboyДата: Суббота, 10 Января 2009, 07:55 | Сообщение # 7
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
Quote (tjslash)
Блин, ну это-то естественно нужно было

не умничай, если такой умный, то поясни что каждая из цифр значит.


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»



Сообщение отредактировал Sharkboy - Суббота, 10 Января 2009, 07:55
 
tjslashДата: Суббота, 10 Января 2009, 08:21 | Сообщение # 8
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote

2 - земля
3 - игрок
ну или наоборот

Не верно,
2- столкновение типа: сфера с многогранником
3-при столкновение - скольжение с транием
 
tjslashДата: Суббота, 10 Января 2009, 08:29 | Сообщение # 9
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote
чего?

Что не понятного???
 
tjslashДата: Суббота, 10 Января 2009, 08:33 | Сообщение # 10
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote
где это в коде ты написал?

При чем здесь код???

Как я понял, Sharkboy, просил пояснить цифры отсюда

Collisions тип1, тип2, 2, 3
Или я что-то не так понял???

 
tjslashДата: Суббота, 10 Января 2009, 08:40 | Сообщение # 11
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Collisions тип1, тип2, 2, 3
тип1 - это и есть тип игрока,
а тип2 - тип Земли!!!
Sharkboy попросил пояснить ЦИФРЫ, а не что каждый тип обозначает! Я ему ЦИФРЫ и пояснил. Внимательней прочитай пост№8 надо.
 
SharkboyДата: Суббота, 10 Января 2009, 08:43 | Сообщение # 12
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
для тех кто тут спорит вот:
Collisions src_type, dest_type, method, response
src_type - тип объекта, который будет проверяться на столкновения.
dest_type - тип объекта, с которым будут обрабатываться столкновения.

method - метод определения столкновений.
1: столкновения типа эллипсоид-к-эллипсоиду
2: столкновения типа эллипсоид-к-полигону
3: столкновения типа эллипсоид-к-параллелепипеду

response - как будет вести себя объект при столкновении.
1: остановка
2: скольжение1 - столкновение с полным скольжением
3: скольжение2 - скольжение с предотвращением скатывания с наклонов

ПС. это мой косяк, смотрел по самоучителям, и там всего для реакции описано, вот решил заглянуть в хелп, и понял что значит реакция под номером 3


« Настоящие программеры не сдаются! (…они просто ленятся… =) )»

 
tjslashДата: Суббота, 10 Января 2009, 14:51 | Сообщение # 13
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote
Некоторые еще мучаются с лестницами , поэтому совет : Делаем радиус у сферки побольше , а высоту повыше , в коллизии указываем этот номер 3 .

Лучше уж приращение в функции менять. Вот если у тебя в игре будет труба через которую надо пройти, с радиусом - меньше радиуса столкновения, как быть?
 
SharkboyДата: Суббота, 10 Января 2009, 15:14 | Сообщение # 14
Продвинутый
Группа: Участники
Сообщений: 117
Награды: 0
Замечания: 0%
Статус:

Команда: GoD
ну по любому она будет меньше того радиуса который нужен для того что бы подняться по лестнице.

« Настоящие программеры не сдаются! (…они просто ленятся… =) )»

 
tjslashДата: Суббота, 10 Января 2009, 17:32 | Сообщение # 15
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Quote
ну по любому она будет меньше того радиуса который нужен для того что бы подняться по лестнице.

Эт верно))
 
tjslashДата: Воскресенье, 11 Января 2009, 08:20 | Сообщение # 16
Продвинутый
Группа: Участники
Сообщений: 132
Награды: 0
Замечания: 0%
Статус:

Профессия: студент
Команда: Йа один((
Проектов: "Blood Life"
Бывает))
 
  • Страница 1 из 1
  • 1
Поиск: