موضوع: كشف التصادم

ردود: 10 | زيارات: 1077
  1. #1
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196

    كشف التصادم

    السلام عليكم

    كيف أستطيع اني أعرف هل الجسمين مصطدمين ام لا في اللعبة (ثلاثية الابعاد)

    أرجو الرد بسرعة يا شباب
    وشكرا
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته


  2. #2
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    وينكم يا شباب هل السؤال صعب؟

    ام انه غير مفهوم

    هذا مثال:
    عندي جسمين(صندوقين) صنعتهم بالماكس وحولتهم الى x وبعدين استدعيتهم بالفيجوال بيسيك

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

  3. #3
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    السؤال بطريقة أخرى

    كيف أعرف مكان الصندوق يعني الحداثي x والاحدثي y والاحداثي z
    (x,y,z)

    أرجو الرد يا شباب بسرعة
    لأني أظن ان هذا الشي يعرفه كل مبرمج العاب ولا أنا غلطان؟
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

  4. #4
    السلام عليكم ،،
    نأسف على التأخر فى الرد .
    الطريق سهله اخى و تندرج نحو الاتى ....

    كشف التصادم بين صور ثنائية الابعادBounding Box : تستخدم مستطيل وهمى حول الصور و إذا تقاطعت الاقطار ... فهناك تصادم ..
    كشف التصادم بين المجسمات الثلاثية الابعادBound Sphere :
    (نفرض) أن كل مجسم محيط بكره .. إذا تقاطعت أنصاف أقطار المجسمات إذن هناك تصادم ..
    دايركت اكس تملك دالة تحسب الكره و تحسب أنصاف الاقطار ..
    الطريق سهله ، و لكن تحتاج حقاً إلى مقال (طويل) ... سيكون قريباً ..
    رب زدنِى علماً
    جيتس و اينشتين احدثوا ثورة في مجالاتهم و لكن بعد كل هذا هل استطاعوا ان "يميزوا" بعد كل ذلك ان الله احد لم يلد و لم يولد ؟
    نعم - احمد صالح .
    برمجة الألعابُ هي عملية تــحويل الصور الميتة إلي صور حية - احمد صالح .
    الامـة التى تــفرط فى لغـــتها كالتى تفرط فى عرضها !!!
    انا لو لم اكن مصريا * لوددت أن اكون مصريا

  5. #5
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    مشكور يا أخ أحمد صالح على ردك

    وأنا بانتظار مقالك

    لأني ما فهمت عليك ولكن طريقة كشف التصادم بين المجسمات الثلاثية عرفتها الحمد لله بعد ما تعبت

    ولكن عندي سؤال ثاني
    وهو كيف أخلي المجسم يدور حسب الزاوية اللي انا اعطيه هي؟

    أنا أستخدم هذي الطريقة للدوران والمفروض انه يدور بزاية قدرها 90 درجة ثم يوقف
    LoftFrame.SetRotation LoftFrame, 0, 90, 0, 1

    ولكنه يدور اقل من كذا واذا زودت آخر رقم يدور بزاوية أكبر من 90 درجة

    فأرجو يا شباب تقولولي الطريقة

    ومعليش على كثر الأسئلة لكني أبغى أتعلم
    ومشكور مره ثانيه يا أخ احمد صالح
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

  6. #6
    إستخدم المصفوفات فى دوران محاور مجسمك ، أو إذا كنت تريد الطريقة الاحترافية فأستخدم الاعداد الرباعية التخيل Quaternion فهى أفضل فى دوران المحاور عن المصفوفة Matrix .

  7. #7
    نسيت شىء
    أعتقد أنه من الافضل عرض كودك ; لمعرفة مشكلتك ..
    رب زدنِى علماً
    جيتس و اينشتين احدثوا ثورة في مجالاتهم و لكن بعد كل هذا هل استطاعوا ان "يميزوا" بعد كل ذلك ان الله احد لم يلد و لم يولد ؟
    نعم - احمد صالح .
    برمجة الألعابُ هي عملية تــحويل الصور الميتة إلي صور حية - احمد صالح .
    الامـة التى تــفرط فى لغـــتها كالتى تفرط فى عرضها !!!
    انا لو لم اكن مصريا * لوددت أن اكون مصريا

  8. #8
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    السلام عليكم

    أشكرك كثيرا يا أخ محمد صالح على اهتمامك

    أما بالنسبة للكود فأنا عرضته وهذا هو
    LoftFrame.SetRotation LoftFrame, 0, 90, 0, 1

    وانا الحمد لله عرفت المشكله بمساعدة أحد الأخوه وهي انه الكمبيوتر يتعامل مع الراديان

    وأشكرك مره ثانيه يا أخي احمد صالح

    واليوم ظهر لدي سؤال جديد

    وهو هل يمكن تحويل الرقم الى وقت كما في الآلات الحاسبة العلمية
    مثلا اكتب 12.5 (هذا رقم) تحوله الآله بالضغط على الشكل الذي أوله دائره وبعدين ثلاث فواصل الى وقت فتقول 12 وبدين دائره 30 وبعدين دائره 0

    فهل يوجد في الفيجوال بيسيك داله تعمل هذا الشي؟
    ومشكورين
    سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

  9. #9
    السلام عليكم

    نعم فـ 0.5 بالدقائق = 0.5 * 60 = 30 دقيقة

    والمعادلة الكاملة سهلة الإستنتاج

    كود:
    Public Function Ctime(Time As Single) As String
    Dim H As Single, M As Single, S As Single, X(2) As String
    
    H = Int(Time)
    M = Int(3600 * (Time - H) / 60)
    S = Int(((3600 * Time) - ((H * 3600) + (M * 60))))
    
    If H < 10 Then X(0) = "0"
    If M < 10 Then X(1) = "0"
    If S < 10 Then X(2) = "0"
    Ctime = X(0) & Str(H) & " :" & X(1) & Str(M) & " : " & X(2) & S
    
    End Function
    وعند إدخال 12.5 فستكون المخرجات "00 : 30 : 12" بالشكل المطلوب
    بالطبع هنالك إحتمال لوجود دالة API او vb built-in

    بالتوفيق
    كود:
    Arabian Xtreme Designs          www.axdteam.com

  10. #10
    عضو فعال
    تاريخ التسجيل
    Sep 2003
    المنطقة
    مجرة درب التبانة
    ردود
    196
    جزاك الله خير يا أخي game_maker على ردك الشافي الوافي

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

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل