PRG of RPG
09-12-2002, 02:13 PM
بسم الله الرحمن الرحيم
السلام عليكم...
الدرس الرابع : اوامر مهمة في برمجة الالعاب ...
فكرت في مواضيع لهذا الموضوع وطلعت ببعض منها ... فاللي يحب ان تكلم عن اي موضوع بالبرمجة يعلمني :
اول موضوع الدوران :
كيف نخلي جسم يدور حول نقطة معينة ؟؟ يعني يشكل دائره او شكل بيضاوي ؟؟؟
- وذلك بواسطة الجا والجتا اي Sin و Cos ....
ما معنا هذا الكلام ؟
جاء دور الرياضيات في هذا العمل ( والحمد لله انا ممتاز في الرياضيات :) )
والحقيقة هذا الموضوع يصعب شرحة ... ولكن سأحاول جاهداً تبسيطه قدر الامكان :)
وتتطلب معرفة بسيط بدائرة الوحدة (التي قانونها SinX^2 + CosX^2 = 1
والان نبدأ في الجا(Sin) وهي ستحدد Picture1.left
Sin0 بكم ؟ طبعاً صفر
و Sin90 بكم ؟ طبعاً واحد
sin180 بكم ؟ طبعاً صفر
و Sin270 بكم ؟ طبعاً -1
ونعرف متى تكون الSin موجبة بالقانون :
كل جميلة ضريفة جتها جوازه
او
كل جبار ظالم جته مصيبة
==> هذه من بعض درر المدرس : عبدالفتاح جزاه الله خيراً - في الصف الثاني ثانوي
عدد كلمات الجمل السابقة خمس ...صح ... احذف الكلمة الاخيرة تصبح اربع
وهذه الاربع كلمات مرتبة على الارباع الاربعة لدائرة الوحدة كما في الشكل التالي :
http://www.arab3.com/upload/images/Dec02/game_maker_Kull.jpg
كل = يعني كل الدوال موجبة Sin , Cos , sec ,Cosec , tan , cotan جا و جتا وقا وقتا وضا و ضتا
جميلة : يعني الجا موجبة (Sin) ومقلوبها قتا (Cosec)
ظريفة : يعني الظا والظتا موجبتين وذلك لأن الجا والجتا سالبتين tan = sin/cos
جتها : يعني الجتا Cos ومقلوبها الSec موجبتين
دعونا في الSin فعند قولنا sin0 = 0 و sin90 = 1 ولكما ازود قيمة الزاوية من صفر الى 90 ستزداد قيمة الناتج SinX من 0 الى 1
وفي الربع الثاني (90-180) فكلما ازود قيمة الزاوية من 90 الى 180 ستقل قيمة الناتج SinX من 1 الى 0
وفي الربع الثالث (180-270) فكلما ازود قيمة الزاوية من 180 الى 270 ستقل قيمة الناتج SinX من 0 الى -1
وفي الربع الاخير(الرابع) (270-360) فكلما ازود قيمة الزاوية من 270 الى 360 ستزداد قيمة الناتج من -1 الى 0
وعند تطبيق هذه المعطيات على Picture1.left سينتج لدينا الشكل التالي :
http://www.arab3.com/upload/images/Dec02/game_maker_Sin.jpg
اي من 0 90 يذهب الجسم من 0 الى 1
من 90 الى 180 يذهب الجسم من 1 الى 0
من 180 الى 270 يذهب الجسم من 0 الى -1
من 270 الى 360 يذهب الجسم من -1 الى 0
الان تعلمنا كيفية حركة الSin
ولكن هنالك مشكلة برنامج الفيجوال بيسك برنامج دقيق فكما جعل النقطة بالTwip جعل الدرجة بالراديان .
ولكي نحول من راديان الى درجة نظرب في 180 / 3.14
حسناً هذا مقدار ثابت اي Const
اذن نعرفه في البيسك على انه ثابت فنقول
Const rad = 3.14 / 180
نبدأ بالجزء الاول من تطبيق المسار الدائري :
التطبيق (4-1) :
نضع تايمر ونضع ال interval = 60 لكي نستطيع مشاهدة التغير
وداخل التايمر
Private Sub Timer1_Timer()
Const rad = 3.14 / 180
Static A As Integer
A = A + 10
If A >= 360 Then A = 0
Picture1.Left = (Form1.ScaleWidth / 2) + Sin(A * rad) * 1500
Cls
Print A
End Sub
عرفنا A لكي يكون الزاويه وقلنا اذا وصل الى 360 يرجع ليكون 0
لماذا (Form1.ScaleWidth / 2) لكي يكون المركز لحركة الدائرة
A * Rad لكي نحول من راديان الى درجة
لماذا * 1500 وذلك لأن ناتج الزاوية رقم يقع بين -1 و 1 فلن نلاحظ التغير
cls لمسح الشاشة
Print A لطباعة الزاوية
سأرفق هذا الملف وسنكمل إن شاءالله الدالة Cos لكي نكون الحركة الدائرية .
تحياتي :)
السلام عليكم...
الدرس الرابع : اوامر مهمة في برمجة الالعاب ...
فكرت في مواضيع لهذا الموضوع وطلعت ببعض منها ... فاللي يحب ان تكلم عن اي موضوع بالبرمجة يعلمني :
اول موضوع الدوران :
كيف نخلي جسم يدور حول نقطة معينة ؟؟ يعني يشكل دائره او شكل بيضاوي ؟؟؟
- وذلك بواسطة الجا والجتا اي Sin و Cos ....
ما معنا هذا الكلام ؟
جاء دور الرياضيات في هذا العمل ( والحمد لله انا ممتاز في الرياضيات :) )
والحقيقة هذا الموضوع يصعب شرحة ... ولكن سأحاول جاهداً تبسيطه قدر الامكان :)
وتتطلب معرفة بسيط بدائرة الوحدة (التي قانونها SinX^2 + CosX^2 = 1
والان نبدأ في الجا(Sin) وهي ستحدد Picture1.left
Sin0 بكم ؟ طبعاً صفر
و Sin90 بكم ؟ طبعاً واحد
sin180 بكم ؟ طبعاً صفر
و Sin270 بكم ؟ طبعاً -1
ونعرف متى تكون الSin موجبة بالقانون :
كل جميلة ضريفة جتها جوازه
او
كل جبار ظالم جته مصيبة
==> هذه من بعض درر المدرس : عبدالفتاح جزاه الله خيراً - في الصف الثاني ثانوي
عدد كلمات الجمل السابقة خمس ...صح ... احذف الكلمة الاخيرة تصبح اربع
وهذه الاربع كلمات مرتبة على الارباع الاربعة لدائرة الوحدة كما في الشكل التالي :
http://www.arab3.com/upload/images/Dec02/game_maker_Kull.jpg
كل = يعني كل الدوال موجبة Sin , Cos , sec ,Cosec , tan , cotan جا و جتا وقا وقتا وضا و ضتا
جميلة : يعني الجا موجبة (Sin) ومقلوبها قتا (Cosec)
ظريفة : يعني الظا والظتا موجبتين وذلك لأن الجا والجتا سالبتين tan = sin/cos
جتها : يعني الجتا Cos ومقلوبها الSec موجبتين
دعونا في الSin فعند قولنا sin0 = 0 و sin90 = 1 ولكما ازود قيمة الزاوية من صفر الى 90 ستزداد قيمة الناتج SinX من 0 الى 1
وفي الربع الثاني (90-180) فكلما ازود قيمة الزاوية من 90 الى 180 ستقل قيمة الناتج SinX من 1 الى 0
وفي الربع الثالث (180-270) فكلما ازود قيمة الزاوية من 180 الى 270 ستقل قيمة الناتج SinX من 0 الى -1
وفي الربع الاخير(الرابع) (270-360) فكلما ازود قيمة الزاوية من 270 الى 360 ستزداد قيمة الناتج من -1 الى 0
وعند تطبيق هذه المعطيات على Picture1.left سينتج لدينا الشكل التالي :
http://www.arab3.com/upload/images/Dec02/game_maker_Sin.jpg
اي من 0 90 يذهب الجسم من 0 الى 1
من 90 الى 180 يذهب الجسم من 1 الى 0
من 180 الى 270 يذهب الجسم من 0 الى -1
من 270 الى 360 يذهب الجسم من -1 الى 0
الان تعلمنا كيفية حركة الSin
ولكن هنالك مشكلة برنامج الفيجوال بيسك برنامج دقيق فكما جعل النقطة بالTwip جعل الدرجة بالراديان .
ولكي نحول من راديان الى درجة نظرب في 180 / 3.14
حسناً هذا مقدار ثابت اي Const
اذن نعرفه في البيسك على انه ثابت فنقول
Const rad = 3.14 / 180
نبدأ بالجزء الاول من تطبيق المسار الدائري :
التطبيق (4-1) :
نضع تايمر ونضع ال interval = 60 لكي نستطيع مشاهدة التغير
وداخل التايمر
Private Sub Timer1_Timer()
Const rad = 3.14 / 180
Static A As Integer
A = A + 10
If A >= 360 Then A = 0
Picture1.Left = (Form1.ScaleWidth / 2) + Sin(A * rad) * 1500
Cls
Print A
End Sub
عرفنا A لكي يكون الزاويه وقلنا اذا وصل الى 360 يرجع ليكون 0
لماذا (Form1.ScaleWidth / 2) لكي يكون المركز لحركة الدائرة
A * Rad لكي نحول من راديان الى درجة
لماذا * 1500 وذلك لأن ناتج الزاوية رقم يقع بين -1 و 1 فلن نلاحظ التغير
cls لمسح الشاشة
Print A لطباعة الزاوية
سأرفق هذا الملف وسنكمل إن شاءالله الدالة Cos لكي نكون الحركة الدائرية .
تحياتي :)