Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

ورشة عمل لعبة من نوع Shoot 'em Up

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • #16
    الحمد لله الذي نالت الورشة رضاك وافادتك، وهنالك ورشات قريبة ان شاء الله ستناقش المواضيع المتقدمة في اليونيتي والتي نادراً ما تم تغطيتها باللغة العربية.
    عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

    تعليق


    • #17
      موضوع رائع الي ابعد الحدود وافادني كثيرا خصوصا وان معلوماتي عن المحرك الجديد تحتاج تحديث
      موضوعك يستحق التثبيت وان يكون من ضمن المواضيع المثبيته
      اعجبني الشرح والصور بالموضوع كذلك شخصكم اسلوبكم في الردود عالاعضاء بارك الله فيك و وفقك لمئ يحب ويرضئ
      وتقبل تحياتي
      اللهم اني اسألك باسمك الاعظم اللذي اذا دعيت به اجبت ان تنصر المسلمين وجندك على الظالمين
      وتفتك باعدائك اعداء الدين


      تعليق


      • #18
        المشاركة الأصلية بواسطة لا اعلم مشاهدة المشاركة
        موضوع رائع الي ابعد الحدود وافادني كثيرا خصوصا وان معلوماتي عن المحرك الجديد تحتاج تحديث
        موضوعك يستحق التثبيت وان يكون من ضمن المواضيع المثبيته
        اعجبني الشرح والصور بالموضوع كذلك شخصكم اسلوبكم في الردود عالاعضاء بارك الله فيك و وفقك لمئ يحب ويرضئ
        وتقبل تحياتي
        تحياتي اخي الكريم وشكراً على المجاملة، واتمنى ان تكون الورشة فعلاً كذلك وان تكون افادت بعض المطورين ممن يبحثون عن الدروس العربية، وسأحاول ان اقوم بتحديث الورشة من فترة الى اخرى لمواكبة جميع التطورات وتغطية المواضعي الجديدة التي تناسب اللعبة، كما سأعمل في الفترة القادمة على نقل الورشة الى المدونة (يعني نسخة online) حتى يصبح الوصول اليها اسهل من محركات البحث كي يستفيد الجميع.
        واتمنى ان واجهتك اي مشكلة في الورشة او اردت ان تستفسر عن موضع فأخبرني به كي نتعاون على حله.
        عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

        تعليق


        • #19
          السلام عليكم اخي محمد حبيت اطرح سؤال هنا ادا كان مافي مانع , طبعأً علشان ما اعمل زحمة في المنتدى , سؤالي بسيط :
          انا عندي كائنات في اللعبة بأسم Enemy طبعاً هذول الاعداء وفيهم تاج بأسم Enemy ايضاً Layer تبعهم بأسم Enemy طبعاً انا ما استخدمت Rigidbody فيهم فقط جعلتهم يتجهوا الى اللاعب ,بحيث ان المسافة تكون فاصلة بينهم يعني بين الاعداء و اللاعب علشان ما يتصادموا ,هنا حبيت حصلت مشكلة مع باقي الاعداء طبعاً هي مش مشكلة لكن حبيت اصلح هذا الشي , الي حصل ان الاعداء يدخلوا في بعض و انا حبيت اعمل مسافة بين كل انمي و آخر , طبعاً ما استخدمت Rigidbody علشان اعمل Collision بينهم بحيث ما يتصادموا ,بس حبيت اعمل مسافة بين كل انمي عبر متغير Distance ,برضوا مازالوا يدخلو مع بعض مع اني استخدمت المتغير طبعاً لانهم كلهم يحتووا على تاج موحد و لاير موحد لكن حبيت اسألك ادا كان في طريقة ثانية , او اضطر استخدم Rigidbody علشان اعمل Collision بينهم ؟

          وشكراً
          مدونتي Home OF Games تهتم بتطوير الألعاب
          قناتي
          YouTube

          لو كان Internet Explorer شجاعاً لطلب منك ان يكون متصفحك الشخصي, فعليك ان تكون شجاعاً كفاية لتقوم بكل خطوة صعبة
          .

          تعليق


          • #20
            متابع للورشة استمرو
            لمتابعت آخر مشاريعي ...

            Youtube

            http://www.youtube.com/user/powerproxful


            و شكرا...

            تعليق


            • #21
              المشاركة الأصلية بواسطة EMAD_ARIF مشاهدة المشاركة
              السلام عليكم اخي محمد حبيت اطرح سؤال هنا ادا كان مافي مانع , طبعأً علشان ما اعمل زحمة في المنتدى , سؤالي بسيط :
              انا عندي كائنات في اللعبة بأسم Enemy طبعاً هذول الاعداء وفيهم تاج بأسم Enemy ايضاً Layer تبعهم بأسم Enemy طبعاً انا ما استخدمت Rigidbody فيهم فقط جعلتهم يتجهوا الى اللاعب ,بحيث ان المسافة تكون فاصلة بينهم يعني بين الاعداء و اللاعب علشان ما يتصادموا ,هنا حبيت حصلت مشكلة مع باقي الاعداء طبعاً هي مش مشكلة لكن حبيت اصلح هذا الشي , الي حصل ان الاعداء يدخلوا في بعض و انا حبيت اعمل مسافة بين كل انمي و آخر , طبعاً ما استخدمت Rigidbody علشان اعمل Collision بينهم بحيث ما يتصادموا ,بس حبيت اعمل مسافة بين كل انمي عبر متغير Distance ,برضوا مازالوا يدخلو مع بعض مع اني استخدمت المتغير طبعاً لانهم كلهم يحتووا على تاج موحد و لاير موحد لكن حبيت اسألك ادا كان في طريقة ثانية , او اضطر استخدم Rigidbody علشان اعمل Collision بينهم ؟

              وشكراً
              اهلا اخي عماد، اعذرني على التأخير ولكنني لم ادخل كثيراً الى المنتدى في هذه الفترة. في البداية سأعرض لك صورتين ارجو ان تكونا تمثلان التأثير الذي ترغب به، وفي الصورة يوجد عدد من الاعداء يتجهون الى اللاعب ولكن دون اي تلامس بينهم (لاحظ المسافة بين كل عدو وآخر):


              الآن سأشرح لك الطريقة التي استعملتها لفعل ذلك. في البداية، عدم استخدام الفيزياء في نظري هو امر متعب وسيتطلب منك جهد كبير، لأنك مثلاً ستضطر الى امتلاك مصفوفة بجميع الاعداء (وهو امر صعب) ومن ثم القيام في كل فريم بالتحقق من المسافة بين كل عدو وعدو ومعرفة اذا ما كانت المسافة ضمن النطاق المحدد وبعدها الابتعاد عن بعضهم، وكما ترى تطبيق وصيانة هذا الكود امر معقد نوعاً ما.
              اما مع الفيزياء فالامر اسهل، ما سنقوم به هو رسم دائرة (تخيلية) حول كل عدو وهذه الدائرة تفحص وجود اي جسم ملامس لها وعلى هذا الاساس نتصرف، وهو بدون شك اسهل من الطريقة السابقة، هذا هو السكريبت الذي يتحكم بكل عدو:
              كود:
              	private Transform player;
              	
              	public LayerMask enemyLayer;
              	private Vector2 force;
              	private Rigidbody2D myRb2D;
              	private Collider2D myCollider2D;
              	
              	private void Start () 
              	{
              		player = GameObject.Find("Player").transform;
              		myRb2D = GetComponent<Rigidbody2D>();
              		myCollider2D = GetComponent<Collider2D>();
              	}
              	
              	private void FixedUpdate () 
              	{
              		Move();
              	}
              	
              	private void Move()
              	{
              		Collider2D firstEnemy = Physics2D.OverlapCircle(transform.position, 2.0f, playerLayer.value);
              		
              		if(firstEnemy != myCollider2D)
              		{
              			Vector2 moveAwayVector = (transform.position - firstEnemy.gameObject.transform.position);
              			force = moveAwayVector.normalized * 10;		
              			myRb2D.AddRelativeForce(force);
              			return;
              		}
              		
              		Vector2 moveTowardPlayerVector = player.position - transform.position;
              		force = moveTowardPlayerVector.normalized * 5;
              		myRb2D.AddForce(force); 
              	}
              في البداية عرفنا متغيرات اساسية لتمثيل اللاعب، المكونات المطلوبة الموجودة على العدو، قناع الطبقة لتحديد الطبقات التي يجب التحقق من التلامس معها، واخيراً Vector لتمثيل القوة التي سنحرك اللاعب بها في كل فريم.
              في الدالة Start عرفنا اغلب المتغيرات. في الدالة FixedUpdate لم اضع كود التحريك داخلها بل نقلته الى دالة خارجية، واستخدمت FixedUpdate لأننا سنستخدم الفيزياء للتحريك.
              داخل الدالة Move: في كل فريم يوجد حالتان للعدو، اما ان يتحرك نحو اللاعب، او في حال كان هنالك عدو قريب يجب ان يبتعد عنه، ولا يجب تطبيق قوتين معاً في نفس الفريم لذا سنفحص اولاً تواجد عدو قريب، وسنستخدم الدالة OverlapCircle التي تقوم برسم دائرة حول نقطة ما بقطر معين وتعيد لنا اول كولايدر اصطدم بها (يوجد نسخة منها تعيد لك جميع الكولايدرات). الآن نأخذ هذا الكولايدر ونتحقق من انه ليس الكولايدر الخاص بنا اي بالعدو الموجود عليه السكريبت) لأن الدالة تفحص كل ما بداخلها، وبعد ذلك نقوم بتطبيق قوة محلية معاكسة للابتعاد عن هذا العدو وتعتمد هذه القوة على شعاع Vector3 يمثل طرح موقعنا من موقع العدو الملامس لنا ومن ثم عمل Normalize له نتخلص من الطول ونبقي على الجهة). وبعد القيام بذلك نصل الى return كي نخرج من الدالة ولا نكملها.
              طيب في حال لم نلامس عدو فإننا سنتجه نحو اللاعب عن طريق تطبيق قوة تدفعنا باتجاهه وهي ايضاً ناتجة عن طرح موقعنا من موقع اللاعب مع عمل Normalize.
              شكل الدالة OvellapCircle:
              كود:
              public static Collider2D OverlapCircle(Vector2 point, float radius, int layerMask = DefaultRaycastLayers);
              الآن سنقوم بعمل طبقة للاعداء باسم Enemy وطبقة للاعب Player ومن الانسبكتر سنحدد قيمة المتغير enemyLayer عن طريق تحديد الطبقة Enemy فقط بمعنى اننا لا نريد التحقق سوى من هذه الكولايدرات الموجودة على هذ الطبقة.
              ايضاَ يجب ان تعدل ال Linear Drag الخاص بكل عدو الى قيمة 5 (وهي متناسبة مع القوى) وهكذا لن تؤثر القوى بشكل كبير في الاعداء وكذلك ستجعلها تخفف السرعة بشكل تدريجي نوعاً ما.

              طيب سؤال أخير، لماذا استخدمنا OverlapCircel ولم نستخدم CircleCast؟ للأسف الكثير يفهم CircleCast بشكل خاطئ، ان CircleCast تقوم بعمل دائرة بمساحة معينة ومن ثم تقوم بتحريكها على طول شعاع معين وتفحص كل الكولايدرات الموجودة على هذا الشعاع، بمعنى انها تقوم بعمل شعاع ثخين، ويمكنك رؤية شكل الدالة:
              كود:
              public static RaycastHit2D CircleCast(Vector2 origin, float radius, Vector2 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
              كما تلاحظ يوجد المبدأ (أي مبدأ الشعاع التي سيتم التحرك عليه) والقطر والاتجاه (بشكل مماثل ل Ray Cast) وطول الشعاع، لذا استخدامها في حالتنا هو امر خاطئ، بينما OverlapCircle تقوم برسم دائة في نقطة معينة وفي قطر معين دون أي تحريك وهو ما نحتاجه هنا.
              أتمنى ان أكون قد افدتك وفي حال وجود أي استفسارات أخرى اخي عماد اسأل وبإذن الله نتعاون على حلها.
              التعديل الأخير تم بواسطة MohammadT3d; 13 / 09 / 2015, 10:24 PM.
              عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

              تعليق


              • #22
                اشكرك الف شكر اخي محمد صراحة ما قصرت , اعطيتنا كود رائع جداً و عمل بشكل جيد ,احب انك تعرف اخي اني اكرة ان انقل الاكواد دون شرح صراحة انت شرحت كل شيئ بشكل واضح و انا عدلت على الكود بحيث تناسب مع اكوادي , الف شكر لك اخي ماقصرت ^_^ .
                مدونتي Home OF Games تهتم بتطوير الألعاب
                قناتي
                YouTube

                لو كان Internet Explorer شجاعاً لطلب منك ان يكون متصفحك الشخصي, فعليك ان تكون شجاعاً كفاية لتقوم بكل خطوة صعبة
                .

                تعليق


                • #23
                  ممتاز وبالتوفيق في لعبتك وانتظر التحديثات.
                  عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

                  تعليق


                  • #24
                    السلام عليكم اخي محمد , اولاً اشكرك على كل شيئ و كل المساعدات التي قدمتها لي .
                    انا دائماً في اوقات فراغي ابدأ اقرأ كتابك , صراحة الكتاب جميل جداً و مفيد , اليوم مريت على طريقتة تحميل المستويات , انا سابقاً كنت عامل سلايدر و كنت اظهر ارقام عشوائية تظهر ان اليفل يقوم بتحميل الليفل الي بعدة صراحة ما ارتحت لهذة الفكرة , لهذا لما مريت على الشرح الموجود في الكتاب , احولت اطبقة عندي و صراحة عمل بشكل جيد بحيث ان العبة صارت مرتبة و زالت مشاكل التعليق عند تجميل المستويات , هنا حبيت اسألك سؤال بسيط عن المتغير progress , انت قلت ان قيمتة هي واحد ,كلامك صحيح قيمتة واحد , لكن سؤالي هنا هل اقدر اغير قيمتة يعني مثلاً بدل القيمة واحد احول قيمتة الى 100 ؟ لاني عامل رقم للتحميل ان صحت العبارة هذا الرقم يظهر كم باقي من الوقت علشان يتحمل المستوى بشكل كامل ,لكن تظهر قيمتة 1 و انا حابب اخلي قيمتة 100 , صراحة حاول بحيث اني خليت القيمة 100 بهذا الشكل :
                    progress = 100 طبعاً بعد ما كتبت المتغير تبعي و اعرف ان المتغير progress ياخد قيم عشرية float لكن ماضبطت , اعذرنا لو طولت عليك في الكلام بس حبيت اشرح المشكلة , و شكراً لك على كل شيء .
                    مدونتي Home OF Games تهتم بتطوير الألعاب
                    قناتي
                    YouTube

                    لو كان Internet Explorer شجاعاً لطلب منك ان يكون متصفحك الشخصي, فعليك ان تكون شجاعاً كفاية لتقوم بكل خطوة صعبة
                    .

                    تعليق


                    • #25
                      اخي ببساطة اضرب بمئة، فإذا كانت قيمته مثلاً 1 وضربته في مئة سيصبح 100 واذا كانت قيمته 0.5 سيصبح 50 وهكذا يمكنك عرضها في نص على شكل نسبة مئوية، وهذا كمثال بسيط (بفرض ان loadingText هو متغير Text يمثل كائن الواجهات الذي سيعرض قيمة التحميل):
                      كود:
                      loadinText.text = (loadingLevel.progress * 100)
                      في حال وجود اي استفسارات اخرى فعلى الرحب والسعة.
                      عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

                      تعليق


                      • #26
                        صراحة اخي مش عارف كيف اشكرك اعطيتنا اجوبة على كل سؤال ،اشكرك الف شكر ماقصرت و ان شاء الله منتظر كتابك القادم باذن الله ☺😊.
                        مدونتي Home OF Games تهتم بتطوير الألعاب
                        قناتي
                        YouTube

                        لو كان Internet Explorer شجاعاً لطلب منك ان يكون متصفحك الشخصي, فعليك ان تكون شجاعاً كفاية لتقوم بكل خطوة صعبة
                        .

                        تعليق


                        • #27
                          بدي تساعدني بشي

                          انا صممت طيارة وعملت سكبربت التحكم وكل شي فيها المهم

                          اريد ان اعمل عداد لارتفاع الطائرة عن الارض
                          واريد ان اعمل عداد لسرعة ايضا
                          واريد ان اعمل عداد لميلان الطيارة عن الافق

                          كيف ممكن اعمل كل هاد الاشياء

                          مع العلم

                          انا + البرمجة = صفر
                          ليس من الصعب أن تضحي من أجل صديق .. ولكن من الصعب أن تحب وتجد صديقاً يستحق التضحية

                          تعليق


                          • #28
                            المشاركة الأصلية بواسطة SHADIA مشاهدة المشاركة
                            بدي تساعدني بشي

                            انا صممت طيارة وعملت سكبربت التحكم وكل شي فيها المهم

                            اريد ان اعمل عداد لارتفاع الطائرة عن الارض
                            واريد ان اعمل عداد لسرعة ايضا
                            واريد ان اعمل عداد لميلان الطيارة عن الافق

                            كيف ممكن اعمل كل هاد الاشياء

                            مع العلم

                            انا + البرمجة = صفر
                            اخي العزيز حالك هو حال الكثيرين ممن يدخلون هذا المجال، نعم هو مجال صناعة الالعاب ولكنه ليس لعبة، الموضوع صعب ولكن يمكنك الاحتراف اذا مشيت على الطريق الصحيح، ولكن السؤال هنا هل مشيت على الطريق الصحيح؟ انا تابعت عدة مواضيع لك وعدة اسئلة لك والنتيجة واضحة انت مبتدئ مئة في المئة، وهذا ليس بعيب كلنا كنا مبتدئين (وانا لم احترف) ولكن الطريق الى الاحتراف بدون شك لن يكون عبر البدء بتصنيع لعبة طائرات.
                            ابدء بزيادرة مهاراتك بالتدريج، ابدء بالالعاب البسيطة وبالسهلة، سؤالي لك هل تستطيع عمل لعبة Tic Tac Toe؟ بما انك صفر في البرمجة فهذا يعني لا، طيب هل المنطقي وانت لا تعرف عمل لعبة بسيطة مثل هذه ان تبدأ بلعبة طائرات، وماذا ستستفيد اذا انتهيت منها وكل اكوادك منقولة.
                            المبرمج والمصم الحقيقي يتعلم مكونات الكود كي يشكل منها ما يشاء وليس العكس. انا بودي مساعدتك ولكنني لا اود ان اصيد السمك بدلاً منك، اخي ابدء بالبسيط البسيط وسأساعدك واسأل اسئلة في مستواك وسنحاول اجابتك عنها، يعني لو كنت متوسط الخبرة لأمكنني مساعدتك في لعبة الطائرات والتناقش فيها.
                            بدون شك لن يعجبك كلامي وستقول بأنني بدل هذا الحديث كان يجب ان اقدم لك الاكواد وما الى ذلك ولكن انا اريد مصلحتك.
                            بما انك صفر في البرمجة فلتبدأ فيها:
                            • ابدء بتعلم اساسيات السي شارب وحاول ان تفهم كل ما يتعلق فيها، ولا تحاول تجاوز مواضعي لأنك تتعلم الاساسيات
                            • بعد ذلك ابدء بتعلم اساسيات اليونيتي وهيكليته، جرب تحميل مشاريع جاهزة مفتوحة المصدر وتفكيكها
                            • قناة اليونيت مليئة بالفيديوهات لكل المستويات هذا عدا عن ال Docs الخاصة به
                            • يوجد قنوات ودروس عربية للمحرك يونيتي على الانترنت ستساعد نوعاً ما
                            • الاخ FreeMan لديه موقع جيد يتحدث فيه عن تصميم الالعاب نظرياً كما انه قام بدورة لعمل لعبة مشابهة ل Angry Birds تتحدث عن الكثير من الامور الخاصة بتطوير الالعاب
                            • اخيراً جرب تطبيق هذه الورشة، وللعلم هذه الورشة للمبتدئين لذا قم بتصفحها وحدد نسبة معرفتك لمواضيعها فهذه النسبة ستمثل نسبة تعلمك لليونيتي

                            بعد ذلك كله ستجد بأن مواضيع تصميم الطائرة ليست بألغاز معقدة جداً (لأن مستواك ازداد) وسيصبح بإمكانك التفكير في كيفية عمل مثل هذه الامور وبرمجتها بنفسك مع طلب بعض المساعدة والاستعانة بالمصادر الموجودة على شبكة الانترنت
                            عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

                            تعليق


                            • #29
                              المشاركة الأصلية بواسطة MohammadT3d مشاهدة المشاركة
                              اخي العزيز حالك هو حال الكثيرين ممن يدخلون هذا المجال، نعم هو مجال صناعة الالعاب ولكنه ليس لعبة، الموضوع صعب ولكن يمكنك الاحتراف اذا مشيت على الطريق الصحيح، ولكن السؤال هنا هل مشيت على الطريق الصحيح؟ انا تابعت عدة مواضيع لك وعدة اسئلة لك والنتيجة واضحة انت مبتدئ مئة في المئة، وهذا ليس بعيب كلنا كنا مبتدئين (وانا لم احترف) ولكن الطريق الى الاحتراف بدون شك لن يكون عبر البدء بتصنيع لعبة طائرات.
                              ابدء بزيادرة مهاراتك بالتدريج، ابدء بالالعاب البسيطة وبالسهلة، سؤالي لك هل تستطيع عمل لعبة Tic Tac Toe؟ بما انك صفر في البرمجة فهذا يعني لا، طيب هل المنطقي وانت لا تعرف عمل لعبة بسيطة مثل هذه ان تبدأ بلعبة طائرات، وماذا ستستفيد اذا انتهيت منها وكل اكوادك منقولة.
                              المبرمج والمصم الحقيقي يتعلم مكونات الكود كي يشكل منها ما يشاء وليس العكس. انا بودي مساعدتك ولكنني لا اود ان اصيد السمك بدلاً منك، اخي ابدء بالبسيط البسيط وسأساعدك واسأل اسئلة في مستواك وسنحاول اجابتك عنها، يعني لو كنت متوسط الخبرة لأمكنني مساعدتك في لعبة الطائرات والتناقش فيها.
                              بدون شك لن يعجبك كلامي وستقول بأنني بدل هذا الحديث كان يجب ان اقدم لك الاكواد وما الى ذلك ولكن انا اريد مصلحتك.
                              بما انك صفر في البرمجة فلتبدأ فيها:
                              • ابدء بتعلم اساسيات السي شارب وحاول ان تفهم كل ما يتعلق فيها، ولا تحاول تجاوز مواضعي لأنك تتعلم الاساسيات
                              • بعد ذلك ابدء بتعلم اساسيات اليونيتي وهيكليته، جرب تحميل مشاريع جاهزة مفتوحة المصدر وتفكيكها
                              • قناة اليونيت مليئة بالفيديوهات لكل المستويات هذا عدا عن ال Docs الخاصة به
                              • يوجد قنوات ودروس عربية للمحرك يونيتي على الانترنت ستساعد نوعاً ما
                              • الاخ FreeMan لديه موقع جيد يتحدث فيه عن تصميم الالعاب نظرياً كما انه قام بدورة لعمل لعبة مشابهة ل Angry Birds تتحدث عن الكثير من الامور الخاصة بتطوير الالعاب
                              • اخيراً جرب تطبيق هذه الورشة، وللعلم هذه الورشة للمبتدئين لذا قم بتصفحها وحدد نسبة معرفتك لمواضيعها فهذه النسبة ستمثل نسبة تعلمك لليونيتي

                              بعد ذلك كله ستجد بأن مواضيع تصميم الطائرة ليست بألغاز معقدة جداً (لأن مستواك ازداد) وسيصبح بإمكانك التفكير في كيفية عمل مثل هذه الامور وبرمجتها بنفسك مع طلب بعض المساعدة والاستعانة بالمصادر الموجودة على شبكة الانترنت


                              انا ما بدي اتعلم اليونيتي اصلاً
                              فقط بدي اصنع لعبة لمرة واحدة فقط
                              لاني اريد تعلم udk عما قريب ولا اريد تعلم unity

                              اذا بدقدر تساعدني اعطيني السكربتات او دروس
                              ليس من الصعب أن تضحي من أجل صديق .. ولكن من الصعب أن تحب وتجد صديقاً يستحق التضحية

                              تعليق


                              • #30
                                لا افهم سب تصميمك لهذه اللعبة الوحيدة مادمت ستترك، ولكن سأساعدك رغم عدم اقتناعي بالامر (سؤالك عن العدادات هو سؤال غريب نوعاً ما لأنها امور بسيطة جداً لمن يحرك طائرة):
                                -بالنسبة لعداد ارتفاع الطائرة فهذا يجب ان يكون قيمة المحور y للطائرة باستخدام فئة transform.position، لذا قم بربط هذه القيمة بأي عداد ترغب فيه (ان كان نص او ان كان صورة او Slider عمودي بحسب ذوقك) وعلماً ان احداثيات اليونيتي هي بالامتار، لذا يفضل ان تناسب مقاسات الطائرة مع المقاسات الحقيقية حتى تحصل على ارتفاع منطقي، يعني طول طائرة الميكويان ميج 31 هو حوالي 22.6 متر وارتفاعها حوالي 6.15 متر لذا قم بضبط قيم ال scale الخاصة بالطائرة.
                                -بالنسبة لعداد الدوران فهذا ايضاً يتعلق بربط قيمة الدوران حول المحور الذي ترغب فيه مع العداد الذي ترغب فيه (يوجد العديد من الاشكال للعدادات وبحسب الدوران الذي تود حسابه وحول اي محور) باستخدام transform.rotation.
                                -بالنسبة لعداد السرعة فهو ايضاً عن طريق ربط القيمة Rigidbody.velocity بالعداد الذي ترغب فيه، ولكن الامر هنا يحتاج الى بعض الانتباه، لأن السرعة قد لا تكون منطقية بحسب قيمة القوة المؤثرة على الطائرة وبحسب قيمة الجاذبية وبحسب قيمة احتكاك الهواء Linear Drag والتي في النهاية ستنتج قيمة سرعة قد تكون غير مقبولة منطقياً ولكنها جيدة في اللعبة، لذا يجب عليك اما ضبط القيم للوصول الى السرعة الحقيقية (وهو امر قد يكون غير وارد لأن سرعة الطائرات الحربية قد تصل الى 3000 كيلومتر) او الوصول الى قيمة مثالية ومن ثم استخدام بعض العمليات الحسابية مثل الضرب والقسمة كي تعرضها بشكل صحيح في العداد.
                                صراحة لم اجرب تصميم مثل هكذا محاكاة سابقة ولكن المشاريع الاساسية التي تأتي مع اليونيتي 5 تحتوي على محاكاة لا بأس بها لطائة يمكنك الاطلاع عليها، ولكن بحسب معرفتي فإن محاكاة الطائرات لا تتم وفقاً للحياة العملية او الفيزيائية بل يتم عمل اكواد خاصة ذات نتائج مرضية.
                                عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

                                تعليق

                                يعمل...
                                X