[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Нуждаюсь в помощи!!!!! (движение объектов)
Нуждаюсь в помощи!!!!!
GabrielДата: Пятница, 13.11.2009, 11:59 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
Добрый день всем, помогите пожалуйста решить несколько проблем.
1. мне необходимо создать движение объекта с наростающей скоростью до определённого предела.
2. необходимо создать выравниевание объекта по оси х,у,z после того как он был повёрнут, выравнивание так же должно быть плавным. заранее спс за помощь)
 
blitz3dДата: Пятница, 13.11.2009, 14:03 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
За точность не ручаюсь, накидал за две минуты. Примерно будет так:

1.

Code

max_skorost = 100
if keydown(201) then
    if skorost<max_skorost then skorost=skorost+1
end if

2.

Code

if povorot<EntityRoll(element) then povorot=povorot-1
if povorot>EntityRoll(element) then povorot=povorot+1


перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
GabrielДата: Пятница, 13.11.2009, 14:54 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
спс, всё получилось и ещё я нашол другой способ по пункту 1.
вот он:

If KeyDown(57) z#=z#+.1
Delay 100
MoveEntity stealth,0,0,z#
If z#>=3 Then KeyDown(57)=False

Добавлено (13.11.2009, 14:54)
---------------------------------------------
всётаки нет, не мой не Ваш способы не работают правильно.
мой способ:
разгоняясь так как мне необходимо, проходя z3 объект разгоняется дальше.
Ваш способ:
разгоняется так как мне необходимо, но дойдя до придела если повторно нажать клавишу разгона, объкт приобретает скорость равную начисляемой при разгоне.
Всё же спасибо Вам за попытку помочь, буду пробовать дальше) Удачи Вам.

 
blitz3dДата: Пятница, 13.11.2009, 16:29 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
нужно добавить
Code

max_skorost = 100
if keydown(201) then
     if skorost<max_skorost then skorost=skorost+1
else
     skorost=0
end if  


перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
GabrielДата: Суббота, 14.11.2009, 11:38 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
ктонить, помогите плиз. у меня проблемка

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

Global rootx#,rootz#

lit=CreateLight()
pln=CreatePlane()
EntityColor pln,30,200,16

stealth=LoadMesh("models/stealth.3ds")
ScaleMesh stealth,.05,.05,.05
PositionEntity stealth,0,5,10
RotateMesh stealth,0,180,0

Global cam=CreateCamera(stealth)
PositionEntity cam,0,13,-30
RotateEntity cam,20,0,0

cub=CreateCube()
PositionEntity cub,0,0,300
ScaleMesh cub,10,10,10

Repeat
; nazatie A
If KeyDown(30) rootz#=rootz#+3
Delay 30
RotateEntity stealth,0,0,rootz#

; nazatie W
If KeyDown(17) rootx#=rootx#-1
Delay 10
RotateEntity stealth,rootx#,0,0

; nazatie D
If KeyDown(32) rootz#=rootz#-3
Delay 30
RotateEntity stealth,0,0,rootz#

; razgon samolota po narastauysei do 10
If KeyDown(57) z#=z#+.3
If z#>=10 Then z#=z#-.3
Delay 10
MoveEntity stealth,0,0,z#

UpdateWorld
RenderWorld
Text 100,30, "угол X:" +rootx#,True,True
Text 100,20, "угол Z:" +rootz#,True,True
Text 100,10, "Скорость:" +z#,True,True

Flip
Until KeyHit(1)
End

когда я пишу этот код, то нажатие клавиши А, D работает нормально,а нажатие клавиши W, вообще не работает. посмотрите пожалуйста и исправте меня. заранее спасибо.

Сообщение отредактировал Gabriel - Суббота, 14.11.2009, 12:52
 
SpidyДата: Суббота, 14.11.2009, 15:56 | Сообщение # 6
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Во первых, убери строку ScaleMesh stealth,.05,.05,.05

Во вторых временно удали привязку объекта от камеры Global cam=CreateCamera(stealth) замени на
Global cam=CreateCamera()

В третьих исправь цикл

Code

Repeat
; nazatie A
If KeyDown(30) rootz#=rootz#+3

; nazatie W
If KeyDown(17) rootx#=rootx#-1

; nazatie D
If KeyDown(32) rootz#=rootz#-3

; razgon samolota po narastauysei do 10
If KeyDown(57) z#=z#+.3
If z#>=10 Then z#=z#-.3

RotateEntity stealth,rootx#,0,rootz#

UpdateWorld
RenderWorld
Text 100,30, "угол X:" +rootx#,True,True
Text 100,20, "угол Z:" +rootz#,True,True
Text 100,10, "Скорость:" +z#,True,True

Flip
Until KeyHit(1)


Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
GabrielДата: Суббота, 14.11.2009, 17:09 | Сообщение # 7
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
спс, Вам за помощь.
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Нуждаюсь в помощи!!!!! (движение объектов)
  • Страница 1 из 1
  • 1
Поиск: