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=8497)

ken park 17.06.2009 12:52

Камера...
 
Очень прошу Вашеи помощи. Как мне сделать камеру от третьего лица... Приведу тупые примеры, но как в Gta, Hitman и тому подобные игры. И... Что бы она была "привязана" к спине персонажа... Офигенно бы было если бы камеру можно было крутить вокруг оси персонажа. Вот то что уже есть, если сможете, вставте код за меня, пожалуиста ^^:

Код:

Graphics3D 640,480
 
cam = CreateCamera()
PositionEntity cam, 0, 30, -20
RotateEntity cam, 30, 0, 0
l = CreateLight()
RotateEntity l, 0, 45, 45
 
ground = CreatePlane()
PositionEntity ground, 0, -8, 0
grass = LoadTexture("D:\psychodrama\1.jpg")
ScaleTexture grass, 50, 50
EntityTexture ground, grass
 
robot = LoadMesh("D:\psychodrama\Shadow.3ds")
ScaleEntity robot, 0.4, 0.4, 0.4
rx#=10
rz#=0
ang=90
Repeat
PositionEntity robot, rx#, -8, rz#
RotateEntity robot, 0, ang + 90, 0
PointEntity cam, robot
If KeyDown(200) Then
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5
 End If
If KeyDown(203) Then ang = ang + 5
If KeyDown(205) Then ang = ang - 5
 
If KeyDown(1) Then Exit
 
RenderWorld
Flip
Forever


Sleepybear 17.06.2009 13:04

Ответ: Камера...
 
Код:

Graphics3D 800,600,32,0

User=CreateSphere()
Pivot=CreatePivot(User)
PositionEntity pivot,0,5,-10
Camera=CreateCamera()

ground=CreateCube()
PositionEntity ground,0,-10,0
ScaleEntity ground,50,.1,50
EntityColor ground,0,128,64

While Not KeyDown(1)

        curX#=EntityX(Camera, True)
        curY#=EntityY(Camera, True)
        curZ#=EntityZ(Camera, True)
        destX#=EntityX(Pivot,True)
        destY#=EntityY(Pivot,True)
        destZ#=EntityZ(Pivot,True)
        CamX#=((destX#-curX#)/10)
        CamY#=((destY#-curY#)/10)
        CamZ#=((destZ#-curZ#)/10)
        TranslateEntity Camera,CamX,CamY,CamZ
        PointEntity camera,User
       
    RenderWorld
    UpdateWorld
       
Flip False :Wend:End

Вставиш сам, Я не бумаю что тут кто то за тебя делать будет. :)


Насчет крутить камеру вокруг это просто
Крути pivot

ken park 17.06.2009 13:10

Ответ: Камера...
 
о! и на этом огромное спасибо ) можешь про pivot пояснить ?

ken park 17.06.2009 13:18

Ответ: Камера...
 
так... хм... я вставил модель, но камера показывается с лица персонажа. и никак не смог сделать движение, стоит на месте и всё...
Код:

Graphics3D 800,600,32,0

User=LoadMesh("D:\psychodrama\Shadow.3ds")
ScaleEntity user, 0.50, 0.50, 0.50
rx#=10
rz#=0
ang=90
Repeat
PositionEntity user, rx#, -8, rz#
RotateEntity user, 0, ang + 90, 0

If KeyDown(200) Then
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5
 End If
If KeyDown(203) Then ang = ang + 5
If KeyDown(205) Then ang = ang - 5

Pivot=CreatePivot(User)
PositionEntity pivot,0,5,-300
Camera=CreateCamera()

ground = CreatePlane()
PositionEntity ground, 0, -8, 0
grass = LoadTexture("D:\psychodrama\1.jpg")
ScaleTexture grass, 50, 50
EntityTexture ground, grass

While Not KeyDown(1)

        curX#=EntityX(Camera, True)
        curY#=EntityY(Camera, True)
        curZ#=EntityZ(Camera, True)
        destX#=EntityX(Pivot,True)
        destY#=EntityY(Pivot,True)
        destZ#=EntityZ(Pivot,True)
        CamX#=((destX#-curX#)/10)
        CamY#=((destY#-curY#)/10)
        CamZ#=((destZ#-curZ#)/10)
        TranslateEntity Camera,CamX,CamY,CamZ
        PointEntity camera,User
       
    RenderWorld
    UpdateWorld
       
Flip False :Wend:End
Forever


Sleepybear 17.06.2009 13:24

Ответ: Камера...
 
Ты немного не с того начал

Pivot не видимая точка с которой ты можеш работать как с обьектом

Pivot=CreatePivot(User)
создаеш и привязываеш пивот к герою
PositionEntity pivot,0,5,-300
ставиш пивот неподалеку от геороя поскольку он привязан он всегда будет на этом растаянии



curX#=EntityX(Camera, True)
curY#=EntityY(Camera, True)
curZ#=EntityZ(Camera, True)
destX#=EntityX(Pivot,True)
destY#=EntityY(Pivot,True)
destZ#=EntityZ(Pivot,True)
CamX#=((destX#-curX#)/10)
CamY#=((destY#-curY#)/10)
CamZ#=((destZ#-curZ#)/10)
TranslateEntity Camera,CamX,CamY,CamZ
двигаеш камеру за пивотом

PointEntity camera,User
заставляеш камерувсегда смотреть на пивот


Стоит на место пото му что
If KeyDown(200) Then
должно находится в цикле

Repeat...... forever

или

While...... Wend

пивот стоит с лица героя поэтому и камера так смотрит



ps: ух как :)

ken park 17.06.2009 13:31

Ответ: Камера...
 
спасибо большое) вот только никак немогу вычислить чтобы со спины вид был, а у моделька полубоком к камере )
всё, задом поставил ))

Sleepybear 17.06.2009 13:36

Ответ: Камера...
 
Цитата:

Сообщение от ken park (Сообщение 107868)
спасибо большое) вот только никак немогу вычислить чтобы со спины вид был, а у моделька полубоком к камере )

поиграйся с параменрами пивота
тут --> positionentity pivot ,0,0,0

ken park 17.06.2009 13:37

Ответ: Камера...
 
с этим и игрался ) так, буду дальше твое сообщение изучать )

Sleepybear 17.06.2009 13:40

Ответ: Камера...
 
help читай там больше инфы чем в моем сообщении :)

ken park 17.06.2009 13:43

Ответ: Камера...
 
у меня в конце вот так получается, но не работает, потому что не понял как вставлять While, Wend.. и тд
Код:

        ScaleEntity user, 0.50, 0.50, 0.50
rx#=10
rz#=0
ang=90
Repeat
PositionEntity user, rx#, -8, rz#
RotateEntity user, 0, ang + 90, 0

If KeyDown(200) Then
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5
 End If
If KeyDown(203) Then ang = ang + 5
If KeyDown(205) Then ang = ang - 5
       
    RenderWorld
    UpdateWorld
       
Flip False
End
Forever


Sleepybear 17.06.2009 13:54

Ответ: Камера...
 
Цикл REPEAT ... UNTIL позволяет Вам выполнять серию команд, пока определенное условие не будет соблюдено. Это позволяет проверять условие ПОСЛЕ каждого цикла, а не ДО, как в цикле WHILE ... WEND. В общем, используйте REPEAT ... UNTIL, если Вы уверены, что помещаете в цикл команды, которые должны быть использованы минимум 1 раз.

Код:

; Повторять до нажатия клавиши ESC

Repeat
print "Нажмите ESC для выхода!"
Until KeyHit(1)

Цикл WHILE/WEND используется, когда Вы хотите запустить серию команд несколько раз, опираясь на соблюдение или несоблюдение условия. Он работает подобно циклу REPEAT/UNTIL, за исключением проверки условия в начале цикла, вместо ее проверки в конце. Обычно Вы будете использовать WHILE/WEND, когда не будете уверенны, сколько раз Вам понадобится выполнение команд, находящихся в цикле, а кроме того, Вы вообще можете остановить цикл до запуска любых команд. Если Вам нужно запустить команды в цикле лишь однажды перед соблюдение условия, используйте REPEAT/UNTIL.

Код:

; While/Wend Пример

; Условие цикла находится на ВЕРШИНЕ цикла
While Not KeyHit(1) ; Так долго, пока юзер не нажмет ESC ...
Print "Нажмите Esc, что бы закончить этот бардак!" ; Вывести это на экран
Wend ; Вернуться к началу цикла WHILE


ЧИТАЙ HELP внимательно!!! до полного осмысления!

ken park 17.06.2009 14:02

Ответ: Камера...
 
ну оочень прошу, проделаите с этим ^___^ :
Код:

