| 
	
		
		
			| Гравитация. |  |  |  | 
| infuzo | Дата: Вторник, 21 Сентября 2010, 23:19 | Сообщение # 1 |  |   частый гость Сейчас нет на сайте | Я хочу сделать определённый уровень гравитации. Создал Plane. Привязал к плану камеру. Но скорость движения камеры к плану как выставить? Вот ссылка на скачивание кода. 
 
 Сообщение отредактировал infuzo - Среда, 22 Сентября 2010, 08:38 |  |  |  |  |  | 
| JohnJ | Дата: Среда, 22 Сентября 2010, 00:28 | Сообщение # 2 |  |   участник Сейчас нет на сайте | infuzo, почему бы не сделать игру по какому-либо уроку на эту тему? Там всё будет понятно... |  |  |  |  |  | 
| Viruz | Дата: Среда, 22 Сентября 2010, 03:07 | Сообщение # 3 |  |   KOLLEKTOR Сейчас нет на сайте | Quote (infuzo) Вот ссылка на скачивание кода. такие вещи вбиваются
 ................................................
 т.к. кода я не видел, объясню тебе на пальцах. Вообще нишьяк будет если ты Plane придашь значение глобал, пробишешь в нем пивот, а все остальное уже в привязку типами
   
 
    
   |  |  |  |  |  | 
| infuzo | Дата: Среда, 22 Сентября 2010, 08:38 | Сообщение # 4 |  |   частый гость Сейчас нет на сайте | Я так и сделал. Я про другое спрашиваю. КАК ВЫСТАВИТЬ СКОРОСТЬ ПАДЕНИЯ? |  |  |  |  |  | 
| Serg1971 | Дата: Среда, 22 Сентября 2010, 09:38 | Сообщение # 5 |  |   Весёлый программист Сейчас нет на сайте | Quote (infuzo) Я так и сделал. Я про другое спрашиваю. КАК ВЫСТАВИТЬ СКОРОСТЬ ПАДЕНИЯ?Не знаю, как у вас в блице с конкретными операторами, но логически это делается так: до основного тела программы вводится переменная (например G), в основном цикле - берётся значение координаты по оси Y (высота камеры относительно плана, или любого игрового обьекта который должен падать ), и из неё постоянно вычитается G, результат записывается как новое положение камеры (обьекта) по Y. Переменную G - можно менять согласно любому физическому закону, или линейно... Можно впрочем, оставить её постоянной - тогда камера просто постоянно будет падать вниз, без ускорения или замедления. При отрицательном значении G - уже будет антигравитация!
   
 
   
 
 Сообщение отредактировал Serg1971 - Среда, 22 Сентября 2010, 10:08 |  |  |  |  |  | 
| infuzo | Дата: Среда, 22 Сентября 2010, 19:34 | Сообщение # 6 |  |   частый гость Сейчас нет на сайте | Да я знаю как это сделать логически. Я хочу спросить операторы, которые отвечают за скорость камеры. Добавлено (22.09.2010, 17:10)---------------------------------------------
 Люди. Скажите команду.
 Добавлено (22.09.2010, 19:34)---------------------------------------------
 А может кто-то знает урок, где описывается движение камеры, использование мыши? Если знаете - выкладите, пожалуйста.
 |  |  |  |  |  | 
| Serg1971 | Дата: Среда, 22 Сентября 2010, 23:40 | Сообщение # 7 |  |   Весёлый программист Сейчас нет на сайте | Блин, я даже не зная Блица - написал тебе пример гравитации!   
 Code Graphics3D 800,600 SetBuffer BackBuffer()
 Global player
 plaer=CreateSphere()
 cam=CreateCamera(player)
 PositionEntity cam,0,10,0
 gravity=0.1
 while Not KeyDown(1)
 if KeyDown(200) MoveEntity player,0,0,0.1
 if KeyDown(208) MoveEntity player,0,0,-0.1
 if KeyDown(203) TurnEntity player,0,1,0
 if KeyDown(205) TurnEntity player,0,-1,0
 MoveEntity player,0,gravity,0
 RenderWorld
 Flip
 Wend
 end
Скорость падения(гравитация) - меняется увеличением(уменьшением) значения переменной gravity... Твой код не смотрел, сам план вставишь...
 Для поворота камеры мыхой - кури мануал хелпа(команды), там должны быть команды отслеживающие перемещение мыши (тебе нужно по Х) что-то типа MoveMouseX(), или что-то похожее - не знай как там в Блице, у меня он не стоит на компе... Я вообще - на другом Бейсике программирую. Значение перемещения по оси Х, поделишь на 10, к примеру (а то резко крутиться будет) и подставишь вместо 1
 TurnEntity player,0,1,0
 Причём перемещение может принимать как положительные значения, так и отрицательные...
 Если уж нет у вас там, команд отслеживающих перемещение мыхи по осям, то придётся отслеживание делать самому...
 oldX=MouseX()
 . несколько
 . каких-нибудь
 . команд
 newX=MouseX()
 dx=(newХ-oldХ)/10
 А потом dx подставляешь всего в одну команду
 TurnEntity player,0,dx,0
 oldX=newX
 и всё!
 
 
   
 
 Сообщение отредактировал Serg1971 - Четверг, 23 Сентября 2010, 00:26 |  |  |  |  |  | 
| infuzo | Дата: Суббота, 25 Сентября 2010, 15:34 | Сообщение # 8 |  |   частый гость Сейчас нет на сайте | В блитзе гравитация делается одной строчкой кода 
 Code TranslateEntity player ,0, уровень гравитации(от минус бесконечности до плюс бесконечности),0 |  |  |  |  |  | 
| spy4433 | Дата: Понедельник, 29 Ноября 2010, 20:37 | Сообщение # 9 |  |   был не раз Сейчас нет на сайте | ну одной строчкой кода это не правильная гравитация    так будет более реалестично   vy - вектор   0.3- тестовым путем
   mass# масса объекта
    Vy=Vy+0.3*mass# translateentity entity,0,-vy,0
 |  |  |  |  |  
 |