Evil Joker
27-02-2012, 01:03 AM
السلام عليكم
سأعطي مقدمة أولاً قبل أن أبدأ بالشرح
محرك الفيزياء: هو محرك يحاكي قوانين الفيزياء ،ويعطي واقعيه للمجسمات عند تأثيرها بالقوى أو الجاذبية ..الخ
في هذا الموضوع سأتكلم عن محرك النيوتن في لغة الدارك بيسيك Dark Basic
Newton Game Dynamics Wrapper
http://bakura.developpez.com/tutoriel/physique/newton/images/newtonlogo.png
يمكنك تحميله من هنا
(http://forum.thegamecreators.com/?m=forum_view&t=154086&b=5)
أحد محركات الفيزياء يوجد الكثير منها مثل Havok ,ODE
الرابر Wrapper : برنامج أو سكربت يمهد الطريق ويجعل من الممكن تشغيله في برنامج آخر.
عند استخدامك للرابر لاول مرة ستجد صعوبة في فهم بعض المصطلحات لذا يجب أن تكون في خلفية جيدة في الدارك بيسيك
أيضا يجب عليك قراءة الامثلة والشرح والا لن تستطيع استيعاب شيء
أولاً :طريقة التركيب:
عند فك الضغط افتح ملف
1) Wrapper انسخ "NDB.dll" الى ملف الدارك بيسيك "compiler\plugins-user"
2) انسخ "keywords_ndb.ini" داخل "Editor\Keywords"
3) انسخ Newton.dll في نفس مكان التطبيق أو داخل ملف المشروع يعني بجانب تطبيق الـ exe
ثانيا: دليل المبتدئين
سأقوم بعون الله بترجمة مستند الورد beginner's guide
مع الملاحظة توجد بعض التعديلات لان الشرح كان يخص النسخة السابقة
( أهلاً ومرحباً بك في دليل المبتدئين لنيوتن ،في الاساس هذا شرح مبسط يساعدك في استيعاب كيفية عمل النيوتن للمستخدمين الجدد.
أنا أهدف من خلال هذا العمل في شرح كامل للمبتدئين، لذا من لديهم استخدام مسبق للنيوتن لن يجدوه مفيد لهم بشكل كبير .
حسناً .الاولوية : هل سبق وجربت ملفات الديمو أو الامثلة ؟ إذا لم تجربها الرجاء قم بتجربتها الآن في ملف "Demos" يوجد 15 أمثلة مختلفة
جميعها تم ترجمتها مسبقاً قم بتجربتها حالاً وانظر ماذا يمكن للنيوتن فعله .
حسناً أنت الآن تملك فكرة أو خلفية عن مايمكن للنيوتن فعله. الآن دعنا نتكلم عن كيفية عمل النيوتن. عندما تصنع تطبيق/ لعبة ثلاثية الابعاد فانت عموماً تملك "عالم"
مع الكاميرا وباقة من المجسمات المحملة من الملفات ،وربما القليل من الإضاءة . في الدارك بيسيك كل ذلك يتم من خلال الاوامر مثل Load object او Position camera ..الخ
يمكن التفكير في هذا الامر بإعتباره "عالم مرئي" “visual world” للبرنامجك . كل شيء ( المجسم ،الكاميرا ، الاضاءة) لها موقع ودوران في الفراغ ثلاثي الابعاد
النيوتن نوع يمكن اعتباره العالم الثاني "2nd "world تلك مرآه لعالمنا المرئي الثلاثي الابعاد .عوضاً عن عقد المعلومات البصرية (لون المجسم ،نسيج "تيكستشر" المجسم..الخ)
يمكن ربطها بالمعلومات الفيزيائية
صورة للتوضيح
http://desmond.imageshack.us/Himg209/scaled.php?server=209&filename=pic01e.png&res=medium
يمكن رؤية كلا العالمين لهما مكعب ،نفس الموقع ونفس زاوية الدوران مع أن العالم الفيزيائي يتعامل مع الكتلة والسرعة والعالم المرئي يتعامل مع الالوان والانسجة
ماذا يعني ذلك ؟ في الماضي فانت قد تعاملت مع العالم المرئي لكن مع النيوتن فيجب عليك التعامل مع العالم الثاني
هنا الفكرة الاساسية انت صنعت عالمك المرئي أياً كان سواءاً صحراء، او معبد الموت أو مشهد للفضاء الخارجي ثم تقوم بإنشاء عالم نيوتن، الذي يصف عالمك المرئي
وهذا يعني بالاساس ضبط عالمك المرئي لعالمك الفيزيائي وتجعل التحكم للمجسمات حر ليعطي واقعية مثل اهتزاز الاجسام لبعضها ،والاحتكاك ...الخ
الشيء الجيد في النيوتن أو الرابر انه يجعل عالمك المرئي مع عالمك الفيزيائي في نفس التزامن "in Sync" مع بعضها ، شيء جيد ويعني ان النيوتن سيغير مكان المجسم ودورانه لك
ومع ذلك، فان عملية حساب او معالجة الفيزياء هي عملية معقدة والنيوتن له تقييد معين مما يسمح بتشغيله بسرعة كافية في الوقت الحقيقي للعبة
والنيوتن يتطلب منك مزج الاولويات . على الرغم من أن سفينتك الفضائية مثلا يمكن ان تحمل اي شكل تريده فإن النيوتن يطلب منك ابسط الاشكال بسبب تسهيل عملية المعالجة
النيوتن يدعم الاشكال البسيطة التالية:
المكعب - الكره - الكابسولز - المخروط - الاسطوانة - الاسطوانه مشطوبة الحواف - الكونفيكس هول (تغليف المجسمات المعقدة)
لاتقلق ان لم تفهمها فلهذا السبب توجد الامثلة
http://desmond.imageshack.us/Himg607/scaled.php?server=607&filename=pic02q.png&res=medium
كما ترى فان الشكل المعقد للنجمة هو في الاصل كرة بالنسبة للنيوتن "أي أن النيوتن سيحاكي النجمة على انها مجرد كره" فعند الدوران مثلا ستدور على انها كرة" "
الرابر ياتي معه اداة تسمة Rigid Body Designer مما يسمح لك باستخدام الاشكال البصرية او الاشكال المعقدة سواءاً كانت بامتداد x او dbo ليتعامل الشكل مع النيوتن بشكل صحيح ، ايضا قمت بوضع مثال بع شرح للـ .bod يمكنك وضع الاجسام المعقدة
الان قمنا بشرح دمج العوالم الان ماذا عن الحركة ؟ من المحتمل ان هناك اجسام تريد تحريكها ؟ صحيح ؟؟
حسناً في الماضي كنت تستخدم المتغيرات مثل PlayerX , PlayerY, x#, y# ...etc لتغيير مكان المجسم وكانت على النحو التالي
If upkey() then inc PlayerX, 1
…
position object PlayerObject, PlayerX, PlayerY, PlayerZ
كود ممتاز لتحريك المجسم في الدارك بيسيك ، لكن في النيوتن أنت لن تستطيع التعامل مع هذه المهارة او هذا التكنيك تذكر النيوتن هو محاكاة فيزيائية يمثل الواقعية
في الحقيقة أنت لاتستطيع تحريك المجسم الى موقع جديد ذلك يسمى تنقل teleportation عوضاً عن ذلك هو تحريك المجسم عن طريق اصبعك ! او قوة دفع او سيارة او بيس بول
نفس الشيء في النيوتن أن تخبر النيوتن بتطبيق القوة ليتحرك الجسم "القوى" اشياء حقيقية في العالم الحقيقي لتحريك الاشياء
مثال انت تضغط باصبعك على الزر في الكيبورد لينزل الى الاسفل.. هذه هي القوى .. او مثل محرك الطائرة فان المراوح تدور لتدفع الطائرة الى الامام
عندما تستخدم النيوتن فانت بحاجة للتفكير في القوة
يكفي ... انظر الى المثال الاول Demo 01 الان هو بسيط وبداية ممتازة لاخذ فكرة عن الاوامر والمهارات التي ستسخدم في النيوتن
حظاً سعيداً)
الكاتب : Walaber
المترجم : Evil Joker
يتبع...
سأعطي مقدمة أولاً قبل أن أبدأ بالشرح
محرك الفيزياء: هو محرك يحاكي قوانين الفيزياء ،ويعطي واقعيه للمجسمات عند تأثيرها بالقوى أو الجاذبية ..الخ
في هذا الموضوع سأتكلم عن محرك النيوتن في لغة الدارك بيسيك Dark Basic
Newton Game Dynamics Wrapper
http://bakura.developpez.com/tutoriel/physique/newton/images/newtonlogo.png
يمكنك تحميله من هنا
(http://forum.thegamecreators.com/?m=forum_view&t=154086&b=5)
أحد محركات الفيزياء يوجد الكثير منها مثل Havok ,ODE
الرابر Wrapper : برنامج أو سكربت يمهد الطريق ويجعل من الممكن تشغيله في برنامج آخر.
عند استخدامك للرابر لاول مرة ستجد صعوبة في فهم بعض المصطلحات لذا يجب أن تكون في خلفية جيدة في الدارك بيسيك
أيضا يجب عليك قراءة الامثلة والشرح والا لن تستطيع استيعاب شيء
أولاً :طريقة التركيب:
عند فك الضغط افتح ملف
1) Wrapper انسخ "NDB.dll" الى ملف الدارك بيسيك "compiler\plugins-user"
2) انسخ "keywords_ndb.ini" داخل "Editor\Keywords"
3) انسخ Newton.dll في نفس مكان التطبيق أو داخل ملف المشروع يعني بجانب تطبيق الـ exe
ثانيا: دليل المبتدئين
سأقوم بعون الله بترجمة مستند الورد beginner's guide
مع الملاحظة توجد بعض التعديلات لان الشرح كان يخص النسخة السابقة
( أهلاً ومرحباً بك في دليل المبتدئين لنيوتن ،في الاساس هذا شرح مبسط يساعدك في استيعاب كيفية عمل النيوتن للمستخدمين الجدد.
أنا أهدف من خلال هذا العمل في شرح كامل للمبتدئين، لذا من لديهم استخدام مسبق للنيوتن لن يجدوه مفيد لهم بشكل كبير .
حسناً .الاولوية : هل سبق وجربت ملفات الديمو أو الامثلة ؟ إذا لم تجربها الرجاء قم بتجربتها الآن في ملف "Demos" يوجد 15 أمثلة مختلفة
جميعها تم ترجمتها مسبقاً قم بتجربتها حالاً وانظر ماذا يمكن للنيوتن فعله .
حسناً أنت الآن تملك فكرة أو خلفية عن مايمكن للنيوتن فعله. الآن دعنا نتكلم عن كيفية عمل النيوتن. عندما تصنع تطبيق/ لعبة ثلاثية الابعاد فانت عموماً تملك "عالم"
مع الكاميرا وباقة من المجسمات المحملة من الملفات ،وربما القليل من الإضاءة . في الدارك بيسيك كل ذلك يتم من خلال الاوامر مثل Load object او Position camera ..الخ
يمكن التفكير في هذا الامر بإعتباره "عالم مرئي" “visual world” للبرنامجك . كل شيء ( المجسم ،الكاميرا ، الاضاءة) لها موقع ودوران في الفراغ ثلاثي الابعاد
النيوتن نوع يمكن اعتباره العالم الثاني "2nd "world تلك مرآه لعالمنا المرئي الثلاثي الابعاد .عوضاً عن عقد المعلومات البصرية (لون المجسم ،نسيج "تيكستشر" المجسم..الخ)
يمكن ربطها بالمعلومات الفيزيائية
صورة للتوضيح
http://desmond.imageshack.us/Himg209/scaled.php?server=209&filename=pic01e.png&res=medium
يمكن رؤية كلا العالمين لهما مكعب ،نفس الموقع ونفس زاوية الدوران مع أن العالم الفيزيائي يتعامل مع الكتلة والسرعة والعالم المرئي يتعامل مع الالوان والانسجة
ماذا يعني ذلك ؟ في الماضي فانت قد تعاملت مع العالم المرئي لكن مع النيوتن فيجب عليك التعامل مع العالم الثاني
هنا الفكرة الاساسية انت صنعت عالمك المرئي أياً كان سواءاً صحراء، او معبد الموت أو مشهد للفضاء الخارجي ثم تقوم بإنشاء عالم نيوتن، الذي يصف عالمك المرئي
وهذا يعني بالاساس ضبط عالمك المرئي لعالمك الفيزيائي وتجعل التحكم للمجسمات حر ليعطي واقعية مثل اهتزاز الاجسام لبعضها ،والاحتكاك ...الخ
الشيء الجيد في النيوتن أو الرابر انه يجعل عالمك المرئي مع عالمك الفيزيائي في نفس التزامن "in Sync" مع بعضها ، شيء جيد ويعني ان النيوتن سيغير مكان المجسم ودورانه لك
ومع ذلك، فان عملية حساب او معالجة الفيزياء هي عملية معقدة والنيوتن له تقييد معين مما يسمح بتشغيله بسرعة كافية في الوقت الحقيقي للعبة
والنيوتن يتطلب منك مزج الاولويات . على الرغم من أن سفينتك الفضائية مثلا يمكن ان تحمل اي شكل تريده فإن النيوتن يطلب منك ابسط الاشكال بسبب تسهيل عملية المعالجة
النيوتن يدعم الاشكال البسيطة التالية:
المكعب - الكره - الكابسولز - المخروط - الاسطوانة - الاسطوانه مشطوبة الحواف - الكونفيكس هول (تغليف المجسمات المعقدة)
لاتقلق ان لم تفهمها فلهذا السبب توجد الامثلة
http://desmond.imageshack.us/Himg607/scaled.php?server=607&filename=pic02q.png&res=medium
كما ترى فان الشكل المعقد للنجمة هو في الاصل كرة بالنسبة للنيوتن "أي أن النيوتن سيحاكي النجمة على انها مجرد كره" فعند الدوران مثلا ستدور على انها كرة" "
الرابر ياتي معه اداة تسمة Rigid Body Designer مما يسمح لك باستخدام الاشكال البصرية او الاشكال المعقدة سواءاً كانت بامتداد x او dbo ليتعامل الشكل مع النيوتن بشكل صحيح ، ايضا قمت بوضع مثال بع شرح للـ .bod يمكنك وضع الاجسام المعقدة
الان قمنا بشرح دمج العوالم الان ماذا عن الحركة ؟ من المحتمل ان هناك اجسام تريد تحريكها ؟ صحيح ؟؟
حسناً في الماضي كنت تستخدم المتغيرات مثل PlayerX , PlayerY, x#, y# ...etc لتغيير مكان المجسم وكانت على النحو التالي
If upkey() then inc PlayerX, 1
…
position object PlayerObject, PlayerX, PlayerY, PlayerZ
كود ممتاز لتحريك المجسم في الدارك بيسيك ، لكن في النيوتن أنت لن تستطيع التعامل مع هذه المهارة او هذا التكنيك تذكر النيوتن هو محاكاة فيزيائية يمثل الواقعية
في الحقيقة أنت لاتستطيع تحريك المجسم الى موقع جديد ذلك يسمى تنقل teleportation عوضاً عن ذلك هو تحريك المجسم عن طريق اصبعك ! او قوة دفع او سيارة او بيس بول
نفس الشيء في النيوتن أن تخبر النيوتن بتطبيق القوة ليتحرك الجسم "القوى" اشياء حقيقية في العالم الحقيقي لتحريك الاشياء
مثال انت تضغط باصبعك على الزر في الكيبورد لينزل الى الاسفل.. هذه هي القوى .. او مثل محرك الطائرة فان المراوح تدور لتدفع الطائرة الى الامام
عندما تستخدم النيوتن فانت بحاجة للتفكير في القوة
يكفي ... انظر الى المثال الاول Demo 01 الان هو بسيط وبداية ممتازة لاخذ فكرة عن الاوامر والمهارات التي ستسخدم في النيوتن
حظاً سعيداً)
الكاتب : Walaber
المترجم : Evil Joker
يتبع...