forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   НУ СРОЧНО НУЖНА ПОМОЩЬ! (http://forum.boolean.name/showthread.php?t=101)

KRIK 02.10.2005 18:22

Все ресурсы качайте с самой первой страницы этой темы! :glag:

SubZer0 02.10.2005 19:55

хз, у меня камера нормально крутится, вроде без сбоев...

чтоб сделать чтоб камера смотрела не на робота, нужно создать объект на который бы она смотрела, а еще лучше пивот (см код)
Код:

;tipy dlya kolliziy
Const robotType = 1
Const levelType = 2
Const boxType = 3
Const cameraType = 4



Graphics3D 1024,768,32,1

;shrift pokrupnee
font = LoadFont ("arial cyr",20)
SetFont font

l = CreateLight()
RotateEntity l, 0, 45, 45

level=LoadMesh ("MAPS\TUR.3ds")
grunt=LoadTexture("Panels.jpg")
EntityTexture level,grunt
FreeTexture grunt

PositionEntity level,0,-7,0
;typ dlya kollizii
EntityType level,levelType

robot = LoadAnimMesh( "ROBOT\robotic.3ds" )
LoadAnimSeq robot, ("ROBOT\running.3ds" )

ScaleEntity robot,0.5,0.5,0.5
;radius dlya kollizii
EntityRadius robot, 5
;typ dlya kollizii
EntityType robot,robotType


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
rcam=createpivot(robot)
positionentity rcam,0,60,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

cam = CreateCamera(rcam)
;radius dlya kollizii
EntityRadius cam,5
;typ dlya kollizii
EntityType cam,cameraType

CameraRange cam,0.01,2000
CameraFogColor cam, 0,128,255 *
CameraFogRange cam, 1,1000 *


PositionEntity cam, 0, 15, 120
;RotateEntity cam, 0, 5, 11



cub=CreateCube()
PositionEntity cub,30,5,10

cone=CreateCube()
PositionEntity cone,5,5,10


;bol'shoy kubik
cub3=CreateCube()
ScaleEntity cub3 ,10, 10, 10
PositionEntity cub3,20,5,-30
;typ dlya kollizii
EntityType cub3,boxType


;ystanovka pickov, eto dlya proverki pryamoy vidimosti
EntityPickMode cub,3
EntityPickMode cone,3
EntityPickMode cub3,2
EntityPickMode level,2

;ystanovka kolliziy
Collisions robotType,levelType,2, 3
Collisions robotType,boxType,2, 2

Collisions cameraType,levelType,2, 3
Collisions cameraType,boxType,2, 2




Repeat

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;povorot kamery na robota
PointEntity cam,rcam


angy#=MouseYSpeed()*0.002
TranslateEntity cam ,0,angy, 0
angx#=-MouseXSpeed()*0.5
TurnEntity robot,0,angx,0
angz#=MouseZSpeed()
MoveEntity cam,0,0,angz
MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5


;dvigaem kamery
If KeyDown(44) Then TranslateEntity cam,0,-0.5,0
If KeyDown(45) Then TranslateEntity cam,0,0.5,0
If KeyDown (46) Then MoveEntity cam,0,0,-1
If KeyDown(47) Then MoveEntity cam,0,0,1

;dvigaem robota
If KeyDown(208) Then MoveEntity robot,0,0,1
If KeyDown (200) Then MoveEntity robot,0,0,-1
If KeyDown (203) Then TurnEntity robot,0,1,0
If KeyDown (205) Then TurnEntity robot,0,-1,0



If KeyDown(17)
MoveEntity robot,0,0,-1

If KeyDown(17) If AnimSeq(robot)=0 Then Animate robot, 1, 0.5, 1, 10

Else
If AnimSeq(robot)=1 Then Animate robot, 2, 1, 0, 10
EndIf



If KeyDown(1) Then Exit


UpdateWorld
RenderWorld

;-----------------------------------------------------------------------------------------------
If EntityInView(cone,cam) And LinePick(EntityX(cam,True),EntityY(cam,True),EntityZ(cam,True),EntityX(cone)-EntityX(cam,True),EntityY(cone)-EntityY(cam,True),EntityZ(cone)-EntityZ(cam,True))=cone
;esli blize 100, to pishem imya
        If (EntityDistance (robot,cone)<100)
 *CameraProject(cam,EntityX(cone),EntityY(cone),EntityZ(cone))
 *Color 0, 0, 128 :Text ProjectedX#(),ProjectedY#(),"Bordos",1
        EndIf
       
End If *
;====================================================
If EntityInView(cub,cam) And LinePick(EntityX(cam,True),EntityY(cam,True),EntityZ(cam,True),EntityX(cub)-EntityX(cam,True),EntityY(cub)-EntityY(cam,True),EntityZ(cub)-EntityZ(cam,True))=cub
;esli blize 100, to pishem imya
        If (EntityDistance (robot,cub)<100)
 *CameraProject(cam,EntityX(cub),EntityY(cub),EntityZ(cub))
 *Color 0, 208, 0:Text ProjectedX#(),ProjectedY#(),"Wiliams",1
        EndIf
       
EndIf *
;===================================================== *

;gravitaciya
TranslateEntity robot,0,-1,0

Flip
Forever

End

на счет вперед-назад юзай команду RotateMesh и поворачивай на 180 градусов (скорее всего по оси Y)... (RotateMesh поворачивает информацию о расположении точек и плоскостей объекта, на угол положения самого объекта это не повлияет)

KRIK 03.10.2005 16:31

За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?

impersonalis 03.10.2005 16:44

Цитата:

Originally posted by xxxKRIKxxx@Oct 3 2005, 02:31 PM
За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?
RotateMesh !

KRIK 03.10.2005 17:03

Смысле я имел ввиду RotateMesh :)