ScaleEntity user, 0.50, 0.50, 0.50
rx#=10
rz#=0
ang=90
Repeat
PositionEntity user, rx#, -8, rz#
RotateEntity user, 0, ang + 90, 0

If KeyDown(200) Then
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5
 End If
If KeyDown(203) Then ang = ang + 5
If KeyDown(205) Then ang = ang - 5


NitE 17.06.2009 14:04

Ответ: Камера...
 
дай полный код - помогу

ken park 17.06.2009 14:05

Ответ: Камера...
 
Код:

Graphics3D 800,600,32,1

User=LoadMesh("D:\psychodrama\Shadow.3ds")

        ScaleEntity user, 0.50, 0.50, 0.50
rx#=10
rz#=0
ang=90
Repeat
PositionEntity user, rx#, -8, rz#
RotateEntity user, 0, ang + 90, 0

If KeyDown(200) Then
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5
 End If
If KeyDown(203) Then ang = ang + 5
If KeyDown(205) Then ang = ang - 5
       
    RenderWorld
    UpdateWorld

Pivot=CreatePivot(User)
PositionEntity pivot, 0, 170, 270
camera=CreateCamera()

ground = CreatePlane()
PositionEntity ground, 0, -8, 0
grass = LoadTexture("D:\psychodrama\1.jpg")
ScaleTexture grass, 50, 50
EntityTexture ground, grass

While Not KeyDown(1)

        curX#=EntityX(Camera, True)
        curY#=EntityY(Camera, True)
        curZ#=EntityZ(Camera, True)
        destX#=EntityX(Pivot,True)
        destY#=EntityY(Pivot,True)
        destZ#=EntityZ(Pivot,True)
        CamX#=((destX#-curX#)/10)
        CamY#=((destY#-curY#)/10)
        CamZ#=((destZ#-curZ#)/10)
        TranslateEntity Camera,CamX,CamY,CamZ
        PointEntity camera,User

    RenderWorld
    UpdateWorld

Flip False :Wend:End
Forever


NitE 17.06.2009 14:07

Ответ: Камера...
 
ну и модель тоже ё-маё, без неё не работает

ken park 17.06.2009 14:11

Ответ: Камера...
 
почему?.. хм

Sleepybear 17.06.2009 14:12

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107884)
дай полный код - помогу

Мне кажется или это действительно так сложно?

NitE 17.06.2009 14:15

Ответ: Камера...
 
Цитата:

почему?.. хм
хм, интеренсый вопрос... хм.. попробуй удали модель и запусти игру... хм.. неработает.. ну вот и у меня неработает... хм

......... залей её куданить и тексутру травы тоже, мне там парится неохота - нужна помощь, так хоть это сделай...

Sleepybear, нет, совсем не сложно )

pitonms 17.06.2009 14:21

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107887)
ну и модель тоже ё-маё, без неё не работает

Ты что бы проверить ???
user=createsphere()
и проверяй

ken park 17.06.2009 14:21

Ответ: Камера...
 
какая разница какая модель, можно же хоть куб вставить и вместо текстуры цвет положить... ХМ!

Sleepybear 17.06.2009 14:29

Ответ: Камера...
 
Сижу на работе не могу кидать вложения у меня прокся ругается :(

Код:

Graphics3D 800,600,32,0

User=LoadMesh("markio\mariorun.x")
ScaleEntity User,.1,.1,.1
Pivot=CreatePivot(User)
PositionEntity pivot,0,50,-100
Camera=CreateCamera()

ground=CreateCube()
tex=LoadTexture("markio\face.bmp")
PositionEntity ground,0,-10,0
EntityTexture ground,tex
ScaleEntity ground,50,.1,50

While Not KeyDown(1)

        curX#=EntityX(Camera, True)
        curY#=EntityY(Camera, True)
        curZ#=EntityZ(Camera, True)
        destX#=EntityX(Pivot,True)
        destY#=EntityY(Pivot,True)
        destZ#=EntityZ(Pivot,True)
        CamX#=((destX#-curX#)/10)
        CamY#=((destY#-curY#)/10)
        CamZ#=((destZ#-curZ#)/10)
        TranslateEntity Camera,CamX,CamY,CamZ
        PointEntity camera,User
        If KeyDown(17) Or KeyDown(200) MoveEntity User,0,0,.1
        If KeyDown(30) Or KeyDown(203) MoveEntity User,-.1,0,0
        If KeyDown(31) Or KeyDown(208) MoveEntity User,0,0,-.1
        If KeyDown(32) Or KeyDown(205) MoveEntity User, .1,0,0
    RenderWorld
    UpdateWorld
       
Flip False :Wend:End


если не понятно While Not KeyDown(1) Wend

то вместо While Not KeyDown(1) поставь
Код:

Repeat
 If KeyDown(1) Exit

а вместо Wend Forever

ken park 17.06.2009 14:32

Ответ: Камера...
 
во офигенно ) спасибочки ) потом сделаю скорость пониже, круто будет. спасибо!!

Sleepybear 17.06.2009 14:37

Ответ: Камера...
 
Цитата:

Сообщение от ken park (Сообщение 107896)
во офигенно ) спасибочки ) потом сделаю скорость пониже, круто будет. спасибо!!

незачто, если будеш переделывать чужое а не пискать своё то ничему не научишся. Так что читай help и пиши сам.

NitE 17.06.2009 14:58

Ответ: Камера...
 
ахх... начал чтото писать, да надоело сразу - вот гляди исходник моей старой игры
Код:

Include "ashadow.bb"
Include "fps.bb"

aGraphics3D 1280,1024,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
HidePointer()
pxCreateWorld(1,"key")

Function LoadSkyBox(file$)
        m=CreateMesh()
        ;front face
        b=LoadBrush( file$+"_lf.dds",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
        AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3:
        FreeBrush b
        ;right face
        b=LoadBrush( file$+"_fr.dds",49 )
        s=CreateSurface( m,b )
        AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
        AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;back face
        b=LoadBrush( file$+"_bk.dds",49 )
        s=CreateSurface( m,b )
        AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
        AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;left face
        b=LoadBrush( file$+"_rt.dds",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
        AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;top face
        b=LoadBrush( file$+"_UP.dds",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
        AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ScaleMesh m,10000,10000,10000
        FlipMesh m
        EntityFX m,1+8
        Return m
End Function


Function FreeFlyCam(ent)
        mxspd#=MouseXSpeed()*Mousespeed
        myspd#=MouseYSpeed()*Mousespeed
        MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
        campitch#=EntityPitch(ent)+myspd#
        If campitch#<-89 Then campitch#=-89
        If campitch#>89 Then campitch#=89
        RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)
End Function




Function PlayerCam(ent,m#,ent2)
        mxs#=MouseXSpeed()*m
        mys#=MouseYSpeed()*m/3

        mouse_shake=Abs(((mxs+mys)/2)/1000.0)

        dest_camera_yaw#=dest_camera_yaw#-mxs
        dest_camera_pitch#=dest_camera_pitch#+mys

        camera_yaw#=camera_yaw+((dest_camera_yaw-camera_yaw)/5)
        camera_pitch#=camera_pitch+((dest_camera_pitch-camera_pitch)/5)
       
       
        pxBodySetRotation ent,0,pxBodyGetRotationYaw(ent)+camera_yaw#,0
        MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
End Function

Function CreatePhysEntity(mass)
p.phys_body = New phys_body
p\entity =ACreateCube(0,2)
p\mass = mass
p\phys_entity = pxBodyCreateCube(1,1,1,p\mass)
pxBodySetPosition(p\phys_entity,0,20,0)
End Function

Type phys_body
Field entity
Field phys_entity
Field mass
End Type

Function PlayerMove(ent,speed)

If KeyDown(30)
pxBodySetLocalLinearSpeed(ent,speed,pxBodyGetLocalLinearSpeedY(ent),0)
move_bool=0
ElseIf KeyDown(32)
pxBodySetLocalLinearSpeed(ent,-speed,pxBodyGetLocalLinearSpeedY(ent),0)
move_bool=0
ElseIf KeyDown(31)
pxBodySetLocalLinearSpeed(ent,0,pxBodyGetLocalLinearSpeedY(ent),speed)
move_bool=0
ElseIf KeyDown(17)
pxBodySetLocalLinearSpeed(ent,0,pxBodyGetLocalLinearSpeedY(ent),-speed)
move_bool=0
Else
;pxBodySetLocalLinearSpeed(ent,0,-10,0)
move_bool=1
EndIf
End Function




aml=175
AmbientLight aml,aml,aml



light2=CreateSLight(2,100,155,155,155)
light=CreateSLight(1,100,155,155,155)



PositionEntity light,0,30,0

Global mousespeed#=0.5
camera=CreateCamera()
CameraRange(camera,.1,100000)

loadskybox("skybox\1")
speed#=1


player=LoadAnimMesh("actor_frank\frank.b3d")
jump=LoadAnimSeq(player,"actor_frank\jump.b3d")

player_phys=pxBodyCreateCapsule(5,5,1000)



player_speed=30



plane=ACreateCube()
ScaleEntity plane,1000,0.0001,1000

PointEntity light,plane

sand=LoadTexture("sand.jpeg")
EntityTexture plane,sand
ScaleTexture sand,.007,.007

MoveEntity camera,0,15,17
TurnEntity camera,13,180,0
EntityParent camera,player

gorka=ACreateCube()
ScaleEntity gorka,20,.1,20
MoveEntity gorka,40,5,10
TurnEntity gorka,20,0,0
phys1=pxBodyCreateCube(20,.1,20,0)
pxBodySetPosition phys1,40,5,10
pxBodySetRotation phys1,20,0,0


Global move_bool=0

max_player_speed=30

Animate player,1,1,jump,5

Repeat

If KeyHit(16) Animate player,1,1,1,5



pxBodySetLocalLinearSpeed(player_phys,0,-25,0)

pxBodySetFrozenRot(player_phys,1)



PositionEntity(player,pxBodyGetPositionX(player_phys),pxBodyGetPositionY(player_phys)-7.48,pxBodyGetPositionZ(player_phys))
RotateEntity(player,pxBodyGetRotationPitch(player_phys),pxBodyGetRotationYaw(player_phys),pxBodyGetRotationRoll(player_phys))

playermove(player_phys,player_speed)

If KeyDown(57) createphysentity(12)

For p.phys_body = Each phys_body
pxBodySetEntity(p\entity,p\phys_entity)
Next



playercam(player_phys,1.2,camera)

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2



ARenderWorld(camera)
pxRenderPhysic(30,0)

Text 10,10,pxkey
Flip
Until KeyHit(1)
End

ту конечно используется много всякой фигни, но переделать под блиц не проблема, и помне так всё намного проще чем у того-же Sleepybear

Sleepybear 17.06.2009 15:05

Ответ: Камера...
 
NitE :)

Весело сегодня тут у вас

ken park 17.06.2009 15:56

Ответ: Камера...
 
NitE, не мог бы куда нибудь фаилы закачать которые нужны для запуска ? Очень интересно посмотреть...

NitE 17.06.2009 16:03

Ответ: Камера...
 
хм..хм..хм..хм..хм.. почему ?:crazy:
да там собственно ничего интересного, только передвижение, поворот и ещё какаято хрень...
http://www.filehoster.ru/files/cx9645

Dzirt 17.06.2009 16:06

Ответ: Камера...
 
Ну да....парню осталось теперь достать Ashadow и PhysX ;)

Sleepybear 17.06.2009 16:12

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107922)
хм..хм..хм..хм..хм.. почему ?:crazy:
да там собственно ничего интересного, только передвижение, поворот и ещё какаято хрень...
http://www.filehoster.ru/files/cx9645

