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

Colossus 21.11.2008 00:56

Что это за лажа?!
 
Код:

Graphics3D 800,600,32,1
SetBuffer BackBuffer()
HidePointer

Const T_PLAYER=1
Const T_THING=2
Const T_WORLD=3

pivot=CreatePivot(cam)

cam=CreateCamera(pivot)
PositionEntity cam,0,3,-10
RotateEntity cam,0,0,0
CameraRange cam,0.1,10000

john=LoadAnimMesh("..\Shooter\John.b3d")
PositionEntity john,0,1,0
ScaleEntity john,0.1,0.1,0.1
RotateEntity john,0,180,0
EntityType (john,T_PLAYER)

nebo=LoadMesh("..\Shooter\Sky.b3d")
PositionEntity nebo,0,0,0
ScaleEntity nebo,10,10,10
EntityType (nebo,T_WORLD)

zavod=LoadMesh("..\Shooter\Zavod.b3d")
PositionEntity zavod,0,0,0
EntityType (zavod,T_WORLD)

rifle=LoadAnimMesh("..\Shooter\Vintores.b3d")
PositionEntity rifle,0,1,20
ScaleEntity rifle,6,6,6
EntityType (rifle,T_THING)

barel=LoadMesh("..\Shooter\Barel.b3d")
PositionEntity barel,20,0,-40
EntityType (barel,T_THING)

luck=LoadMesh("..\Shooter\Luck.b3d")
PositionEntity luck,14.4,0.2,-17.9
ScaleEntity luck,6,6,6
EntityType (luck,T_THING)

energo=LoadMesh("..\Shooter\Emergensy.b3d")
PositionEntity energo,15,0,65
ScaleEntity energo,0.5,0.5,0.5
EntityType (energo,T_THING)

light=CreateLight(barel)
PositionEntity light,0,0,0

light2=CreateLight(zavod)
PositionEntity light2,0,0,0

Run=LoadAnimSeq(john,"..\Shooter\John_Run.b3d")
Picup_w=LoadAnimSeq(john,"..\Shooter\John_Pickup_Rifle.b3d")
IDLE=LoadAnimSeq(john,"..\Shooter\John_IDLE.b3d")

gun=FindChild(john,"GUN01")
EntityParent rifle,gun
PositionEntity gun,0,0,0


Collisions (T_THING,T_WORLD,2,3)
Collisions (T_WORLD,T_THING,2,3)
Collisions (T_PLAYER,T_THING,2,3)
Collisions (T_PLAYER,T_WORLD,2,3)
Collisions (T_THINH,T_PLAYER,2,3)
Collisions (T_WORLD,T_PLAYER,2,3)

Global speed#=0,jumping=False

While Not KeyDown(1)

If KeyDown(17) And (AnimSeq(john)<>jump Or (Not Animating(john))) Then
 If AnimSeq(john)<>Run Or (Not Animating(john)) Animate john,3,0.1,Run
 Speed=Speed+.006
 If Speed>.06 Then Speed=.06
EndIf
MoveEntity john,0,0,-Speed
If KeyDown(31) And (AnimSeq(john)<>jump Or (Not Animating(john))) Then ;??????????
 If AnimSeq(john)<>Run Or (Not Animating(john)) Animate john,3,.1,Run
 Speed=Speed-.002
 If Speed<-.02 Then Speed=-.02
EndIf
Speed=Speed*.95
RotateEntity pivot,EntityPitch(pivot)+MouseYSpeed()*.3,EntityYaw(pivot)-MouseXSpeed()*.3,0

If EntityPitch(pivot)>60 RotateEntity pivot,60,EntityYaw(pivot),0
If EntityPitch(pivot)<-60 RotateEntity pivot,-60,EntityYaw(pivot),0
PositionEntity pivot,EntityX(john),EntityY(john)+4,EntityZ(john)
RotateEntity john,EntityPitch(john),EntityYaw(pivot)+180,0
MoveMouse 400,300
MoveEntity john,0,-.05,0
UpdateWorld
RenderWorld
Text 400,300,".",True,True
Flip 0
Wend
End

блин парни помогите что за хня?! привязываю винтовку к руке а она не привязывается.. ну привязывается но не до конца.. у мя чел бежит а винтовка как бы рядом летит((( а над чтобы она за рукой повторяла движение:wallbash: :SOS: :''((

ABTOMAT 21.11.2008 02:17

Ответ: Что это за лажа?!
 
Рука анимирована костями? Если да то надо привязывать конкретно к той кости к которой должна быть привязана винтовка (к кости запястья, например)

З.Ы. Не выкладывай код своего мини-анриала, который занял бОльшую часть твоего поста.

Без ресов никто запустить не сможет, а просто так ковырять код тоже никто не будет. (ибо неинтересна)


З.З.Ы. Почитал код - возможно, ты не к той кости привязываешь.
Попробуй вставь это между RenderWorld и Flip и понаблюдай за точкой (ну и не мешало бы разобраться в CameraProject и иже с ним - это поможет понять суть):

PHP код:

CameraProject camEntityX(gun), EntityY(gun), EntityZ(gun)
Plot ProjectedX(), ProjectedY() 


Colossus 21.11.2008 10:14

Ответ: Что это за лажа?!
 
Спасибо АВТОМАТ, я учту все твои напутствия)


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

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