SubZer0 03.10.2005 17:29

Цитата:

Originally posted by xxxKRIKxxx@Oct 3 2005, 02:31 PM
За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?
как так не помогло??? это все-равно, что ты в редакторе вовернешь... значит гдето еще стоит мож rotateentity или еще чего, что поворачивает объект... а то получится так, что в редакторе повернешь, а ничего не произошло... :)

убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...

KRIK 03.10.2005 17:44

Цитата:

убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...
Ну я надеюсь что это точно должно помочь!

SubZer0 03.10.2005 18:09

Цитата:

Originally posted by xxxKRIKxxx@Oct 3 2005, 03:44 PM
Цитата:

убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...
Ну я надеюсь что это точно должно помочь!

оно всегда помогает, если какаянить ошибка в программе и не знаешь как ее исправить, то начинаешь комментировать учатски программы которые могут иметь дело с этой ошибкой но которые ты уверен, что работают правильно... и после каждого комментария запускаешь программу и смотришь, если ошибка осталась, то еще не дошел до нее, если пропала, значит ты ее только-что закомментировал.. :)

KRIK 03.10.2005 18:59

Ура!Свершилось! Я нашёл как исправитьэту проблему. Это был самый простой вариант - повернуть модель в 3Д максе на 180 градусов. Больше кроме этого у меня ни как не получилось!.

KRIK 05.10.2005 15:09

Есть ещё 1 вопросик. В этом коде у меня есть робот. Когда робот отходит назад, и с зади робота есть какой-то предмет, то камера как и должна по коду не проходит сквозь кубик и остаётся на месте, НО когда робот начинает идти вперёд камера остаётся на том же самом месте, что и после взаимодействия кубика с камерой, Я ЖЕ ХОЧУ, ЧТОБЫ КОГДА РОБОТ НАЧИНАЛ ИДТИ ВПЕРЁД КАМЕРА СТАНОВИЛАСЬ НА ТОЖЕ МЕСТО ГДЕ И СТОЯЛА ДО ВЗАИМОДЕЙСТВИЯ. Чтоб вам было понятней, попробуйте в этом же коде куб3 увеличить в размерах, а потом подойти к нему задом. (НА СТРЕЛОЧКАХ).

KRIK 07.10.2005 04:19

Люди помогите пожалуста! :'((

KRIK 09.10.2005 09:53

Вложений: 2
МММ, так мне не кто и не помог в этом деле, но я нашёл пример где камера такая, как мне нужна, но там управление под клавой и я не знаю чё надо вырезать из этого кода в мой, чтоб камера у меня в примере была такая же.

Ну вот код. Что надо вырезать от туда чтоб у меня в коде камера была такая же???

Diplomat 09.10.2005 10:54

[FLOOD]

2Diplomat: Поручик Ржевский, молчать!
2All: Обратите внимание, а я до сих пор молчу...

2xxxKRIKxxx: RTFI + CD&DooM-i

P.S. Админы, сорри! Не сдержался. :)

[/FLOOD]

pax 09.10.2005 15:17

Я только вчера прочитал эту тему. Не хотелось придумывать новые функции, так что просто взял камеру из стандартной библиотеки примеров Biltz'а (Blitz3D\Samples\Blitz 3D Samples\MAK\CASTLE\CASTLE.BB) и переделал твой код под эту камеру.

Совет: Не загромождай основной цикл. Я разделил твою программы на несколько частей. Так код легче читается. :)

KRIK 09.10.2005 16:09

Ну хоть 1 человек ответил нормально! Всё принципе ну ОЧЕНЬ ХОРОШО (конечно код с помощью функций я буду разбирать целую неделю чё с чем взаймидействует), но у меня ну совсем маленький вопрос Почему вверх и вниз камера не двигается?


Часовой пояс GMT +4, время: 20:48.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot