السلام عليكم
لدي سؤال ارجة ان تجيبوني عليها وستفعلون ان شاء الله :P :wink:
لنفترض ان لدي جسمان
كيف أجعل لكل منهما حركة خاصة به
يعني لديهما حركتين مختلفتين في نفس المشهد
مثلا واحد يدور والآخر يتحرك حركة أخرى
السلام عليكم
لدي سؤال ارجة ان تجيبوني عليها وستفعلون ان شاء الله :P :wink:
لنفترض ان لدي جسمان
كيف أجعل لكل منهما حركة خاصة به
يعني لديهما حركتين مختلفتين في نفس المشهد
مثلا واحد يدور والآخر يتحرك حركة أخرى
لم أفهم
ممكن التوضيح وشكرا
// نرسم الكائن الأول بمصفوفتة الخاصة Device->SetTransform(D3DTS_WORLD,&mat1); box1->DrawSubset(0); // نرسم الكائن الثاني بمصفوفتة الخاصة وهكذا فقط لاغير Device->SetTransform(D3DTS_WORLD,&mat2); box2->DrawSubset(0);
أرجو أن أكون قد أجبتك
اقتباسنرسم الكائن الأول بمصفوفتة الخاصة
ماذا تعني بذلك
تم تعديل هذه المشاركة بواسطة 852147 في 11 أكتوبر 2008 في 15:41
اقتباسماذا تعني بذلك
موقعه الخاصة به
أعطينا الكود وسأعدله لك وبعض الشرح له :thumb_up:
تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 11 أكتوبر 2008 في 23:34
HRESULT Box ()
if ( FAILED ( D3DXCreateBox ( Device ,1.5,1.5,1.5,&mdoor, NULL)))
{
return E_FAIL ;
}
if ( FAILED ( D3DXCreateTextureFromFile ( Device , "glass.bmp" , &door )))
{
return E_FAIL ;
}
D3DXMATRIX anim1;
D3DXMatrixRotationX ( &anim1 , timeGetTime()/1000.0f);
Device->setTransforme ( D3DTS_WORLD , &anim1);
Device->SetTexture ( 0 , door);
HRESULT O1 ()
{
D3DXCreateTeapot ( Device , &Mesh , NULL);
D3DXMATRIX anim2;
D3DXMatrixRotationY ( &anim1 , timeGetTime()/1000.0f);
Device->setTransforme ( D3DTS_WORLD , &anim1);
Device->SetTexture ( 0 , door);
return S_OK ;
}
VOID Camera ()
{
D3DXMATRIXA16 Map ;
D3DXMATRIXA16 View ;
D3DXVECTOR3 V1 ( -3.0f , 0.0f , -5.0f);
D3DXVECTOR3 V2 ( 0.0f , 0.0f , 0.0f);
D3DXVECTOR3 V3 ( 0.0f , 1.0f , 0.0f);
D3DXMatrixLookAtLH ( &View , &V1 , &V2 , &V3 );
Device->SetTransform ( D3DTS_VIEW , &View);
D3DXMatrixPerspectiveFovLH ( &Map , D3DX_PI/4 , 1.0f , 1.0f , 100.0f);
Device->SetTransform ( D3DTS_PROJECTION , &Map);
}
VOID Render ()
{
Device->Clear ( 0 , NULL , D3DCLEAR_TARGET , D3DCOLOR_XRGB(0,0,0) , 1.0f , 0);
if ( SUCCEEDED ( Device->BeginScene ()))
{
Mesh->DrawSubset (0);
mdoor->DrawSubset (0);
Camera();
Device->EndScene ();
}
Device->Present ( NULL , NULL , NULL , NULL );
}تم تعديل هذه المشاركة بواسطة 852147 في 14 أكتوبر 2008 في 20:46
أرجو إضافة المشروع لكي أعدله لك و تعديل كامل ومنسق
D3DXMATRIX anim2; D3DXMatrixRotationY ( &anim1 , timeGetTime()/1000.0f); Device->setTransforme ( D3DTS_WORLD , &anim1);
anim2 وليس anim1
D3DXMATRIX anim2; D3DXMatrixRotationY ( &anim2 , timeGetTime()/1000.0f); Device->setTransforme ( D3DTS_WORLD , &anim2);

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
حاولت لكن نفس المشكلة ياصديقي
ممكن مثال كامل من عندك
شكرا وآسف على التأخير
852147 كتب:حاولت لكن نفس المشكلة ياصديقيممكن مثال كامل من عندك
شكرا وآسف على التأخير
تكرم اخي ولا يهمك , سأقوم بتحظير مثال بسيط :happy:

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
D3DXMATRIX R1,R2; D3DXMatrixRotationY(&R1,x1); D3DXMatrixRotationY(&R2,x2); Device->SetStreamSource(0,Triangle,0,sizeof(Vertex)); Device->SetFVF(Vertex::FVF); Device->SetTexture(0,Tex); ////////////////////////////////////////////////////// Device->SetTransform(D3DTS_WORLD,&R1); Device->DrawPrimitive(D3DPT_TRIANGLELIST,0,12); Device->SetTransform(D3DTS_WORLD,&R2); Device->DrawPrimitive(D3DPT_TRIANGLELIST,0,12); //////////////////////////////////////////////////////

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
لقد نجحت شكرا ياأخي
شكرا