кинь плз decls уж очень хотца глянуть на тени

ken park 17.06.2009 16:14

Ответ: Камера...
 
pxcreateworld no find o_O

Sleepybear 17.06.2009 16:15

Ответ: Камера...
 
Цитата:

Сообщение от ken park (Сообщение 107927)
pxcreateworld no find o_O

Это вопрос?

NitE 17.06.2009 16:16

Ответ: Камера...
 
Dzirt,Sleepybear, зачем заранее спрашивать ? там всё есть
ken park, установи драйвер PhysX

открывать/запускать game.bb

Dzirt 17.06.2009 16:18

Ответ: Камера...
 
Ссорь провтикал ссылку.::o"

ken park 17.06.2009 16:19

Ответ: Камера...
 
а можна ссылочку на плагин ? ну или где скачать ?
/offtop, я там в теме спросил, в общем, там такое свечение белое, афигенно красивое с неба... это тоже плагин ?

Dzirt 17.06.2009 16:20

Ответ: Камера...
 
А тебе там в теме не ответили?!

http://www.forum.boolean.name/showthread.php?t=8391

Sleepybear 17.06.2009 16:20

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107930)
Dzirt,Sleepybear, зачем заранее спрашивать ? там всё есть
ken park, установи драйвер PhysX

открывать/запускать game.bb

Почему зарание? я слил dll запихал в userlibs, догадался что нуна тыркнуть на game.bb но не пашет, мож я туплю где?

NitE 17.06.2009 16:21

Ответ: Камера...
 
http://www.nvidia.ru/object/physx_9....8_whql_ru.html
в какой теме ? какое свечение ? да, плагин.

что выдает? просто разархивируй папку и открывай/компиль, незнаю в чем дело.

Dzirt 17.06.2009 16:22

Ответ: Камера...
 
>:( Да ну вас.

Sleepybear 17.06.2009 16:27

Ответ: Камера...
 
эх....:( опять я все проглядел
у меня говорит что ненаходит функцию px......

жаль очень жаль.

NitE 17.06.2009 16:32

Ответ: Камера...
 
тебе вероятно по ссылке поста #38

Sleepybear 17.06.2009 16:36

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107939)
тебе вероятно по ссылке поста #38

тебя можно понять двух смысленно
может №37 или все таки №38 :-D
ладно проехали, с моей видео не прокатит.

Просто интересно чем же все кончится, про вид от третего лица?

NitE 17.06.2009 16:39

Ответ: Камера...
 
ыы промахнулся )) какое у тя видео? пойдее с любым покатит, так-что если хочешь посмотреть ставь драйвер

Sleepybear 17.06.2009 16:44

Ответ: Камера...
 
Цитата:

Сообщение от NitE (Сообщение 107942)
ыы промахнулся )) какое у тя видео? пойдее с любым покатит, так-что если хочешь посмотреть ставь драйвер

40 не могу слить траф ограничен. да и сижу я на Intel(R) G33/G31 Express Chipset Family (на работе я сижу):''((

ken park 17.06.2009 17:06

Ответ: Камера...
 
/offtop ээх, как я вас люблю парни!

Антихрист 17.06.2009 17:21

Ответ: Камера...
 
Не надо парню мозги раньше времени всякими физиксами пудрить...

Dzirt 17.06.2009 17:33

Ответ: Камера...
 
Так и я очем! Физики-шмизики єто все потом....те самые эффекты и то не нужны для начала...Главное понять логику,выучить команды,решать простые(и не только) проблемы самому(ну или хотябы питатся),в конце-концов че-нить забацать,и только потом уже всякие фишки розучивать\прикручивать.Имхо.

ken park 17.06.2009 17:54

Ответ: Камера...
 
а блин, а можно мышкои сделать чтобы камера вокруг оси персонажа могла крутиться ?

Sleepybear 17.06.2009 18:09

Ответ: Камера...
 
Цитата:

Сообщение от ken park (Сообщение 107956)
а блин, а можно мышкои сделать чтобы камера вокруг оси персонажа могла крутиться ?

Можно!

ken park 17.06.2009 18:10

Ответ: Камера...
 
спасиба..

ken park 17.06.2009 20:54

Ответ: Камера...
 
ХМММ!!... А, во! я очень постараюсь подумать... но... подскажите хотя бы, вообще с чего начать. Ну вот уже персонаж двигается вперед назад влево вправо... ХМ. так вот (: мне надо сделать что бы при нажатии влево или вправо, персонаж не двигался, а поворачивался стоя на месте, и как бе чтобы после того как его повернули, уже нажимать вперед и он будет идти в ту сторону. не знаю, может не понятно описал... но, прошу помощи

ken park 17.06.2009 20:55

Ответ: Камера...
 
RotateEntity ?

NitE 17.06.2009 21:12

Ответ: Камера...
 
описал понятно... да...

Dzirt 17.06.2009 21:12

Ответ: Камера...
 
Ок, если никто не опредит то выложу пример.Подожди минут 10.

ken park 17.06.2009 21:22

Ответ: Камера...
 
спасиба ^_^ жду хотя есть хелповскии` пример. я пытался внедрить в уже сделанное, не получается ( вот код
Код:

Graphics3D 1024,768,32,1

User=LoadMesh("D:\psychodrama\Shadow.3ds")
ScaleEntity user, 0.5, 0.5, 0.5
Pivot=CreatePivot(User)
PositionEntity pivot,0,170,250
Camera=CreateCamera()
light=CreateLight()

ground = CreatePlane()
PositionEntity ground, 0, -25, 10
grass = LoadTexture("D:\psychodrama\1.jpg")
ScaleTexture grass, 50, 50
EntityTexture ground, grass

While Not KeyDown(1)

        curX#=EntityX(Camera, True)
        curY#=EntityY(Camera, True)
        curZ#=EntityZ(Camera, True)
        destX#=EntityX(Pivot,True)
        destY#=EntityY(Pivot,True)
        destZ#=EntityZ(Pivot,True)
        CamX#=((destX#-curX#)/10)
        CamY#=((destY#-curY#)/10)
        CamZ#=((destZ#-curZ#)/10)
        TranslateEntity Camera,CamX,CamY,CamZ
        PointEntity camera,User
       
        If KeyDown(205) MoveEntity User,-.1,0,0
        If KeyDown(200) MoveEntity User,0,0,-.1
        If KeyDown( 203 )=True Then yaw#=yaw#-1
      If KeyDown(208) MoveEntity User,0,0,.1

RotateEntity User, yaw#

    RenderWorld
    UpdateWorld
       
Flip False :Wend:End


ken park 17.06.2009 21:23

Ответ: Камера...
 
Влево никак не поворачивает. Я понимаю, я тупои, но все же блин... не получается просто

newman 17.06.2009 21:27

Ответ: Камера...
 
Смотри в help'е функцию TurnEntity :)

If KeyDown( 208 ) MoveEntity User, 0,0,-1
If KeyDown( 200 ) MoveEntity User, 0,0,1

ken park 17.06.2009 21:32

Ответ: Камера...
 
чего он wend ругается о_О

Код:

yaw#=0
If KeyDown(205) MoveEntity User,-.1,0,0
If KeyDown(200) MoveEntity User,0,0,-.1
конецформыначалоформыIf KeyDown( 203 )=True Then yaw#=-1
If KeyDown(208) MoveEntity User,0,0,.1
TurnEntity User, yaw#

    RenderWorld
    UpdateWorld
       
Flip

Wend

End


newman 17.06.2009 21:36

Ответ: Камера...
 
Цитата:

Сообщение от ken park (Сообщение 108000)
чего он wend ругается о_О

Код:

yaw#=0
If KeyDown(205) MoveEntity User,-.1,0,0
If KeyDown(200) MoveEntity User,0,0,-.1
конецформыначалоформыIf KeyDown( 203 )=True Then yaw#=-1
If KeyDown(208) MoveEntity User,0,0,.1
TurnEntity User, yaw#

    RenderWorld
    UpdateWorld
       
Flip

Wend

End



потому что TurnEntity принимает 3 параметра, а ты один передаёшь :)

ken park 17.06.2009 21:38

Ответ: Камера...
 
не, все равно (

Dzirt 17.06.2009 21:40

Ответ: Камера...
 
Вообщем не нашел.....Держы для начала.:
Код:

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

;stuff
cam=CreateCamera()
PositionEntity cam,0,2,-10

cube=CreateCube()

light=CreateLight()

plane=CreateCube()
ScaleEntity plane,30,1,30
MoveEntity plane,0,-2,0
EntityColor plane,155,0,0

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

While Not KeyHit(1)

PointEntity cam,cube

x=MouseX()

If x>GraphicsWidth()-350
MoveEntity cam,0.1,0,0
ElseIf x<GraphicsWidth()-700
MoveEntity cam,-0.1,0,0

EndIf

UpdateWorld
RenderWorld()
Text 10,10,""+MouseX()
Text 10,20,""+MouseY()
Flip
Wend
End

Черезжопно.....но именно так я и делаю на быструю руку.А сейчас извени меня ждет проэкт ;)

ken park 17.06.2009 21:42

Ответ: Камера...
 
большое спасиба, но мне надо было именно клавишами > и < . ну все равно спасиба

ken park 17.06.2009 21:51

Ответ: Камера...
 
хм.. (

impersonalis 17.06.2009 22:59

Ответ: Камера...
 
imper вошёл в чат
всем прЮвет

ken park 17.06.2009 23:50

Ответ: Камера...
 
хотя не... все таки мышкои... вы просто поимите, мне надо сделать основу, ну как бе движок.. как смешно это не звучало бы, но мне это очень нужно... задумка уже 3 года в голове... так хочется развить, сделать.. очень прошу все таки вашеи помощи.. помогите с мышкои.. код я не однократно кидал.. буду очень благодарен, безумно просто. надо сделать чтобы персонаж поворачивался мышкои, а бегать просто кнопкои вперед или w. я посмотрел то что сделал dzirt, но незнаю как мне внедрить в мои код. прошу очень помощи. спасиба...


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

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