[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
мой баг
МалышняДата: Понедельник, 09 Ноября 2009, 07:51 | Сообщение # 1
Начинающий
Группа: Пользователи
Сообщений: 1
Награды: 0
Замечания: 0%
Статус:
на прошлой неделе заинтересовался Бизом и начал собственные изыскания. Создал кусочик земли в Максе вставил его и запустил по нему сферу, но вот беда: сфера может подниматься по земле, но не опускается, а дальше катитьлся по достигнутому уровню Y. Вот код:

Graphics3D 640,480,32,0
SetBuffer BackBuffer()

Const TypePla=1,TypeTer=2

Pla=CreateSphere()
PositionEntity Pla,-40,1,-40
EntityType Pla,TypePla

Ter = LoadMesh("9.3ds")
EntityColor Ter,255,115,0
EntityType Ter,TypeTer

cam=CreateCamera(Pla)
PositionEntity cam,0,5,-20

lit=CreateLight

Collisions TypePla,TypeTer,2,3

Repeat

MoveEntity Pla,0,0,.1
If KeyDown(203) Then TurnEntity Pla, 0, -1, 0
If KeyDown(205) Then TurnEntity Pla, 0, 1, 0

UpdateWorld
RenderWorld

Flip
Until KeyHit(1)
End

Подскажите где баг и как его исправить respect

 
gforcerДата: Понедельник, 09 Ноября 2009, 08:10 | Сообщение # 2
Начинающий
Группа: Участники
Сообщений: 156
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: несколько
Проектов: РТС, Рейсинг, ФПС
в программе отсутствует всякий физический код. Объявить коллизию и написать простое управление - мало.
Если ты хочешь сам писать физику для объектов в игре, но начни с этого:
1) нужно задать силу гравитации, например
Code
Global Gravity#=0.1 ;Сила гравитации равна 0.1 (в реальном мире она равна 0.9 единиц)

2)прописать обработку объекта на физические события:
Code
ncollisionsCount=CountCollisions(Pla) ;Число объектов, с которыми столкиватся наш Игрок
  If ncollisionsCount=0 Then
   If Pla_y_speed#<5 Then Pla_y_speed#=Pla_y_speed#+Gravity#;Если нет пола, ускорят падение игрока до значения
   MoveEntity(Pla,0,Pla_y_speed#,0)
  Else
   Pla_y_speed#=0
   MoveEntity Pla,0,Gravity#,0; Воздействие гравитации на игрока
  End If

Все это нудно и требует времени и терпения, но есть простой выход, подключить физическую библиотеку. Тогда нужно будет лишь писать простые функции и никакой муторной физики или обработки какждого движения итд.
Мой совет - возьми физический движок.
^_^

 
SKOFILDДата: Понедельник, 09 Ноября 2009, 22:32 | Сообщение # 3
Врубающийся
Группа: Пользователи
Сообщений: 32
Награды: 0
Замечания: 40%
Статус:
а еше тупа можно написать в цикле MoveEntity pla,0,-1,0
 
DrawДата: Вторник, 10 Ноября 2009, 22:13 | Сообщение # 4
Продвинутый
Группа: Участники
Сообщений: 194
Награды: 0
Замечания: 0%
Статус:

Команда: DeforShys
Проектов: 8 (2 активных 6 инактив)
Quote (gforcer)
1) нужно задать силу гравитации, например
Global Gravity#=0.1 ;Сила гравитации равна 0.1 (в реальном мире она равна 0.9 единиц)

если быть точным 9.8



ICQ 557709132 пиши. Отвечу на любой вопрос по блицу
 
  • Страница 1 из 1
  • 1
Поиск: