Thursday, February 3, 2011

الطريقة الأروع للتدرب على المداومة

<div style="direction:rtl;text-align:right">الطريقة الأروع للتدرب على المداومة</div>: "
الاستمراردعوني أخبركم عن مشكلة الشباب في عصر ما بعد الحداثة.
أنهم لا يداومون على إغلاق لمبة المطبخ بعد الانتهاء منه! (من المتوقع أني سأقول شيء مشابه، لأن المدونة لا تناقش مشكلة الشباب في عصر ما بعد الحداثة، كما أني لا أعلم جيداً ما حكاية عصر ما بعد الحداثة).
إغلاق لمبة المطبخ مهم، والأهم من ذلك المداومة على إغلاق لمبته. فإن قررت يوماً إغلاق لمبة المطبخ محافظةً على الكهرباء، أقترح أن تداوم على ذلك، فلا تفعل شيء وتتركه اليوم التالي (أمي كانت تقول لنا شيء مشابه ولكن بنبرة غاضبة).
عن أبي سلمة عن عائشة رضي الله عنها أنها قالت: سئل النبي صلى الله عليه وسلم : أي الأعمال أحب إلى الله؟ قال: “أدومها وإن قل“. وقال: “اكلفوا من الأعمال ما تطيقون“. صحيح البخاري
قرار فعل شيء مهم، وقرار المداومة عليه والالتزام به أهم، خصوصاً إن كان عمل خير.

الطريقة الأروع للتدرب على المداومة

المداومة صعبة، ولكننا لسنا فاشلين فيها وهناك العديد من الأفعال التي استمررنا فيها طوال حياتنا، وطوال هذا الشهر أو طوال هذا الأسبوع، ومنها مثلاً:
  • تنظيف الأسنان منذ الطفولة!
  • الذهاب للمدرسة طوال 12 سنة
  • فروض الصلوات الخمس
  • حضور كل محاضرات الأسبوع
  • زيارة الأهل كل نهاية أسبوع
  • الاستمرار في عمل واحد لسنوات
  • إغلاق لمبة المطبخ بعد الانتهاء منه!
والقائمة تطول، ولو فكرت ستجد العديد من الأمثلة “الأوضح” من هذه، التي تدل على أنك وأني كائنين لدينا مقدرة تحطيمية على المداومة.
السبب الجيد دافع للاستمرار في الأيام الصعبة، وليكن سبب المداومة على أي عمل هو أن “أحب الأعمال إلى الله أدومها…”.

الطريقة الأروع للتدرب على المداومة: فعل شيء رائع كل يوم لمدة (سنة أو شهر أو أسبوع) في الإنترنت.

إن استطعت الاستمرار على فعل شيء في الإنترنت هذا يعني أنه:
  • لديك قوة تدميرية على الاستمرار، لأنه من السهل التوقف في عالم مشابه،
  • أو أن هناك شيء تهتم بفعله على الإنترنت (يعني، لديك سبب يدفعك للاستمرار).
وكلا الأمرين يعني أنك مداوم جيد، لأنك استمررت حين صعُب الاستمرار، واستمررت في فعل شيء تحبه.
طريقة التدرب: جرب فعل شيء لمدة أسبوع أو شهر أو سنة على الإنترنت، شيء تتخيل أنك تستطيع فعله.

أشخاص جربوا أو يجربون المداومة على فعل أشياء رائعة على الإنترنت

يفعل الكثيرون أشياء مشابهة الآن، لأن ذلك تحدي ويتطلب جهد وإلتزام، وممتع ومثير للاهتمام في نفس الوقت.
  • مدونة (365 شيء تستطيع فعله كل يوم في 2010)
365 things you can do مدونة بريطانية قامت بنشر مقال كل يوم خلال سنة 2010، عن أمور يستطيع الواحد فعلها كل يوم في السنة، وفعلاً نجحت في نشر مقالة كل يوم. رائع!
  • صورة وعمل لكل يوم مع المدونة الإماراتية الخارقة فاطمة
تقوم المدونة فاطمة بنشر صورة وعمل لكل يوم من أيام هذه السنة، والأعمال جميلة، ولا أعتقد أنها فوتت أي يوم.
وأتوقع أنها ستتمكن من المداومة على ذلك، أتمنى لها أكبر كمية من التوفيق.
  • فنانة في ديفين آرت، قررت أن ترسم كل يوم رسمة طوال سنة 2011
