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

كيف أجعل العدو يدور بأتجاه اللاعب

بدأه crazy Programm2007er في 6 يوليو 2008 · 7 رد · 1,068 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف أستطيع أن أجعل المجسم يتبع مجسم أخر

أي كيف أجعل العدو يدور بأتجاه اللاعب

ياستخدام المحرك irrlicht

بلغة vb.net أو C#

يوجد مثال في المرفقات يوضح كل شيء

DirectX_Engine.rar

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 7 يوليو 2008 في 05:47

#2

السلام عليكم هناك طريقه اعرفها سوف اقول لك فكرتها وانت اكتبها بأى لغة

الفكره ان تعرف موقع الشخصيه المراد اتباعها

فلنفرض ان الشخصيه لها المتغيرات الأتيه

x1,y1,z1

والعدو

x2,y2,z2

سوف يكون الأمر شبيه بالأتى

إذا x1 اكبر من x2 اذن x2 = نفسها + 1 elas =نفسها -1

ونفس الكلام مع y1 ,z1

هذه طريقة وليست الأفضل

لى سؤال من اين حصلت على هذا المثال

163374357.gif

#3
sayedf1 كتب:
السلام عليكم هناك طريقه اعرفها سوف اقول لك فكرتها وانت اكتبها بأى لغة

الفكره ان تعرف موقع الشخصيه المراد اتباعها

فلنفرض ان الشخصيه لها المتغيرات الأتيه

x1,y1,z1

والعدو

x2,y2,z2

سوف يكون الأمر شبيه بالأتى

إذا x1 اكبر من x2 اذن x2 = نفسها + 1 elas =نفسها -1

ونفس الكلام مع y1 ,z1

هذه طريقة وليست الأفضل

قمت بقرائة التعقيب أكثر من 5 مرات ولم أفهم شيء

أعتقد أن الأمر يحتاج كود

بأي لغة

---------------------

اقتباس
لى سؤال من اين حصلت على هذا المثال

من أحد المواضيع في المنتدى

--------------------------------------------------------------------------

إذا لم تفهم المقصود فسأخبرك

أنا أعلم كيف أجعل العدو يلحق باللاعب ولكن كيف أجعل العدو يدور بأتجاه اللاعب

أرجو أن تكون فهمت قصدي

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 7 يوليو 2008 في 05:28

#4

اعتقد انه مثال محركي :wub:

إن نظرت لمحرك الخط الاحمر ، ستجد الكود مرفق هناك

و هذا هو الكود الللازم لعمل ذلك ، المسألة هي فقط رياضيات

{float pos_x1 = m_Objects.GetXPos();
 float pos_y1 = m_Objects.GetYPos();
 float pos_z1 = m_Objects.GetZPos();
// هات المحاور الثلاثة للشخصية المتبعة
   float pos_x2 =g_OG.GetXPos();
   float pos_y2 =g_OG.GetYPos();
   float pos_z2 = g_OG.GetZPos();
// الثلاث محاور للشخصية التابعة
 static float MoveX,MoveZ;

  D3DXVECTOR3 direction;
  D3DXVECTOR3 d;
direction.x = pos_x1 -pos_x2;
direction.z= pos_z1 -pos_z2;
// قانون المسافة بين نقطتين

direction.y=pos_y1-pos_y2;

D3DXVec3Normalize(&direction, &direction);
// معيار الاتجاره

 float Direction =(float)atan2(direction.x,direction.z);

// الزاوية	  
g_OG.MoveRel(MoveX,0,MoveZ);
// تحرك بمقدار ازاحة علي السين و ص
g_OG.Rotate(0.0f,Direction, 0.0f);}
//لف التابع حولين متجه الجديد direction 
// في العين فقط  لان الفكرة بسيطة انت تدور بالنسبة للشخصية المتبعه بمقدار زاوية علي محور ص فقط

التعديل : توضيح الفكرة و هي ببساطة انت واقف ساكن و تريد ان تدور حولين الY قدر ما تحتاجة الشخصية الاخري لتتبعها .

تم تعديل هذه المشاركة بواسطة احمد صالح في 7 يوليو 2008 في 06:03

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

#5

وهذا أيضا درس عن الإتجاهات

/index.ph...&pid=662332

#6

شكرا على الردود اللمتازة

ماهذا الكائن"g_OG"

هل هو العدو أو اللاعب

أخ أحمد أقترح عليك وضع مشروع ++C أو C# كمثال ويكون مفتوح المصدر

تم تعديل هذه المشاركة بواسطة crazy Programm2007er في 7 يوليو 2008 في 09:53

#7

الكود مفتوح المصدر في قسم الدايركت اكس :)

التعديل: الكائن g_OG هو العدو

تم تعديل هذه المشاركة بواسطة احمد صالح في 7 يوليو 2008 في 10:31

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

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

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