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

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

    1. #16
      التسجيل
      26-07-2002
      الدولة
      يمكن تحتك أو يمكن فوقك ويمكن وسطك أنا ...
      المشاركات
      863
      المواضيع
      15
      شكر / اعجاب مشاركة
      بيسك

      انتظر دروس لغة C و ++C و #C






      إي صح مشكور على الموضوع الرائع

    2. #17
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      بسم الله الرحمن الرحيم....

      معذرة يا شباب لقد نسيت امراً كان يجب ان اذكره في البداية وهو الدوال()
      واما موضوع ماريو فسأضعه غداً بإذن الله..(المعذرة)

      اخي H4 : مالمخجل في بيسك ، لماذا افضل الصعوبة على السهولة؟
      فحتى الان كل ما نقوم به هو العاب ثنائية الابعاد و بيسك تقوم بذلك
      على اكمل وجه...ولكن في الالعاب الثلاثية الابعاد سنتطرق للسي(اجباراً )
      فحتى تلك اللحظة......

      الدوال()

      مافائدة الدوال...
      اولا كل ما هو امامك هو دوال وانت تستدعيها وانت لا تشعر...ستعرف معنى هذا الكلام في اساسيات ++C .
      ولكن ما فائدتها في برنامجنا؟!!
      - لتنظيم مساحة العمل...
      - لنتعود على هذه الطريقة فسوف نقوم بها في DX .
      - التحكم بالاخطاء .

      والان انقر على كلمة tools في الاعلى ثم Add procedure .
      اختر Function واختر Private .....
      - لماذا اخترت Function تحديداً ؟
      لاننا في برمجة الالعاب (انواع المشاكل والاخطاء)..فعند استدعاء الدالة اريد ان اتأكد من ان ما بداخلها قد تم بنجاح ام لا....فـ Function تقوم بذلك.
      كود:
      Public Function Func1() As Boolean
      ----
      End Function
      والان هذه هي الدالة..خالية من الاوامر..وقبل الاوامر انا لم اقوم باي عملية تتأكد من ان استدعائها تم بنجاح ( يا كثر كلامي :

      نفعل ذلك من خلال الكود التالي :
      كود:
      Private Function func1() As Boolean
      On Local Error GoTo Err:
      --------
      --------
      func1 = True
      Exit Function
      Err:
      func1 = False
      MsgBox "هنالك خطأ في الجزء func1"
      End Function
      وش مسوي انت ؟!!:غضب: ....
      ستعتاد على كذا واكثر بكثيــــــــر اذا تعملت DX
      سنشرح العملة السابقة سطراً بسطر :
      1- تعريف دالة خاصة اسمها Func1 من نوع Boolean .

      2- [On Local Error] هذا السطر تستطيع من خلالة التحكم في الاخطاء ... بحيث اذا حدث خطأ ... افعل الاتي ، وطلبنا منه هنا بأن يفعل Goto err...امر Goto يجعل البرنامج يذهب الى جزء معين من الدالة واسمه هنا err .

      3- ------------- و ----------- اوامر الدالة التي سنضعها بعد قليل .

      4- اذا وصل البرنامج الى نهاية الاوامر ...معناه انه لا يوجد خطأ (عند وجدود الخطأ سيذهب الى err) .. فإذا وصل الى النهاية فقد تم استدعاء الدالة بنجاح ... لذا سنضع func1 = true ...

      5- خلاااص اذا مافيه اخطاء ننهي الدالة وتنكمل البرنامج وذلك من خلال امر الخروج Exit function .

      6- هذا هو الجزء Err ...(عند هدوث خطأ سيذهب البرنامج الى الجزء err

      8- بما ان الدالة حدث فيها خطأ اذن سنجعل func1 = false ...

      9- اعرض رسالة مفادها "حدث خطا"

      ادري شغلة بس تراك ما شفت شي من DX .

      والان كيف نستدعي الدالة ؟
      بواسطة الامر call مثال : call func1 .

      من اين نستدعيها وكيف نتعامل مع الاخطاء ؟
      مثلا سنستدعيها من الفورم داخل الاجراء load ...

      كود:
      Private Sub Form_Load()
      If func1 = False Then
      MsgBox " لسنا قادرين على الاكمال"
      Unload Me
      End If
      End Sub
      هنا سنتعامل مع الخطأ :
      .... قبل كذا الحين وييين call ليش ما استدعينا الدالة :غضب: ؟؟!؟؟
      - لقد استدعينا الدالة عند الشرط فعند If func1 = false سيقوم البرنامج بإستدعاء الدالة ثم سيرى ان كانت false ام True...
      ** اذا تحقق الشرط اضهر رسالة " لسنا قادرين على الاكمال واخرج من البرنامج(من خلال الامر unload me و تستطيع كتابة end)

      ملاحظة/ الفرق بين unload me و end ...
      ___________________________________________________
      |................Unload Me..................|..............................end.............|
      |...1- يخرج من البرنامج بأكملة...........|.....1- يخرج من الفورم فقط............|
      |.............................................|...........................................|
      |.2- ينهي البرنامج بشكل غير محبب........|..2- يبنهي البرنامج بشكل افضل........|
      |.............................................|...........................................|
      --------------------------------------------------

      والان دعنا نقوم بكتابة بعض الاوامر في الدالة
      ملاحظة / اضف مربع نص الى الفورم .
      كود:
      Private Sub Form_Load()
      If func1 = False Then
      MsgBox " لسنا قادرين على الاكمال"
      Unload Me
      End If
      End Sub
      
      Public Function func1() As Boolean
      On Local Error GoTo Err:
      Dim a As Integer
      a = 7 / 1
      Text1.Text = a
      func1 = True
      Exit Function
      Err:
      func1 = False
      MsgBox "هنالك خطأ في الجزء func1"
      End Function
      الاوامر التي وضعناها في الدالة :
      كود:
      Dim a As Integer
      a = 7 / 1
      Text1.Text = a
      هل هنالك مشكلة في الكواد بالطبع لا .... جرب هذا كود وسينفذ 100%
      وكلن دعنا نقوم بإحداث خطأ:
      اجعل
      كود:
      a = 7 / 0
      القسمة على صفر...غير ممكنة.... لذا سيقوم البرنامج بعرض رسالتين اخطاء الاولى من الدالة التي تسببت في حدوث الخطأ والثانية من الجزء الرئيسي الذي يستدعي الدوال(Form_load) ..ثم سينهي البرنامج نفسه.

      فائدة : لبعض الفعالية في إستكئاف الاخطاء استخدم Err.Description ويقوم هذا الامر بإيضاح الخطأ.
      مثال
      كود:
      Public Function func1() As Boolean
      On Local Error GoTo Err:
      Dim a As Integer
      a = 7 / 0
      Text1.Text = a
      func1 = True
      Exit Function
      Err:
      func1 = False
      MsgBox Err.Description & "   هنالك خطأ في الدالة وهو"
      End Function

      عرفنا الان استدعاء الدوال وكشف الاخطاء والتعامل معها....ولا توجد فائدة مرئية لهذا في برمجة الالعاب ولكنها فقط طريقة منظمة ومطمئنة في البرمجة...فلست مجبراً عليها ....



      الدرس القادم : تحريك ماريو

      تحياااااااااااااااااااتي
      التعديل الأخير تم بواسطة PRG of RPG ; 02-11-2002 الساعة 09:10 AM
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    3. #18
      التسجيل
      10-07-2001
      الدولة
      In The Darkness
      المشاركات
      1,041
      المواضيع
      152
      شكر / اعجاب مشاركة
      مشكور على هذا الشرح الرائع

    4. #19
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      الرسالة الأصلية كتبت بواسطة كريس ريد فيلد
      مشكور على هذا الشرح الرائع
      مشكوووووووووووور اخي كرس
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    5. #20
      التسجيل
      19-10-2002
      الدولة
      ZoRa's DoMaiN
      المشاركات
      981
      المواضيع
      98
      شكر / اعجاب مشاركة

      أرجووووووووووكم ساعدوني

      كيف اقدر ابتكر لعبه من تصميمي وتفكيري
      ارجوكم ساعدوني
      :" :" :" :" :" :" :"






      ارجوا الرد على هذا الاميل

      hi2all_hi4all167@hotmail.com


      وشكرا









    6. #21
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم....
      اخي الكنق ..كيف حالك..فيه مواضيع عديدة توضحلك طريق برمجة الالعاب..اذا كنت ما قريتها :

      بإختصار : فيه طريقتين
      -الطريقة (1) : هنالك برامج جاهزة لا تشترط معرفتك بأي لغة...تقدر تسوي فيها العاب بسرعة... بس ما تقدر تتحكم في اللعبة تحكم كامل.

      -الطريقة (2) : تتعلم احد لغات البرمجة السي او البيسك ثم تبدأ في الالعاب الصغيرة حتى تصل الى الالعاب الثلاثية الابعاد ......

      واهم شي الصــــــــــــــــــــبر

      تحياتي
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    7. #22
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم....

      درس اليوم : مكرونة بالبشملي

      تراني صادق الدرس يشهي....(تبي تشوف شي يتحرك قدامك )


      معليش شباب الشرح بيكون سريع سريع
      __________________________

      -اول شيء كيف ندرج صورة؟
      نقدر نضع صورة من الخاصية picture .

      طيب كيف ندرج صورة من الكود ؟
      كود:
      picture1.picture = loadpicture("C:/man.jpg")   'this will insert picture
      كما نرى فقط نضع موقع الصورة وستضهر الصورة في البرنامج

      ولاكن ماذا اذا نقلنا البرنامج الى موقع اخر؟
      هنا يأتي دور الكائن App.path فهر يعطينا موقع البرنامج.

      picture1.picture = App.path & "image.img" ' this will insert picture

      ________________________________

      ماهو الموديل ؟
      هو ملف نضيفة الى المشروع لأنشاء الدوال وتحسين القرائة و....

      اضف موديل جديد :
      Project -- Add module --Open
      سيضهر لك الموديل...ولاكن ما ذا نفعل به؟!!
      سنضيف اليه متغيرات عامة نستطيع استخدامها في اي جزء من البرنامج..فلو كان لدي اكثر من فورم واردت ان اجعل متغير لهم مشترك يجب ان اضيف موديل لذلك...،...واذا اردت ان يصبح متغير عام اكتب في البداية كلمة Public بدلاً من Dim مثال
      Public name as string

      تطبيق :
      اضف مشروع جديد واحفضه بإسم : تطبيق(1-7)
      اضف موديل...
      اكتب داخل الموديل هذا الكود :
      كود:
      Option Explicit
      
      Public a As String
      Public b As String
      Public c As String
      Public d As String
      
      Public Sub Init()
      Form1.BackColor = vbBlack
      
      Form1.Picture1.AutoSize = True
      Form1.Picture1.Appearance = 0
      
      a = App.Path & "/1.bmp"
      b = App.Path & "/2.bmp"
      c = App.Path & "/3.bmp"
      d = App.Path & "/4.bmp"
      End Sub
      حسناًً....ماهي Option Explicit ؟!!!
      كلمة اضعها اذا اردت ان اجبر نفسي بأن اعرف كل متغير جديد ... فإذا كتبت متغير ولم اعرفه(اذكره نوعه) ، فسيعترض البرنامج هذه العملية...تستطيع حذفها اذا اردت.

      المتغيرات a و b و c و d تحمل عناوين الصور الاربع (سبق ان اشرت اليها)

      الدالة(Init) :
      form1.backcolor = vbblack اي لون الخلفية اسود
      form1.picture1.autosize = true اي سيأخذ مربع الصورة ابعاد الصورة نفسها .
      form1.picture1.Appearance = 0 اي ان مربع الصورة سيضهر بدون حواف .

      ملاحظة / لابد من ذكر الفورم لاي كائن داخلها اذا كنت تشتغل على موديل فكيف سيعرف البرنامج انك تريد هذا الفورم عن غيره ؟!! لا بد من ذكر الفورم قبل الكائن .

      a = App.Path & "/1.bmp" المتغير a سيحمل موقع البرنامج + اسم الصورة فبذلك سيحمل موقع الصورة كاملاً فهمها غيرت موقع البرنامج ستضهر الصورة هذه هي فائدة الكائن App.path ...

      _____________________-
      الان ننتقل الى الفورم

      كود:
      Private Sub Form_Load()
       Call Init
         Picture1.Picture = LoadPicture(c)
      End Sub
      
      Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)
      
      Static step As Integer
      
       Select Case KeyCode
         Case 39
           Picture1.Left = Picture1.Left + 50
             If step = 0 Then
               step = 1
               Picture1.Picture = LoadPicture(c)
             ElseIf step = 1 Then
               step = 0
               Picture1.Picture = LoadPicture(d)
             End If
         Case 37
           Picture1.Left = Picture1.Left - 50
               If step = 0 Then
                 step = 1
                 Picture1.Picture = LoadPicture(a)
               ElseIf step = 1 Then
                 step = 0
                 Picture1.Picture = LoadPicture(b)
               End If
        End Select
      End Sub
      اول شيء استدعينا الدالة init .
      ثاني شطر اضهرنا الصورة رقم 3 .

      الحدث keyDown :
      ماهو Static ....هو كـ Dim ولاكن في المتغير من نوع Dim سيم تعيين القيمة صفر عن كل تعريف له...انا لا ادري ذلك اريدة ان يتم على ماهو عليه
      هنا يأتي دور المتغير من نوع Static ....(انا عرفت الفرق بينهم يوم تعلمت ++C )
      ملاحظة/ تقدر تعرفه بعد على أنه متغير عام .

      اذا ضغط المستخدم على الزر الايمن :
      مرة ستضهر الصورة 1 والمرة الاخرى ستضهر الصورة 2
      والبقية بالمثل ....

      معليش شباب الشرح سريــع ومختصر مرة ... اذا فيه شيء غامض علموني ....

      تحياتي
      الملفات المرفقة الملفات المرفقة
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    8. #23
      التسجيل
      29-11-2001
      الدولة
      Beyond Dreams
      المشاركات
      1,001
      المواضيع
      48
      شكر / اعجاب مشاركة
      كمل، انت تعطل مشروعاتي المهمة لما ما تكمل

    9. #24
      التسجيل
      22-08-2002
      المشاركات
      129
      المواضيع
      30
      شكر / اعجاب مشاركة
      السلام عليكم
      هذه الدروس ممتازة كبداية ... شكرا جزيلا لك.
      --------------------------
      هناك ادوات بإسم أدوات الألعاب العربية و اسم الاختصار لها AGT
      و هي تسمح ببرمجة العاب ثنائية الابعاد جيدة جداً ، و تستخدم في الفيجوال بيسيك كمكتبة اضافية.
      و تعتمد في عملها على الدالة بيتا بلت و دايركت ساوند.
      و برمجة الالعاب باستخدامها اكثر من سهل.
      و سأحاول أن اضع بعض الدروس السهلة لها لاحقاً.
      الملفات المرفقة الملفات المرفقة
      • نوع الملف: zip agt.zip‏ (43.6 كيلوبايت, المشاهدات 75)
      لا شيء مستحيل في برمجة الالعاب

    10. #25
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم....
      اولاً : انا اسف لااني تأخرت في وضع بقية الدروس
      ولكنها الاختبارات...ولقد انتهت(لمدة ثلاثة اسابيع فقط :غضب: )....سامحونا

      اخي مبرمج الالعاب :
      شكرا جزيلاً لك .
      انا اعرف هذا Arab Games tools وصاحبها العصيمي... وهي أكثر من رائعة..ولكن أليس من المفروض بي كمبرمج أن أعرف كيف تم تصميم هذه الأداة...
      ننتظر دروسك بفارغ الصبر

      تحياتي
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    11. #26
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم...

      خلاصنا التحريك ما بقى الا القفز....
      القفز أنا صراحة إحترت فيه... الطريقة التي صلحتها معقده...
      الشخصية عند بداية القفز تمتلك سرعة معينة على حسب قوة القفزة وايضا تمتلك تسارع (سالب) وما هو الا تسارع الجاذبية الارضية...
      وبما ان تسارع الجاذبية الارضية يتعبر ثابت اذن فهي تحقق المعادلة
      V = Vo + at حيث:
      V : السرعة Velocity و Vo : السرعة الابتدائية
      a : التسارع acceleration وt : الزمن
      ولحساب الازاحة نستخدم المعادلة :
      X - Xo = Vo t + 1/2 a t^2
      حيث X : الازاحة Displacement و Xo الازاحة الابتدائية
      التسارع = 9.8 (تسارع الجاذبية الارضية)
      عند الارتفاع -----------> التسارع بالسالب
      عند الهبوط ------------> التسارع موجب




























































      امزح
      بس انا اعتقد لو طبقنا هذه القوانين لنتج حركة طبيعية . يمكن اليابانيين يسونها عندهم في الثري دي ..اقصد استخدام الفيزياء والرياضيات ...

      المهم ما علينا الطريقة اللي انا استخدمها اضع تايمر بسرعة معينه واضع الارتفاع في الصورة(top) يزود حتى مقدار معين ثم يبدأ بالنقصان ....

      اللي حاول يسوي حركة القفز ولم يستطع يعلمني عشان نحاول فيها مع بعض ...



      وبكذا نكون خلصنا الاساسيات وموضوع الحركة ....اللي عنده سؤال عن هذا الموضوع يتفضل وهذه ارقامنا على الشاشة 111111111 فاكس 1111111111 .... عشان نخلص من هذا الموضوع وننتقل لغيره طبعاً في حلقة قادمة (موضوع جديد)


      تحياااتي
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    12. #27
      التسجيل
      29-11-2001
      الدولة
      Beyond Dreams
      المشاركات
      1,001
      المواضيع
      48
      شكر / اعجاب مشاركة
      أنا عندي سؤال...
      كيف ممكن ناخذ صورة الحركة من صورة فيها كل الصور، يعني مثلا لو عندنا صورة فيها صور البطل يتحرك (مثل في لعبتك ماريو مثلا) بدلا من ان نضع كل صورة لوحدها؟ يعني هل ممكن نحدد حجم معين من صورة؟
      و شكرا على الموضوع مرة اخرى

    13. #28
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم......

      ممكن بإستخدام الدالة BitBlt .... او Direct draw كلها تصلح ...
      الطريقة : نحدد الاحداثيات (الطول والعرض) من الصورة وهي تقوم بقص الجزء المراد استخدامه ...
      سأشرح الدالة BitBlt و Direct Draw ولكن في وقتها ...

      تحيااتي
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    14. #29
      التسجيل
      03-01-2001
      المشاركات
      451
      المواضيع
      190
      شكر / اعجاب مشاركة
      السلام عليكم ورحمة الله وبركاته

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

      والله يوفقك ويعينك

      على العموم انت افدتني بشكل خيالي ....
      الله يعطيك الف عافية ويكثر من امثالك
      ((الله لاإله إلا هو الحي القيوم لاتأخذه سنة ولا نوم له ما في السماوات وما في الأرض من ذا الذي يشفع عنده إلا بإذنه يعلم مابين أيديهم وما خلفهم ولايحيطون بشيء من علمه إلا بما شاء وسع كرسيه السماوات والأرض ولايئوده حفظهما وهو العلي العظيم ))

      قال صلى الله وعليه وسلم : "كلمتان حبيبتان الى الرحمن خفيفتان على اللسان ثقيلتان في الميزان سبحان الله وبحمده سبحان الله العظيم"

      لااله الا الله محمد رسول الله


    15. #30
      التسجيل
      28-10-2002
      الدولة
      (السعودية)
      المشاركات
      1,042
      المواضيع
      71
      شكر / اعجاب مشاركة
      السلام عليكم...
      احلى صدفة .... وياك انشاءالله...ومن امثالك

      انت جبته من هنا صح ؟
      التعديل الأخير تم بواسطة PRG of RPG ; 05-12-2002 الساعة 07:42 AM
      كود:
      Arabian Xtreme Designs : http://axdteam.com

    صفحة 2 من 3 الأولىالأولى 123 الأخيرةالأخيرة

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

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