قامت Alice X. Zhang أحد المشتركين في موقع ديفين آرت بخوض تحدي لمحاولة رسم رسمة كل يوم من هذه السنة، ورسوماتها جيدة باعتبار أنها رُسمت في يوم واحد فقط. بالتوفيق لها، ولا أتحمل مسؤولية محتوى ما تعرضه في الأيام القادمة!
اختار شيء لتستمر فيه، أو استمر لو بدأت في عمل دوري، والله في عون الجميع.
المداومة من تصرفات الكبار.
ومن تصرفات الرجل الحكيم والمرأة الحكيمة في عصر ما بعد الحداثة وفي أي عصر. :)
الصورة لـ j / f / photos

"

Thursday, December 23, 2010

XNA: Lesson14 - Models and Meshed

السلام عليكم

نستكمل رحلة دراسة الالعاب الثلاثية الابعاد و مع الدرس الرابع عشر القراءة و التحميل علي الرابط التالي:

Wednesday, December 15, 2010

XNA - Lesson 14: Drawing the 3D Axis in XNA

بسم الله

في هذا الدرس سوف نقوم برسم اول مشهد ثلاثي الابعاد لنا ...

تحميل و قراءة الدرس علي الرابط التالي:

Sunday, December 5, 2010

XNA: Lesson13 - 31- ‪XNA Lights, Camera and Effects

بسم الله 
الدرس الثالث عشر من سلسلة دروس برمجة الالعاب بواسطة اطار العمل XNA
للقراءة و التحميل علي الرابط التالي:

Monday, November 29, 2010

XNA Lesson 12 - XNA Vectors, Metrices and 3D Transformations

السلام عليكم و رحمة الله و بركاته
مع الدرس الثاني عشر من سلسلة دروس برمجة اﻻلعاب الثلاثية اﻻبعاد بواسطة اطار العمل 
XNA
رابط قراءة و تحميل الدرس


Saturday, November 27, 2010

XNA: Lesson11 - XNA Vertices and Primitives

السلام عليكم 
مع الدرس الحادي عشر من سلسلة دروس برمجة الالعاب بواسطة اطار العمل XNA: علي الرابط التالي:

بالتوفيق ...

Thursday, November 25, 2010

XNA: Lesson10 - 3D Coordinate Systems and Projections – النظام ثلاثي الابعاد و الاسقاطات



بسم الله و الصلاة و السلام علي رسول الله
اللهم لا سهل الا ما جعلته سهلا و انت تجعل الحزن اذا شئت سهلا


3D Coordinate Systems and Projectionsالنظام ثلاثي الابعاد و الاسقاطات
عرفنا في الدورة السابقة نظام الاحداثي ثنائي الابعاد و عرفنا انه يتكون من الاحداثي
X , Y
 اما في النظام ثلاثي الابعاد فيتكون من ثلاثة احداثيات:
X المحور الافقي.
Y المحور الرأسي
Z العمق

و يمكن تشبيه النظام الثلاثي الابعاد بالصورة التالية:


كما نري اتجاه الاحداث باليد هنا ..   
حيث الابهام يمثل العمق او محور ال  
 Z.
لحسن الحظ … تقوم 
XNA
بمعظم العمل الصعب في رسم الكائن الثلاثي الابعاد علي الشاشة و العمل الصعب يتمثل في الرياضيات الثقيلة لرسم الكائن … و لكن  
يجب علينا مع ذلك ان نفهم جيدا نظام الاسقاطات
 Projections
و هو المسئول عن رسم الكائن ثلاثي الابعاد علي الشاشة باحداثياته الثلاثة …
تدعم ال 
XNA
 نوعين من انظمة الاسقاطات:
Perspective Projection: او نظام منظور الاسقاط:
و هذا المنظور يقوم بحساب عمق الرؤية حسب قرب او بعد الكائن عن الشاشة يعني اذا كان الكائن بعيد عن الشاشة فيرسم صغير و اذا كان قريب من الشاشة يرسم كبير … كالاتي:

طبعا هنا ال 
Camera Position 
هي الكاميرا التي بداخل الشاشة … ثم الشاشة ثم بالخارج نحن ننظر الي الشاشة … فكلما بعد الكائن عن نظرنا كلما صغر حجمه …

نظام الاسقاطات الثاني هو ال
 Orthogonal Projection او نظام الاسقاط المتعامد:
و في هذا النظام يتم اهمال البعد Z كالاتي:



و في هذا المنظور كما ترون قد تم اهمال البعد Z و بالتالي بعد او قرب الكائن لا يؤثر في حجمه …
و هذا النظام يستخدم في رسم الكائنات فوق فوقها في النظام الثنائي الابعاد او في الالعاب الثلاثية ابعاد البسيطة حيث يستخدم مثلا في رسم الكائنات البسيطة الثلاثية الابعاد مثل الطاقة المتبقية للاعب التي ترسم فوق راس اللاعب و تتحرك معه في اي اتجاه …



ما قمنا بدراسته:
قمنا بالتعرف علي نظام الاسقاطات في النظام الثلاثي الابعاد و عرفنا انواعه و اشكاله و كيفية رسم الكائنات بكل مقياس …

Wednesday, November 24, 2010

XNA: Lesson9 - Basics of 3D Game Development


بسم الله و الصلاة و السلام علي رسول الله
صلي الله عليه و سلم
اللهم لا سهل الا ما جعلته سهلا
و انت تجعله الحزن اذا شئت سهلا




دورة أساسيات برمجة الالعاب ثلاثية الابعاد بواسطة اطار العمل
Microsoft XNA 3.1



خطة الدورة:
3D Coordinate Systems and Projections – ما هو النظام ثلاثي الابعاد و ما هي الاسقاطات.
Vertices and Primitives: مقاييس و محددات و انواع النظام الثلاثي الابعاد.
Vectors, Matrices and 3D Transformatio – المقايس ثلاثي الابعاد و التفاف المصفوفات و نقلها.
Lights, Camera and Effects – الاضاءة و الكاميرات و التاثيرات.
أول تطبيق لرسم شكل ثلاثي الابعاد.
Models and Meshes: النماذج و الشبكات.

فلنستعن بالله و لنبدأ علي بركة الله ...

Saturday, November 13, 2010

Thursday, October 7, 2010

XNA: Lesson8: Game Audio - اصوات اللعبة

Lesson 8: Game Audio
الدرس الثامن: استخدام الاصوات في اللعبة



بسم الله و الصلاة و السلام علي رسول الله ... صلي الله عليه و سلم...

اليوم ان شاء الله نتحدث عن كيفية اضافة الاصوات و المؤثرات الصوتية علي اللعبة ...

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

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

قبل التعرف علي البرنامج نحمل ملف الصوت علي الرابط التالي:

ثم ننشأ مجلد فارغ في اي مكان علي الجهاز و نضع فيه هذا الملف ...

و نبدا الان بالتعرف علي هذا البرنامج ...

-          لبدء برنامج XACT:
-          Start è Programs è Mircosoft XNA Game Studio 3.0 è Tools è Cross-Platform Audio Creation Tool (XACT).
-          سيفتح لك برنامج XACT بالصورة التالية:


-          نبدا مشروع جديد من خلال القائمة:
-          File è New Project
-          ستفتح لك نافذة لتحديد مكان حفظ المشروع ... يجب ان تكون نفس المجلد الذي تم تكوينه سابقا الذي به ملف الصوت.  (هذه النقطة هامة جدا جدا).
-          بعد تكوين المشروع ستظهر قائمة علي الشمال بالشكل التالي:


-          يجب الان ان نكون Wave Bank و Sound Bank و ذلك لادخال ملفات الصوت الخاصة بنا عليهم ...
-          كما ترون بالصورة نضغط كليك يمين علي Wave Banks ثم نختار New Wave Bank و نترك نفس الاسم الافتراضي Wabe Bank  ...
-          ظهرت لنا الان شاشة جديدة داخل البرنامج عنوانها Wave Bank بالشكل التالي:


في الشاشة التي ظهرت Wave Bank نضغط كليك يمين ثم نختار Insert Wave File لكي ندخل ملفات الصوت الخاصة بنا علي البرنامج...

