[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Специфическое перемещение камеры
ЛонДата: Понедельник, 27 Июля 2009, 20:23 | Сообщение # 1
Младший Злой Одмин
Группа: Участники
Сообщений: 89
Награды: 0
Замечания: 0%
Статус:

Профессия: Говнокодер
Команда: Igrostroenie Team
Проектов: 1
Имеется: поле и кубик. Кубик катается по полю, вид сверху (могу выложить исходник).
Требуется: если кубик начнёт подъезжатьк краю, камера смещается в этот край, плавно
ускоряясь... ну вобщем примерно схема -

где белая линия - совсем медленно, серая - быстрее, чёрная - совсем быстро..
А подумать: мозговой штурм к вечеру не удался, а интузиазму как...
Просьба помочь pray
Прикрепления: 8344547.jpg (69.1 Kb)


404 Not Found
________________________________
Insert this page into admin's ass


Сообщение отредактировал Лон - Понедельник, 27 Июля 2009, 21:43
 
falc0nДата: Вторник, 28 Июля 2009, 02:35 | Сообщение # 2
Продвинутый
Группа: Участники
Сообщений: 149
Награды: 0
Замечания: 0%
Статус:

Профессия: Студент
Команда: MINFOS studio(в команде я один xD )
Проектов: один(зубодробительная ММОРПГ)
Есть такая мего суперская команда - CameraProject
она переводит из мировой системы координат в систему координат окна.
т.е. после выполнения этой команды ты с помощью команд ProjectedX , ProjectedY получишь 2д координаты и сможешь работать с кубом как в 2д smile

ниже семпл
[spoiler]

Code


Const MAX_Y=400
Const MAX_X=400
Const MIN_X=240
Const MIN_Y=80

Graphics3D 640, 480    
SetFont LoadFont("Arial",20,10)
cam=CreateCamera():   MoveEntity CreateLight(),45,45,0

cub=CreateCube()
EntityColor cub,255,128,0
MoveEntity cub,0,0,20
cubespeed#=0

Repeat

CameraProject cam,EntityX(cub),EntityY(cub),EntityZ(cub)   ;переводим координаты в скрин спейс

If ProjectedX()<MAX_X And ProjectedX()>MIN_X                             ;если не попадаем в квадарт - скорость "выше"
    If ProjectedY()<MAX_Y And ProjectedY()>MIN_Y
     cubespeed=.05
     Else
     cubespeed=.3
    End If
    Else
    cubespeed=.3
End If

MOVE_ENTITY(cub,cubespeed)  ;двигаем куб с нужной скоростью
RenderWorld

DRAW_RECT()
Text 10,20,"Move - up,down,left,right"
Flip    
Until KeyHit(1)
End    

Function MOVE_ENTITY(ent%,speed#)
    If KeyDown(200)    MoveEntity ent,0,speed,0
    If KeyDown(208)    MoveEntity ent,0,-speed,0
       
    If KeyDown(203) MoveEntity ent,-speed,0,0
    If KeyDown(205) MoveEntity ent,speed,0,0
End Function    

Function DRAW_RECT()
     Line MIN_X,MAX_Y,MAX_X,MAX_Y
     Line MIN_X,MIN_Y,MAX_X,MIN_Y
        
     Line MIN_X,MIN_Y,MIN_X,MAX_Y
     Line MAX_X,MIN_Y,MAX_X,MAX_Y
End Function


[/spoiler]


Сообщение отредактировал falc0n - Вторник, 28 Июля 2009, 02:40
 
ЛонДата: Вторник, 28 Июля 2009, 11:03 | Сообщение # 3
Младший Злой Одмин
Группа: Участники
Сообщений: 89
Награды: 0
Замечания: 0%
Статус:

Профессия: Говнокодер
Команда: Igrostroenie Team
Проектов: 1
сенкс))

404 Not Found
________________________________
Insert this page into admin's ass
 
  • Страница 1 из 1
  • 1
Поиск: