|
3D-программирование Вопросы, касающиеся программирования 3D мира |
17.06.2009, 21:42
|
#61
|
Оператор ЭВМ
Регистрация: 17.06.2009
Сообщений: 34
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Камера...
большое спасиба, но мне надо было именно клавишами > и < . ну все равно спасиба
|
(Offline)
|
|
17.06.2009, 21:51
|
#62
|
Оператор ЭВМ
Регистрация: 17.06.2009
Сообщений: 34
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Камера...
хм.. (
|
(Offline)
|
|
17.06.2009, 22:59
|
#63
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Камера...
imper вошёл в чат
всем прЮвет
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 8 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
17.06.2009, 23:50
|
#64
|
Оператор ЭВМ
Регистрация: 17.06.2009
Сообщений: 34
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Камера...
хотя не... все таки мышкои... вы просто поимите, мне надо сделать основу, ну как бе движок.. как смешно это не звучало бы, но мне это очень нужно... задумка уже 3 года в голове... так хочется развить, сделать.. очень прошу все таки вашеи помощи.. помогите с мышкои.. код я не однократно кидал.. буду очень благодарен, безумно просто. надо сделать чтобы персонаж поворачивался мышкои, а бегать просто кнопкои вперед или w. я посмотрел то что сделал dzirt, но незнаю как мне внедрить в мои код. прошу очень помощи. спасиба...
|
(Offline)
|
|
17.06.2009, 23:59
|
#65
|
Бывалый
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений (для 858 пользователей)
|
Ответ: Камера...
ken park Лады,завтра напишу тебе Хелпь на эту тему с моим любимым обилием комментированного кода. Заглядывай завтра в FAQ...
Зы: Аватар красивый)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.06.2009, 00:02
|
#66
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Камера...
Вот поворот обэкта мышкой и не только
Пользуйся на здоровье если розбереш.
Источник: Blitz et cetera
;CameraMouseView, on 10/10/06
Graphics3D 640,480,0,2
SetBuffer BackBuffer()
camerapivot=CreatePivot() ;pivot
camera=CreateCamera(camerapivot) ;camera on pivot
camerabank=CreateBank(48) ;camera bank variables
light=CreateLight()
RotateEntity light,90,0,0
cube=CreateCube()
While Not KeyHit(1)
UpdateWorld
RenderWorld
CameraMouseView(camerapivot,camera,camerabank)
Text 0,0,"Press LShift to Zoom, LCtrl to Drag"
Flip
Wend
Function CameraMouseView(camerapivot,camera,camerabank,speed#=0.05)
;camerapivot,camera,camerabank=valid handles, speed#=speed of view
Local movex,movey,camx#,camy#,camz#,pivx#,pivz#,angle#,xaxis#,zaxis#
;error messages for invalid handles
If camerapivot=0 Then RuntimeError "Pivot entity is zero!"
If camera=0 Then RuntimeError "Camera entity is zero!"
If camerabank=0 Then RuntimeError "Bank handle is zero!"
;set default values
If speed#<0.01 Then speed#=0.01 ;min speed
If PeekFloat(camerabank,36)=0 Then PokeFloat camerabank,36,-10 ;no camz
;update mouse variables
PokeInt camerabank,0,PeekInt(camerabank,8) ;lastx=msex
PokeInt camerabank,4,PeekInt(camerabank,16) ;lasty=msey
PokeInt camerabank,8,MouseX() ;msex
PokeInt camerabank,16,MouseY() ;msey
PokeInt camerabank,20,MouseX()-PeekInt(camerabank,0) ;movex=msex-lastx
PokeInt camerabank,24,MouseY()-PeekInt(camerabank,4) ;movey=msey-lasty
;fill in the position/rotation variables
movex=PeekInt(camerabank,20)
movey=PeekInt(camerabank,24)
camx#=PeekFloat(camerabank,28)
camy#=PeekFloat(camerabank,32)
camz#=PeekFloat(camerabank,36)
pivx#=PeekFloat(camerabank,40)
pivz#=PeekFloat(camerabank,44)
If MouseDown(1) ;Left Mouse button
If KeyDown(29) ;Left Ctrl key, camera drag
angle#=camy# : xaxis#=speed# : zaxis#=speed# ;init xz axis
If angle#>90 And angle#<270 Then zaxis#=-zaxis# ;-z if 90..270
If angle#>180 Then angle#=360-angle# : xaxis#=-xaxis# ;-x if 180..360
If angle#>90 Then angle#=180-angle# ;reduce y angle to 90
angle#=angle#*0.011 ;y as fraction of 1, ie. 90->100
;set mouse xy movements by y fraction and add to pivot xz positions
pivx#=pivx#-(movex*(1-angle#)*zaxis#)-(movey*angle#*xaxis#)
pivz#=pivz#-(movex*angle#*xaxis#)+(movey*(1-angle#)*zaxis#)
ElseIf KeyDown(42) ;Left Shift key, camera zoom
camz#=camz#-movey*speed# ;-msey sets camera z mt
If camz#>-3 Then camz#=-3 ;limit zoom to 3mt
Else ;camera rotation
camx#=camx#+(movey*10*speed#) ;mousey sets camera x dg
If camx#>90 Then camx#=90 ;limit x to -90..90
If camx#<-90 Then camx#=-90
camy#=camy#-(movex*10*speed#) ;-mousex sets camera y dg
If camy#>359 Then camy#=0 ;limit y to 0..360
If camy#<0 Then camy#=359
EndIf
EndIf
;update position/rotation variables
PokeFloat camerabank,28,camx#
PokeFloat camerabank,32,camy#
PokeFloat camerabank,36,camz#
PokeFloat camerabank,40,pivx#
PokeFloat camerabank,44,pivz#
;move pivot, rotate and zoom camera
PositionEntity camerapivot,pivx#,0,pivz# ;drag
RotateEntity camerapivot,camx#,camy#,0 ;rotate
PositionEntity camera,0,0,camz# ;zoom
End Function
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.06.2009, 00:04
|
#67
|
Оператор ЭВМ
Регистрация: 17.06.2009
Сообщений: 34
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Камера...
Блин, ребята. Вы меня спасаете, огромнеишее спасибо! Я стараюсь вникать и понимать )
|
(Offline)
|
|
18.06.2009, 00:11
|
#68
|
Оператор ЭВМ
Регистрация: 17.06.2009
Сообщений: 34
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Камера...
Сообщение от pinqin
ken park Лады,завтра напишу тебе Хелпь на эту тему с моим любимым обилием комментированного кода. Заглядывай завтра в FAQ...
Зы: Аватар красивый)
|
спасибо ) буду ждать )
зы: пасиба ^^
|
(Offline)
|
|
18.06.2009, 08:07
|
#69
|
Разработчик
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений (для 412 пользователей)
|
Ответ: Камера...
ken park-для спасибо есть кнопочка-полезно!
|
(Offline)
|
|
18.06.2009, 12:36
|
#70
|
Знающий
Регистрация: 15.06.2009
Адрес: Санкт-Петербург
Сообщений: 291
Написано 36 полезных сообщений (для 66 пользователей)
|
Ответ: Камера...
ken park Ты просто просишь всех сделать за тебя игру
|
(Offline)
|
|
18.06.2009, 12:41
|
#71
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Камера...
Сообщение от ken park
Блин, ребята. Вы меня спасаете, огромнеишее спасибо! Я стараюсь вникать и понимать )
|
Ты постораяся читать что пишут!!
Не тупо вставлять а хотябы переписовать. Это заставит тебя прочитать.
|
(Offline)
|
|
18.06.2009, 16:44
|
#72
|
Бывалый
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений (для 858 пользователей)
|
Ответ: Камера...
Воообщем сегодня у меня времени нет совсем как оказалось, но что то я сделал и решил тут выложить,
Смотри по теории думаю по картинке всё станет ясно:
Код мало комментировал но думаю вникнешь...
В атаче Если не будет фоновой текстуры земли то отключи текстуру нафиг или вставь свою )
Да и я не уверен что понял твой вопрос на все сто но если что обращайся)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Mhyhr за это полезное сообщение:
|
|
18.06.2009, 20:01
|
#73
|
Бывалый
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений (для 858 пользователей)
|
Ответ: Камера...
Воть тут нашел оч интересный материал
СОЗДАНИЕ ПЛАВНОЙ КАМЕРЫ
Const mousespeed# = 0.4
Const camerasmoothness# = 3
;C числами (0.4 и 3) можете по экспериментировать .
Далее>>>
;Это в главный цикл
u#=75; Предельный угол , можете поменять на свой
mx#=CurveValue(MouseXSpeed()*mousespeed,mx,cameras moothness)
my#=CurveValue(MouseYSpeed()*mousespeed,my,cameras moothness)
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
pitch#=EntityX(Camera)
yaw#=EntityYaw(user)
pitch=pitch+my
yaw=yaw-mx
If pitch>75 pitch=75
If pitch<-75 pitch=-75
TurnEntity camera,pitch,0,0
RotateEntity user,0,yaw,0
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
;Так , то что внизу напишите между WEND и END
Function CurveValue#(newvalue#,oldvalue#,increments )
If increments>1 oldvalue#=oldvalue#-(oldvalue#-newvalue#)/increments
If increments<=1 oldvalue=newvalue
Return oldvalue#
End Function
Сайт: maxgames.net.ru
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.06.2009, 21:25
|
#74
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Камера...
хера 5 страниц нафлудили о_0
ну ваще всё проще
есть чел.
ставим в него пивот, в место на которое будет смотреть камера.
в голову обычно.
ставим камеру за челом, парентуем её к пивоту.
просто вращаем пивот с помощью mousexspeed()/mouseyspeed(), так же как мы вращаем камеру в виде от 1 лица (а примеров такой камеры инет полон), при этом камеру поинтим на него.
теперь УЖЕ в результате нехитрых манипуляций мы сможем смотреть вокруг перса. по хорошему конечно можно ещё долго совершенствовать, в большинстве игр движение камеры вокруг перса не идёт тупо по сфере, ну и плюс коллизия камеры должна быть (блицевской коллизией элементарно делается так же как в кастле а вот с физыксом мудренее).
терь чтоб чел ехал в сторону куда мы смотрим делаем как-то так:
TformVector 0,0,1,cam,Character
tx#=tformedx#()
ty#=tformedy#()
tz#=tformedz#()
этим мы трансформируем направление "вперед по z" из пространства камеры в пространство чела. другими словами, если для уезда вперёд камере нужно применить moveentity cam,0,0,1 то для мува в ту же сторону другому объекту нужно конвернуть это значение в его локальную систему.
по идее есть мувить теперь перса на tx,ty,tz он будет мувится туда же куда смотртит камера.
чтоб он не летел вверх и вниз тут надо чето ограничить, во-первых конечно не мувить по у, во-вторых сдаётся мне не использовать дробные значения а то скорость будет всегда разной.
лучше так:
MoveEntity Character,Sgn(tx),0,Sgn(tz)
Sgn возвращает знак числа, т.е хоть у нас 0.5, 0.25 или 0.99 все равно будет 1 (или -1 или 0).
терь по ходу надо чтоб он ротейтился в сторону куда идёт.
ну тут много вариантов, можно самому вычислять, можно припарентить к камере пивот который всегда будет спереди и ПЕРЕД персом и поинтить его туда, обнуляя затем все ротации кроме Y.
а кстати нельзя парентить пивот к персу а то кажется чето не то будет когда он повернётся.
надо просто ставить его в цикле в позицию бошки.
приводит всё это в виде детального рабочего кода мне увы совсем нет времени да и блица на этом компе не стоит, но в теории вышесказанное должно работать)
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
|
|
18.06.2009, 22:50
|
#75
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Камера...
А я всё ждал пока афтор сам догадаетцо.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Web камера |
Randomize |
Модули для BlitzMax |
0 |
25.09.2009 13:17 |
Камера |
Fatalix3d |
3D-программирование |
2 |
28.12.2008 15:17 |
Камера и Mesh |
JeSss |
3D-программирование |
15 |
29.01.2008 21:00 |
камера из 3дсмакс |
CRACK |
3D-программирование |
10 |
31.07.2007 18:24 |
Камера |
smaller |
3D-программирование |
14 |
05.04.2007 23:58 |
Часовой пояс GMT +4, время: 00:36.
|