ثم نختر ملف الصوت من ملف المشروع ...

نلاحظ ان الملف ظهر داخل مربع ال Wave Bank ...

ثم نضغط كليك يمين علي ال Sound Bank و نختر New Sound Bank و نترك نفس الاسم الافتراضي Sound Bank ...

ستظهر لنا شاشة مثل ال Wave Bank  اسمها Sound Bank ... و لكن ...
سنجد شاشة ال Sound Bank  مقسمة الي 4 اقسام ... يوجد قسمين بالشمال اسمهم Sound Name و Cue Name...

الان ننظم شكل الشاشات المعروضة كالتالي ... من قائمة:
Window è Tile Horizontally

الان الشاشات معروضة امامنا و مترتبة ...

كل ما سنعمله بمنتهي البساطة هو اختيار ملف الصوت من القائمة Wave Bank و نعمل سحب و القاء Drag and Drop  داخل شاشة ال Sound Bank  في قسم ال Cue Name ... و سنجد ان البرنامج كون لنا تلقائيا في قسم ال Sound Name   ملف بنفس الاسم ... بحيث يصبح شكل الشاشات كالتالي:



ثم نحفظ المشروع و نغلق البرنامج ...



استخدام الصوت داخل اللعبة:
الان نفتح المشروع الاخير الخاص بالدرس السابع ... و في ال Solution Explorer نضغط كليك يمين علي فولدر ال Content و نضيف فولدر جديد نسميه Audio  ...

ثم نضغط كليك يمين علي فولدر ال Audio  و نختر Addè Existing Item

ثم نفتح الفولدر الخاص بمشروع XACT الذي قمنا بعمله ... سنلاحظ ان هناك ملف تم انشاءه ينتهي ب .XAP
نختاره و نختر ملف الصوت الذي حملناه ثم نضغط Add ...

الان قد اضفنا ملف الصوت و اضفنا ملف المشروع الذي ينتهي ب .XAP

و الان نفتح ملف ال Game1.CS

نعرف المتغيرات التالية بعد هذا السطر مباشرة

SpriteBatch spriteBatch;

و هي متغيرات سوف نستخدمها لبرمجة الصوت ...
AudioEngine audioEngine;
WaveBank waveBank;
SoundBank soundBank;

نشرح الكود:
AudioEngine audioEngine;
ال AudiiEngine  هي مكتبة توصلك بخدمات الصوت علي كارت الصوت في جهازك ...

WaveBank waveBank;
هو مخزن يحمل soundBanks

SoundBank soundBank;
هو مخزن يحمل عدة ملفات صوتية ...


الان نحمل مخازن الصوت ... نتجه الي الدالة LoadContent و نكتب الكود التالي في نهاية الدالة :

audioEngine = new AudioEngine(@"Content\Audio\mysounds.xgs");
waveBank = new WaveBank(audioEngine, @"Content\Audio\Wave Bank.xwb");
soundBank = new SoundBank(audioEngine, @"Content\Audio\Sound Bank.xsb");

طبعا ناخذ بالنا من شئ مهم جدا ... نحن اضفنا ملف ينتهي ب .XAP و هنا نضيف ملفات تاخذ مسارات مختلفة و الحقيقة ان هذه الملفات كلها يتضمنها الملف .XAP و في وقت ال Compile يتم تكوينها بواسطة ال XNA حتي في وقت التشغيل تجدها في الفولدرات المشار اليها ... و لكي تشاهد هذه الملفات اذهب الي المسار التالي ...
Project Folder \ bin\x86\Debug\Content\Audio


الان نحن حملنا الملف الاساسي لمشروع XNA  ... ثم حملنا ال Wave Bank الذي قمنا بعمله في المشروع و سميناه بنفس الاسم الافتراضي ... و ايضا حملنا ال Sound Bank الذي حملناه في المشروع و سميناه بنفس الاسم الافتراضي ...


و الان في نفس الدالة LoadContent سنجعل الصوت يبدا مع بداية اللعبة كالاتي:
soundBank.PlayCue("skullcollision");

ثم نشغل اللعبة و نلاحظ ظهور الصوت ...


تطبيق اليوم ...
اجعل الصوت يعمل عند اصطدام الكائن بحروف الشاشة ....