• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • صفحة 1 من 3 123 الأخيرةالأخيرة
    النتائج 1 إلى 15 من 43

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

    1. #1
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة

      الدرس الاول : تحريك الشخصيات بالتفصيل

      .......................{ بسم الله الرحمن الرحيم }......................
      السلام عليكم....

      - تشهد برمجة الالعاب إقبالاً كبيراً في المجتمع الغربي و غيره ماعدانا نحن العرب.
      فكم لعبة عربية رأت النور ؟ لن تستخدم الحاسبة لذلك .
      فمن أسباب عدم إنتشار هذه ( المهنة & الهواية ) هو عدم وجود مصادر عربية وكذلك النظرة الى هذا العالم كعالم غامض وصعب ولا يدخله سوى العباقرة......

      * قد أكون مخطئ في هذا ففي برمجة الالعاب الاحترافية ( اقصد بها 3D )
      يوجد هنالك بعض الرياضيات والفيزياء...ولكنها بسيطة وأيظاً تستطيع تفادي الغموض بإستخدام مكتبات برمجية جاهزة ، فهي ستريحك و تسرع عملك وبعضها كاملة وقوية مثل المكتبة الرائعة Genesis3D فبوجود مثل هذه المكتبات تصبح برمجة الالعاب ممكنة لاي شخص يريد الدخول في هذا المجال ، فجل ما تحتاجه هو الوقت....

      كلااااااااااامي واجد صح حركتات

      ولدي بعض الخبرة البسيييطة في هذا المجال (حدود شهرين فقط )
      لذلك الدروس التي سأقدمها للمبتدأين بلغة VB
      اما الدروس المتوسطة فإن وضعتها فستكون بلغة ++C وعن DX ..
      واما الدروس المتقدمة فأتركها للخبراء ( تصريييييف )

      * تفترض هذه الدروس معرفة الاساسيات بلغة البيسك
      * يستطيع مبرمجين اللغة C فهم الاكواد لانها بسيطة .
      * للذين لم يتعلموا لغة برمجة....لماذا تهدرون وقتكم ان كنتم تريدون برمجة الالعاب...اذهبوا للمكتبة الاان

      دروس المبتدأين:
      الدرس الأول : التحريك
      الدرس الثاني : التصادم
      الدرس الثالث : أشكال جميلة
      الدرس الرابع : أوامر مهمة في برمجة الألعاب
      الدرس الخامس : الأصوات
      الدرس السادس : الاداة BitBlt
      الدرس السابع : نبذة عن DX
      الدرس الثامن : معلومات برمجية

      سأحاول جاهداً ان يكون الشرح واضح مع أنني لا اتصف بذلك ... فإذا
      واجهتكم مشكلة في شيء أسئلني وسأكون شاكراً

      سأكتب الدرس الاول في هذا الموضوع هذا اليوم
      ملاحظة / ستجدون في نهاية كل درس ملف مضغوط فيه جميع امثلة الدرس .
      التعديل الأخير تم بواسطة sin_himself ; 23-10-2002 الساعة 02:23 AM
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    2. #2
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم....

      مقدمة عن التحريك :
      1- افتح فيجوال بيسك.
      2- ضع داخل ملف الفورم مربع صورة Picturebox
      3- ضع داخل مبربع الصورة : صورة ( اي صورة ) من خلال الخاصية picture .
      4- احفظ الملف بإسم (1-1)

      والان وقد وضعت الصورة...كيف تعرف موضع الصورة داخل الفورم؟
      - من خلال الخاصية Left : المسافة من اليسار و Top : المسافة من الاعلى.
      فإذا كانت الTop = 0 فإن الصورة ستكون في أعلى النافذة بالظبط
      وإذا كانت ال Top = 0 و Left = 0 فإن الصورة ستكون في الزاوية الشمالية الغربية.

      والان استطعنا وضع صورة في المكان الذي نريد :
      تطبيق (1-1) ....
      1- افتح الملف السابق
      2- ضع مربع نص داخل الفورم
      3- ضع مربع نص اخر داخل الفورم .
      4- ضع زر أمر (command) وغير الخاصية Caption الى "غيرموضع الصورة"
      5- داخل الكود اكتب :
      كود:
      Private Sub Command1_Click()
      Picture1.Top = Text1.Text
      Picture1.Left = Text2.Text
      End Sub
      
      Private Sub Form_Load()
      Text1.Text = "" ' لكي نجعل النص فارغ
      Text2.Text = ""
      End Sub
      * فقط لقد جعلنا النص عندما يتم التحميل فارغ ,جعلنا القيمة في النص الاول = ارتفاع الصورة . والخرى نفس الشيء .

      سنعود بعد قليل
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    3. #3
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم
      السلام عليكم....

      التحريك :
      السؤال الرئيسي والذي سنشتق منه جميع الاسئلة :
      كيف تتحرك الشخصية من مكان الى اخر ؟!!!
      كنا قد حركناها وذلك من خلال كتابة قيم في مربع النص ، ولكن انا لا اريد ذلك ... اريد ان تتحرك بشكل متزايد....
      نفعل ذلك من خلال هذا الكود :
      كود:
      Picture1.Left = Picture1.Left + 100
      فعندما ينقر المستخدم على زر امر (command) مثلاً تتحرك الشخصية مقدار 100 ....فهذا الكود مشابه لـ :
      عدد التفاحات = عدد التفاحات الحالية + 100

      تطبيق 1-1 : افتح المشروع السابق ثم ضع هذا الكود بدلاً من الكود الحالي :
      كود:
      Private Sub Command1_Click()
      Picture1.Left = Picture1.Left + 100
      End Sub
      
      Private Sub Form_Load()
      Text1.Text = "الطريقة"
      Text2.Text = "الجديدة"
      End Sub
      ولاكن نحن في برمجة الالعاب لا نتعامل مع زر كوماند . فكيف نتفاعل مع الكيبورد والماوس ؟

      الكيبورد :
      هنالك ثلاث احداث(Events) يقدمها VB ... ما يهنا هو اثنان منها
      مثال : اذا ضغط المستخدم على زر <--- في الكيبورد لكي تتحرك الشخصية لليمين مدة 1 دقيقة ثم تركه فكيف سنتعامل مع هذا المدخل.
      _________
      الحدث Keydown :

      كود:
      Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
      
      End Sub
      عندما يضغط المستخدم على الكيبورد فإن هذا الحدث يخزن في ذاكرة الجهاز رقم هذا الزر الذي ضغطناه في المتغير KeyCode
      فمثلا عندما انقر على مسافه (Space) فإن Keycode = 16 وعندما ينقر على زر انتر Enter فإن Keycode = 13 وهكذا
      هل انا مضطر الى حفظ هذا الارقام ؟ :غضب:
      - بالطبع لا ...تستطيع كتابة:
      كود:
      print keyCode
      لمعرة رقم الزر الذي ضغطته .
      اذا استمريت في الضغط على زر معين..ماذا يحدث ؟
      - ستستمر حركة الشخصية حتى ترفع الزر (وهذا هو المطلوب)
      ولكن انا اريد ان يفعلها مرة واحدة .
      - هنالك عدة طرق ذكية منها KeyUP وسنتطرق لها بعد قليل...

      في المثال السابق حركنا الشخصية من خلال Command والان سنحركها بواسطة KeyDown ....

      تطبيق (1-2) :
      1- اضف مشروع جديد واحفظ بإسم 1-2
      2- اضف مربع صورة وضع داخلة صورة ما
      3- اكتب هذا الكود :
      كود:
      Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
      Print KeyCode
      Select Case KeyCode
         Case 39
           Picture1.Left = Picture1.Left + 100
         Case 37
           Picture1.Left = Picture1.Left - 100
      End Select
      End Sub
      _______________
      الحدث KeyUP :
      نفس طريقة عمل السابق ولاكن يشتغل هذا الحدث اذا رفع المستخدم عن زر ما....
      مثال : ضغط المستخدم على زر مسافة مدة ساعة كاملة ثم تركه ...
      سيتحقق فقط بعد نهاية الساعة لان المستخدم رفع يده عن الزر(من اسم الحدث)

      _______________
      احداث الماوس ..سأتحدث عنها لاحقاً

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

      والان لقد تعلمنا كيف نحرك شخصية بإستخدام Keycode ولكن هل سيظل كل شيء جامداً هكذا حتى نقوم بتحريكه ...هنا يأتي العنصر Timer .....

      سنعود بعد قليــــــل

      تحياتي
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    4. #4
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم

      ما هو عنصر Timer ؟

      هو مجرد أداة ميقاتية تنفذ الأوامر التي بداخلها كلما مر وقت معين تحدده انت من خلال الخاصية (Interval) :
      كود:
      Timer1.Interval = 100
      سأضع له تطبيقين ( تطبيق1-3 ، تطبيق1-4)
      واذا واجهت صعوبه في فهم هذا العنصر...اخربني وسأكون سعيداً بالإجابة.

      لقد ارفقت ملف مضغوط في التطبيقات الاربعة التي أخذناها

      انتهينا من الجزء الأول والاساسي في برمجة الالعاب
      سأكمل في الجزء الثاني اساسيات التحريك....

      تحيااااااااتي
      الملفات المرفقة الملفات المرفقة
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    5. #5
      التسجيل
      04-11-2001
      الدولة
      U.A.E
      المشاركات
      4,196
      المواضيع
      67
      شكر / اعجاب مشاركة
      ما شاء الله موضوع ممتاز و مفيد و رائع جداً و راح يفيد كل الأعضاء و أتمنى إنك تكمل الدروس إلى النهاية و الصراحة من مواضيعك و ردودك مبين عليك عضو ممتاز و فعال في المنتدى و إن شاء الله بنستفيد من دروسك الرائعة

    6. #6
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      اشكرك كثيراً....ولم افعل ما يستحق الشكر....واتمنى ان يستفيد ولو شخص واحد من الدروس ...واشكرك مرة اخرى لما قلته ...واشكر الشكر لان ردي لك امتلأ بالشكر ...
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    7. #7
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      ستكون التكلمة لهذا الدرس عن :
      التحكم بالماوس...
      تحريك شخصية ماريو....
      عملية القفز في ماريو....

      ولكن اين الواجب ... كيف أعرف ان كلامي مفهوم الا عن طريق الواجب
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    8. #8
      التسجيل
      21-07-2002
      الدولة
      KuwaiT
      المشاركات
      344
      المواضيع
      12
      شكر / اعجاب مشاركة
      شوي شوي علينا والواجب انشالله الخميس او الجمعه عالعطله

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

      لك جزيل الشكر اخي العزيز

    9. #9
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      ول ول ول :واو: .. لا تكبر راسي ما اعرف اشرح
      انا ما اعرف الا الاساسيات...ما دخلت هذا المجال الا من شهرين...يعني قبل شهرين ما اعرف شي .... لا تعطيني اكبر من حجمي..

      صراحة ودي اشكرك بقووووووة..انت اول واحد حسسني ان فيه امل احد يحل الواجب
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    10. #10
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم
      السلام عليكم...

      نكمل الشرح(طق × طق ×طقق × طق) :

      موضوعنا كما قرأتم هو التحكم بالماوس :

      (ابشركم)..الماوس مشابه لطريقة الكيبورد ..

      قبل ذلك ماذا استفيد من الماوس ؟
      - تعرف احداثيات الفارة (X,Y) في اي مكان داخل الفورم .
      - معرفة اذا ما نقر المستخدم الزر الايسر او الايمن او لا شيء
      -استخدام Drag & Drop ... شل و حط

      يقدم VB ثلاث احداث (events)..للماوس تماماً كالكيبورد .

      الحدث Mouse Down :
      كود:
      Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      'End Select
      End Sub
      ماذا يعني Button ؟
      هذا المتغير يخبرك اي من ازرار الفارة قد نقر
      ماذا يعني Shift ؟
      الحقيقة كان من المفروض شرحة في درس الكيبورد ( سامحونا )
      يخزن هذا المتغير ما اذا كان الزر Shift مظغوط ام لا
      طيب كيــف اتعامل معه ؟ :غضب:
      يخزن القيمة صفر اذا لم يظغط والقيمة واحد اذا ظغط .
      ماذا يعني X و Y ؟
      X هو الاحداثي السيني للفارة ، Y هو الاحداثي الصادي للفارة
      ملاحظة/ هذه الاحداثيات بالنسبة للفورم وليست الشاشة...فإذا نظرت الى الكود في الاعلى ستجد Private Sub Form ما يهمني هو كلمة فورم فالاحداثيات تنسب الى الفورم ، وعندما اضع Private Sub picture1 فإن الاحداثيات تنسب الى الصورة اي أن
      X = 0 عندما تكون الفارة واقعة على Left الصورة
      ان لم تفهم هذا الكلام ( وهذا دائما ما يحدث معي) ..جرب المثال الذي سأرفقة.

      * بقي نقطة مهمة هي التي تفرق بين الاحداث الثلاثة :
      متى ينشط هذا الحدث (اي متى ينفذ ما بداخلة) ؟!!!
      ج/ ماهو اسم الحدث ؟ اسمه MouseDawn اذن ينشط عندما ينقر المستخدم على الماوس .

      الحدث : MouseMove
      مطابق تماما للحدث السابق ولكن الفرق هو ... متى ينشط هذا الحدث؟
      ج/ ماهو اسم الحدث ؟ اسمه MouseMove اذن ينشط عندما يتغير احد احداثيات الفأرة .

      الحدث : MouseUp
      مطابق تماما للحدث السابق ولكن الفرق هو ... متى ينشط هذا الحدث؟
      ج/ ماهو اسم الحدث ؟ اسمه MouseUp اذن ينشط عندما يرفع المستخدم يده من احد ازرة الفأرة .

      تطبيق (1-5) :
      1- افتح مشروع جديد واحفظه بإسم (1-5)
      2- اضف هذا الكود
      كود:
      Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      Cls
      Print "X = " & X
      Print "Y = " & Y
      Print Shift
      Select Case Button
          Case 1: Print "الزر الايسر مظغوط"
          Case 2: Print "الزر الايمن مضغوط"
      End Select
      End Sub
      ماهو cls ؟
      هو امر بسيط يمسح الفورم وهو اختصار الى CleanScreen....
      لماذا احتاجها ؟ لماذا امسح وانا اريد ان اطبع ؟؟!!:غضب: ....
      لغة البيسك ليست كالسي...فعندما تطبع نص بأمر Print ثم طبعت نص اخر فإن النص الثاني سيضهر تحت النص الاول....وعندما تريد طباعة نص ثالاث سيضهر تحت هذين النصين....
      وانا اريد ان اطبع اكثر من نص...وان كانت كل مجموعة نصوص ستضهر تحت الاخرى ففي خلال كم نقرة ستختفي النصوص الجديدة ...
      لذا قبل ان يتم طباعة شيء جديد امسح الفورم بإستخدام الامر cls ثم اقوم بطباعة الاحداثيات الجديدة...

      ماهو الامر Print ؟
      هو امر يقوم بطباعة نص على النافذة
      نستخدم " " لنخبر VB ان هذا نص وليس متغيراً
      نستخدم & للربط بين نصين مثلاً
      كود:
      "Print "Hello" & "World
      سيطبع : HelloWorld

      سأرفق ملف لهذا التطبيق

      تحيااااااتي
      التعديل الأخير تم بواسطة sin_himself ; 24-10-2002 الساعة 06:54 AM
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    11. #11
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      قبل ان نبدأ بالشغل ....ابستنا فترة لمين تطبق الدروس عشان نمشي مع بعض ولا يقف بعضنا موقف المتفرج
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    12. #12
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      ملاحظة نسيت قولها : في الاكواد بعض الاحيان تضهر معكوسة لذا عند التطبيق لا تقم بكتابتها...بل... انسخها ثم الصقها.

      تحياتي
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    13. #13
      التسجيل
      29-11-2001
      الدولة
      Beyond Dreams
      المشاركات
      1,001
      المواضيع
      48
      شكر / اعجاب مشاركة
      شكرا على الدروس الرائعة، و هذا واجب الدرس الاول


      Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = 78 Then
      Picture1.Top = Picture1.Top - 100
      Picture1.Left = Picture1.Left + 100
      End If

      End Sub

      78 هو الحرف n و بقية الكود يحرك الصورة
      تابع الدروس

    14. #14
      التسجيل
      17-06-2002
      الدولة
      الرياض
      المشاركات
      89
      المواضيع
      4
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم

      تماااااام 10000% صحيح ......


      ____________________________________

      فكرة الدرس القادم :
      (1) كيف نكون دالة لتكون دالة الاعدادت؟

      (2) تحريك ماريو :
      ** لديك شخصية اسمها ماريو ولديك اربع صور له :
      - الصورة الاولى : واقف ... ورأسه نحو اليمين
      - الصورة الثانية : واقف ... ورأسه نحو اليسار
      - الصورة الثالثة : يتحرك نحو اليمين
      - الصورة الرابعة : يتحرك نحو اليسار.
      * كيف سنحركه اعتماداً على هذه الصور ؟

      (3) القفز : بإستخدام : أ - Select case + Timer . ب - Loop

      تحياتي
      اخوكم / يـز يـد الـد لـيـقـان
      yazeed_eyes@hotmail.com

    15. #15
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      هذه هي الصورة
      الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة image1.bmp‏  
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    صفحة 1 من 3 123 الأخيرةالأخيرة

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •