موضوع: 2d in 3d تجربه جديده لمحبي عالم 2.5

ردود: 10 | زيارات: 907
  1. #1
    عضو متميز
    صور رمزية لا اعلم
    تاريخ التسجيل
    Oct 2010
    المنطقة
    الـــــكويت
    ردود
    1,236

    2d in 3d تجربه جديده لمحبي عالم 2.5

    بسم الله الرحمن الرحيم


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


    الــــــــــــــــــمــــــــــــــــــوضـــــــــــــــــــوع
    عبارة عن ورشة عمل للعبة بسيطه تكون شبية بألعاب game maker ولكن مــــــــــع الــــفــــارق......

    نظام اللعبة سيكون 2d in 3d
    والبرنامج الذي ساستخدمه هو unity 3d
    ساقوم بوضع شخصية 2d في بيئة 3d واجعلها تتحرك وتتفاعل مع المحيط ........
    وبذلك اكون قد جذبة اصحاب game maker واصحاب 3D .......

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

    اولا كود تحريك الشخصية بجميع الاتجاهات
    المصـــــــــــدر:::::: موقع اليونتي وهو جاهز و موجود بالمراجع
    كود:
    /// and sideways based on the arrow keys.
    /// It also jumps when pressing space.
    /// Make sure to attach a character controller to the same game object.
    /// It is recommended that you make only one call to Move or SimpleMove per frame.    
    
    var speed : float = 6.0;
    var jumpSpeed : float = 8.0;
    var gravity : float = 20.0;
    
    private var moveDirection : Vector3 = Vector3.zero;
    
    function Update() {
        var controller : CharacterController = GetComponent(CharacterController);
        if (controller.isGrounded) {
            // We are grounded, so recalculate
            // move direction directly from axes
            moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
                                    Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            
            if (Input.GetButton ("Jump")) {
                moveDirection.y = jumpSpeed;
            }
        }
    
        // Apply gravity
        moveDirection.y -= gravity * Time.deltaTime;
        
        // Move the controller
        controller.Move(moveDirection * Time.deltaTime);
    }
    ثانيا كود جعل الكاميرا والشخصيه تلف حول نفسها يكي تستطيع رؤية البيئة 3D
    المصـــــــــــدر:::::: كتاب الاخ الاستاذ محمد عيسى عبيد الجبوري مع اشوية تعديل
    كود:
    function Update () {
    if (Input.GetKey("2") ) {
    transform.Rotate(0 , 0.3 , 0 );
            }
    		if (Input.GetKey("1") ) {
    transform.Rotate(0 , -0.3 , 0 );
            }
    الموضوع في مجمله بسيط ولكني اود التركيز على
    sprite 2d
    لعرض صحيح لــsprite 2d يجب ان يكون دائما في مواجهة الكاميرا يدور مع الكاميرا ويبقى على نفس الزاويه دائم

    http://up.arab-x.com/Jan11/dmG89225.jpg صوره للبيئة 3D

    http://up.arab-x.com/Jan11/6uI89225.jpg صورة لعملية وضع sprite 2d

    http://www.mediafire.com/download.php?c9p5cenj2tef784 رابط للبيئة 3D للي حاب يتفرج

    وجاري تحديث الموضوع واكماله..............................

    وتقبلو تحياتي


  2. #2
    شيء جميل وحلوا لا اتمنئ لك التوفيق



    .....متابع لموضوعك

  3. #3
    DEV]NaSeR]
    تاريخ التسجيل
    Jan 2009
    المنطقة
    MAKKAH
    العمر
    27
    ردود
    484
    رائع في انتظار الجديد

  4. #4
    عضو متميز
    صور رمزية لا اعلم
    تاريخ التسجيل
    Oct 2010
    المنطقة
    الـــــكويت
    ردود
    1,236
    اشكرك اخي ليون سكوت و broly
    على التشجيع وانشاله انه التجربه تكون بداية للالعاب من عالم 2.5D

  5. #5
    عضو متميز
    صور رمزية لا اعلم
    تاريخ التسجيل
    Oct 2010
    المنطقة
    الـــــكويت
    ردود
    1,236
    بسم الله الرحمن الرحيم


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


    ولا كود تحريك السبرايت

    المصـــــــــــدر::: من النت بشكل غير مكتمل وتم التعديل عليه لساعات طويله

    كود:
     
    var uvAnimationTileX = 4;
    var uvAnimationTileY = 0;
    var framesPerSecond = 10.0;
     
    function Update () {
     if(Input.GetKey("down") || Input.GetKey("s")) {
    	// Calculate index
    	var index : int = Time.time * framesPerSecond;
    	// repeat when exhausting all frames
    	index = index % (uvAnimationTileX * uvAnimationTileY);
    	
    	// Size of every tile
    	var size = Vector2 (-1.0 / uvAnimationTileX, -0.26 );
    	
    	// split into horizontal and vertical index
    	var uIndex = index % uvAnimationTileX;
    	var vIndex = index / uvAnimationTileX;
     
    	// build offset
    	// v coordinate is the bottom of the image in opengl so we need to invert.
    	var offset = Vector2 (uIndex * size.x, 0);
    	
    	renderer.material.SetTextureOffset ("_MainTex", offset);
    	renderer.material.SetTextureScale ("_MainTex", size);
    }
     if(Input.GetKey("up") || Input.GetKey("w")) {
    	// Calculate index
    	var index1 : int = Time.time * framesPerSecond;
    	// repeat when exhausting all frames
    	index1 = index1 % (uvAnimationTileX * uvAnimationTileY);
    	
    	var size1 = Vector2 (-1.0 / uvAnimationTileX, -0.26 );
    	// split into horizontal and vertical index
    	var uIndex1 = index1 % uvAnimationTileX;
    	var vIndex1 = index1 / uvAnimationTileX;
     
    	// build offset
    	// v coordinate is the bottom of the image in opengl so we need to invert.
    	var offset1 = Vector2 (uIndex1 * size1.x, 0.25);
    	
    	renderer.material.SetTextureOffset ("_MainTex", offset1);
    	renderer.material.SetTextureScale ("_MainTex", size1);
    }
     if(Input.GetKey("right") || Input.GetKey("a")) {
    	// Calculate index
    	var index2 : int = Time.time * framesPerSecond;
    	// repeat when exhausting all frames
    	index2 = index2 % (uvAnimationTileX * uvAnimationTileY);
    	
    	var size2 = Vector2 (-1.0 / uvAnimationTileX, -0.26 );
    	// split into horizontal and vertical index
    	var uIndex2 = index2 % uvAnimationTileX;
    	var vIndex2 = index2 / uvAnimationTileX;
     
    	// build offset
    	// v coordinate is the bottom of the image in opengl so we need to invert.
    	var offset2 = Vector2 (uIndex2 * size2.x, 0.5);
    	
    	renderer.material.SetTextureOffset ("_MainTex", offset2);
    	renderer.material.SetTextureScale ("_MainTex", size2);
    }
     if(Input.GetKey("left") || Input.GetKey("d")) {
    	// Calculate index
    	var index3 : int = Time.time * framesPerSecond;
    	// repeat when exhausting all frames
    	index3 = index3 % (uvAnimationTileX * uvAnimationTileY);
    	
    	var size3 = Vector2 (-1.0 / uvAnimationTileX, -0.26 );
    	// split into horizontal and vertical index
    	var uIndex3 = index3 % uvAnimationTileX;
    	var vIndex3 = index3 / uvAnimationTileX;
     
    	// build offset
    	// v coordinate is the bottom of the image in opengl so we need to invert.
    	var offset3 = Vector2 (uIndex3 * size3.x, 0.75);
    	
    	renderer.material.SetTextureOffset ("_MainTex", offset3);
    	renderer.material.SetTextureScale ("_MainTex", size3);
    }
    }
    الحقيقه لا يوجد كود بالنت ولا بالمنتديات يتكلم عن تحريك السبرايت بهذي الطريقه حسب بحثي بالنت..........
    كذلك اود القول اني لا اعلم ان كان بالامكان كتابة نفس الكود بطريقه اقل وبشكل مختصر...........





    واخيرااااااااااااااااااااااا

    رابط تحميل التجربه 2D IN 3D واتمنى ان تحوز على اعجابكم ولكم مطلق الحريه باستخدام اكواد المعروضه بالموضوع

    http://up.arab-x.com/Jan11/2zY91869.png صـــــــــــــوره للشخصيه واللعبه

    التحكــــــــــــــــــــــــــم::::: بالاسهم لتحرك الاتجاهات ورقم 1 و 2 لدوران الكامــــيرا

    وتقبلووو تحياتي

  6. #6
    شكرا يا صديقي
    سبحان الله و بحمده،سبحان الله العظيم



  7. #7
    عضو متميز
    صور رمزية لا اعلم
    تاريخ التسجيل
    Oct 2010
    المنطقة
    الـــــكويت
    ردود
    1,236
    kaban حياك الله انشاله عجبتك التجربه
    _______________________________________________________________________________________

    الــــــــــي كل المختصين والمبرمجين unity 3d


    ودي اسـال هل بالامكان كتابه كود تحريك السبرايت بطريقه اسهل ومختصره ؟

  8. #8
    عضو متميز
    صور رمزية naoufal
    تاريخ التسجيل
    Feb 2010
    المنطقة
    دولة الخلافة
    العمر
    23
    ردود
    1,141
    عمل جميل مشكوور يا بطل
    الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
    بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
    امة واحدة راية واحد حرب واحدة

  9. #9
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    الصراحة تجربة جميلة و معمول فيها جهد تشكر عليه
    Egypt


    I Love Direct-X

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

  10. #10
    عضو متميز
    صور رمزية لا اعلم
    تاريخ التسجيل
    Oct 2010
    المنطقة
    الـــــكويت
    ردود
    1,236
    تسلم اخوي naoufal انشاله اعجبك موضوعي
    _____________________________________________________________
    general1 اشكرك على االمرور وعلى وردك المشجع

Bookmarks

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

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