Unconfigured Ad Widget

تقليص

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

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

تعلم xna

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

  • #16
    شكراً لك على ملاحظتك
    وانشاء الله اقدم لكم شرح كيفية عمل المشاريع الصغيرة بالنسبة للمشاريع الكبيرة عايزة وقت طويل جداً مما تتصور من كتابة الكود والتعديل عليه والتعديل على المودل ليظهر طبيعي متناسق مع الواقع

    تعليق


    • #17
      المشاركة الأصلية بواسطة omarzonex مشاهدة المشاركة
      شكراً لك على ملاحظتك
      وانشاء الله اقدم لكم شرح كيفية عمل المشاريع الصغيرة بالنسبة للمشاريع الكبيرة عايزة وقت طويل جداً مما تتصور من كتابة الكود والتعديل عليه والتعديل على المودل ليظهر طبيعي متناسق مع الواقع
      يا ريت تفيدنا و تحط خبرتك بالنسبة للمشاريع الكبيرة فكما تقول تحتاج لوقت طويل جدا بسبب الكود للشادرز و الفيزيكس و الذكاء الأصطناعي و لقد بدأت مشاريع كثيرة و كانت بالفعل طويلة جدا و لكن من المؤكد ان مع فريق عمل ستكون اسهل بكثير.

      و بالتوقيق للجميع...
      Egypt


      I Love Direct-X

      سبحان الله و بحمده سبحان الله العظيم
      اللهم صلي وسلم و بارك علي سيدنا محمد

      تعليق


      • #18
        تطوير الشيدر

        عملت بعض التحسينات في مشروعي الطائرة النووية
        اضفت شيدر للطائرة يظهر كأنها يصدأ الحديد من المطر
        واشياء أخرى ارجو ان تفيدوني في اضافة اشياء جديدة ايضاً
        وانشاء الله سوف اضيف تحليق الطائرة فوق الغيوم وفوق الجبال يظهر المنظر طبيعي










        ]

        تعليق


        • #19
          بالنسبة للشادر فهو جميل جدا بس عندي سؤال صغير هل قمت بعمل النار بواسطة الشادرز و البارتكلز ام بواسطة الsprites ؟
          Egypt


          I Love Direct-X

          سبحان الله و بحمده سبحان الله العظيم
          اللهم صلي وسلم و بارك علي سيدنا محمد

          تعليق


          • #20
            عمل النار

            المشاركة الأصلية بواسطة general1 مشاهدة المشاركة
            بالنسبة للشادر فهو جميل جدا بس عندي سؤال صغير هل قمت بعمل النار بواسطة الشادرز و البارتكلز ام بواسطة الsprites ؟
            برمجة النار عن طريق sprite سهلة جداً وهي بالكود التالي

            نعرف المتغير وهو النار او الصاروخ المشع bullet في مقدمة المشروع class game1
            كود:
            struct Bullet 
                         
                    {
                        public Vector3 position;
                       public Quaternion rotation; 
                    }
            ثم نسمي المتغير باسم صورة ذات بعدين 2D

            كود:
            Texture2D bulletTexture;
            ثم نضع كمية الطلقات المراد قذفها في قائمة LIST

            كود:
            List<Bullet> bulletList = new List<Bullet>(); double lastBulletTime = 0;
            نعطيه اسم الملف الصورة للطلقات وهي كالتالي

            كود:
            bulletTexture = Content.Load<Texture2D>("bullet&quot...;
            ثم نكتب الكود للاطلاق الصواريخ او النار ونحدد سرعة الصاروخ مع الكمية المراد أطلاق حسب الضغط على الزر


            كود:
               if (keys.IsKeyDown(Keys.Space))
                        {
                            double currentTime = gameTime.TotalGameTime.TotalMilliseconds;
                            if (currentTime - lastBulletTime > 100)
                            {
                                Bullet newBullet = new Bullet();
                                newBullet.position = ModelPosition;
                                newBullet.rotation = ModelRotation;
                                bulletList.Add(newBullet);
            
                                lastBulletTime = currentTime;
                            }
                        }
            نكتب الكود للتحديث الصاروخ لكي يختفي بعد أطلاقه على الخصم مثلاً

            كود:
               private void UpdateBulletPositions(float moveSpeed) 
                    {
                        for (int i = 0; i < bulletList.Count; i++)
                        {
                            Bullet currentBullet = bulletList[i];
                            MoveForward(ref currentBullet.position, currentBullet.rotation, moveSpeed * 2.0f);
                            bulletList[i] = currentBullet;
               model bulletSphere = new model (currentBullet.position, 0.005f);
                            CollisionType colType = CheckCollision(bulletSphere);
                            if (colType != CollisionType.None)
                            {
                                bulletList.RemoveAt (i);
                                i--;
            
                                if (colType == CollisionType.Target)
                                    gameSpeed *= 1.05f;
                            }
                        }


            ثم نكتب الكود ليتم أظهار او رسم الصاروخ على الشاشة عند أطلاقه


            كود:
             DrawBullets();
            كود:
            private void DrawBullets()
                    {
                        if (bulletList.Count > 0)
                        {
                            VertexPointSprite[] spriteArray = new VertexPointSprite[bulletList.Count];
                            for (int i = 0; i < bulletList.Count; i++)
                                spriteArray[i] = new VertexPointSprite(bulletList[i].position, 50);
            
                            effect.CurrentTechnique = effect.Techniques["PointSprites"];
                            Matrix worldMatrix = Matrix.Identity;
                            effect.Parameters["xWorld"].SetValue(worldMatrix);
                            effect.Parameters["xView"].SetValue(viewMatrix);
                            effect.Parameters["xProjection"].SetValue(projectionMatrix);
                            effect.Parameters["xTexture"].SetValue(bulletTexture);
            
                            device.RenderState.PointSpriteEnable = true;
                            device.RenderState.AlphaBlendEnable = true;
                            device.RenderState.SourceBlend = Blend.One;
                            device.RenderState.DestinationBlend = Blend.One;
            
                            effect.Begin();
                            foreach (EffectPass pass in effect.CurrentTechnique.Passes)
                            {
                                pass.Begin();
                                device.VertexDeclaration = pointSpriteVertexDeclaration;
                                device.DrawUserPrimitives(PrimitiveType.PointList, spriteArray, 0, spriteArray.Length);
                                pass.End();
                            }
                            effect.End();
            
                            device.RenderState.PointSpriteEnable = false;
                            device.RenderState.AlphaBlendEnable = false;
                        }
                    }

            وهذا الكود السابق الذي وضعناه المسؤول عن رسم الصاروخ وكيفية ظهور على الشاشة و حجم الصاروخ
            مع تحديد قوة الصاروخ وشفافيته حسب الرغبة

            ارجو ان أكون وصلت المعلومة بشكل جيد مع شرح مكتمل

            اية مساعدة فأنا جاهز يا أصدقائي الأفاضل



            وقريباً جداً سوف أضع اكمال المشروع مع أضافة البحر وحركته الطبيعية والجبال والغيوم ايضاً
            كلها تصنع منظراً خلاباً طبيعياً مع تغيير بعض التحسينات في البرمجة المشروع
            وأضعه في قسم المشاريع عما قريب ان شاء الله
            ارجو ان تستفيدوا منه جيداً , واعطاء تعليقاتكم المرحب بها .....

            تعليق


            • #21
              رائع اخي عمر بالتوفيق الكود رائع و تابع و بالتوفيق ^_^ و أى مساعدة انا جاهز...

              و انا منتظار كودك...
              Egypt


              I Love Direct-X

              سبحان الله و بحمده سبحان الله العظيم
              اللهم صلي وسلم و بارك علي سيدنا محمد

              تعليق

              يعمل...
              X