Лон | Дата: Понедельник, 27 Июля 2009, 20:23 | Сообщение # 1 |
Младший Злой Одмин
Группа: Участники
Сообщений: 89
Награды: 0
Замечания: 0%
Статус: ![](/on.gif)
Профессия: Говнокодер
Команда: Igrostroenie Team
Проектов: 1
| Имеется: поле и кубик. Кубик катается по полю, вид сверху (могу выложить исходник). Требуется: если кубик начнёт подъезжатьк краю, камера смещается в этот край, плавно ускоряясь... ну вобщем примерно схема - где белая линия - совсем медленно, серая - быстрее, чёрная - совсем быстро.. А подумать: мозговой штурм к вечеру не удался, а интузиазму как... Просьба помочь
404 Not Found ________________________________ Insert this page into admin's ass
Сообщение отредактировал Лон - Понедельник, 27 Июля 2009, 21:43 |
|
| |
falc0n | Дата: Вторник, 28 Июля 2009, 02:35 | Сообщение # 2 |
![falc0n](http://igrostroenie.my1.ru/avatar/52/646283.jpg) Продвинутый
Группа: Участники
Сообщений: 149
Награды: 0
Замечания: 0%
Статус: ![](/on.gif)
Профессия: Студент
Команда: MINFOS studio(в команде я один xD )
Проектов: один(зубодробительная ММОРПГ)
| Есть такая мего суперская команда - CameraProject она переводит из мировой системы координат в систему координат окна. т.е. после выполнения этой команды ты с помощью команд ProjectedX , ProjectedY получишь 2д координаты и сможешь работать с кубом как в 2д ниже семпл [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%
Статус: ![](/on.gif)
Профессия: Говнокодер
Команда: Igrostroenie Team
Проектов: 1
| сенкс))
404 Not Found ________________________________ Insert this page into admin's ass
|
|
| |