الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب مساعدة حول التصادم

مغلق
بدأه abdof في 19 يونيو 2007 · 4 رد · 1,565 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا ابرمج لعبة يجب على اللاعب (الذي وضعت معه صندوق وهمي يحيط به )أن يدخل ويخرج من باب المنزل ويجب عليه أيضاً أن لا يخرج من جدران المنزل (الذي هو عبارة عن Mesh). لغة البرمجة التي استخدمها C#

لذلك فأنا بحاجة لصف يعطني متى يتم التصادم بين الصندوق والـ Mesh.

أو التصادم بين tow Meshs

فهل يوجد أحد لديه خبرة في هذا المجال؟

وشكراً.

#2

تستطيع استخدام المكتبة D3DX في تنفيذ ذلك ، هناك دالة تكشف عن شعاع اذا تقاطع مع مجسم يحيطه كره "راجع المرشد الكامل الفصل الرابع بالمنتدي" .

انا استخدم هذا الكود لتنفيذ ذلك و لكن ب C

BOOL CheckIntersect(float XStart, float YStart, float ZStart,
								   float XEnd,   float YEnd,   float ZEnd,
								   float *Length)
{

  BOOL  Hit;
  float u, v, Dist;
  float XDiff, YDiff, ZDiff, Size;
  DWORD FaceIndex;
  D3DXVECTOR3 vecDir;
   sMesh *MeshPtr;
if((MeshPtr = g_MLevel.GetParentMesh()) == NULL)
	return FALSE;  // No polygons hit

  XDiff = XEnd - XStart;
  YDiff = YEnd - YStart;
  ZDiff = ZEnd - ZStart;
  Size  = (float)sqrt(XDiff*XDiff+YDiff*YDiff+ZDiff*ZDiff);
  D3DXVec3Normalize(&vecDir, &D3DXVECTOR3(XDiff, YDiff, ZDiff));

	// Go through each mesh looking for intersection
  while(MeshPtr != NULL) {
	D3DXIntersect(MeshPtr->m_Mesh,							\
				&D3DXVECTOR3(XStart,YStart,ZStart), &vecDir,  \
				&Hit, &FaceIndex, &u, &v, &Dist,NULL,NULL);


	if(Hit == TRUE) {
	  if(Dist <= Size)
		return TRUE;  // Hit a polygon
	}

	MeshPtr = MeshPtr->m_Next;
  }
  return FALSE;  // No polygons hit

}

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

مرحبا, وهذا الفصل الرابع لحبيبنا أحمد صالح.(انصحك تابع السلسله, واحتفظ بها)

#4

:lol: شكرا أخي أحمد صالح

ولدي طلب صغير!! هل تستطيع أن تكتب شفرة التصادم بلغة الفيجول بيسك :)

وشكرا للجميع

#5

شكراً أخ احمد رح احاول ان تسقط هذا الكود على الـ C#

علماً بأني استخدمت تابع يقابل D3DXIntersect موجود ضمن الـ class Mesh ولكن لم يعطني نتائج دقيقة.

ففي بعض الحيان يعطني ان شعاع النظر للكاميرا يتداخل مع mesh المنزل وتارة علماً أن هناك تصادم بين الكاميرا والمنزل (الكاميرا داخل المنزل)

وشكراً

هذا الموضوع مغلق.

مواضيع مشابهة