الشبكة العربية لمطوري الألعاب

موهوب  ياسر أبوبكر مشاركة 41

في 07 يونيو 2008 10:12 ص، عقد KfuPower حاجبيه بتفكير وقال:

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

    وكذلك كنت أود أن نضيف مسطرة حول إطار الرسم وحدة القياس فيها هي طبقة حجارة واحدة لتسهيل التصميم وكذلك لجعل الفأس يحطم عدد محدد من طبقات الحجارة (3 مثلا) وأقترح أن يتم إضافة أدوات حفر أخرى بالإضافة للفأس وكلٌ منها لديه قوة معينة لتحطيم عدد طبقات من الحجارة (ربما تكون خطوة متقدمة حاليا؟!) ... ولكن كيف يتم إضافة المسطرة؟


* أزرار الأدوات قد تحتاج إلى طريقة لتوضيح أيها فعال في اللحظة الحالية. مثلاً عندما أضغط زر رسم الوحوش، ماذا سيحدث؟ هل سيتحول المؤشر إلى ريشة أرسم بها الوحوش؟ إن كان كذلك فيجب إظهار الزر بطريقة مختلفة عن بقية الأزرار لتوضيح أنه الزر الفعال حالياً.هذا صحيح ... سأقوم بالتعديل فورا


هجاء كلمة Monsters يحتاج إلى تصحيح☺صحيح كانت Monstors☺ ... إنتبهت إليها بعد ما أرسلت الواجهة☺...
إذا مارأيك؟



وفي 07 يونيو 2008 10:25 ص، قال وسام البهنسي متحمساً:

هذا هو عصر السرعة والتخاطر التليباثي (;
D:

خبير مدير وسام البهنسي مشاركة 42

وحدة الرسم قادرة على التأقلم مع الحجم الذي تطلبه منها. اللعبة الأصلية يتم رسمها ضمن نافذة بأبعاد 480×640 بكسل.
يمكنك منع النافذة ككل من إمكانية التحجيم، ولكنني أفضل أن تدع الأمور أكثر مرونة. باعتبار أن وحدة الرسم تستطيع التكيف، فإنها لن تكون مشكلتك في موضوع التشوه هذا.
 
يمكنك إنشاء مسطرة أيضاً قابلة للتكيف، ببساطة التقط لقطة من اللعبة وحاول رسم الشبكة عليها، ومن ثم استنتاج المسطرة، والتي يجب أن تكون بعرض 640 بكسل (متضمنة الهوامش).
 
وحدة الرسم أيضاً ستساعدك في معرفة الخلية التي تقع تحت أي بكسل تطلبه منها، وبذلك ستساعدك في عملية كتابة الإحداثيات الحالية للمستخدم، بالإضافة إلى كشف التصادم وتحديد الاختيار.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

موهوب  ياسر أبوبكر مشاركة 43

وفي 07 يونيو 2008 10:40 ص، ظهر شبح ابتسامة على وجه وسام البهنسي وهو يقول:

وحدة الرسم قادرة على التأقلم مع الحجم الذي تطلبه منها

أما في 07 يونيو 2008 10:40 ص، فقد تنهد وسام البهنسي بارتياح وهو يرد:

وحدة الرسم تستطيع التكيف

في 07 يونيو 2008 10:40 ص، غمغم وسام البهنسي باستغراب قائلاً:

وحدة الرسم أيضاً ستساعدك في معرفة الخلية التي تقع تحت أي بكسل تطلبه منها

لقد شوقتني لوحدة الرسم هذه ...
أنا في إنتظارها على أحر من جمر ... وفي نفس الوقت أعدل على الواجهة

خبير مدير وسام البهنسي مشاركة 44

حسناً ها نحن عند كلمتنا... اتبع الخطوات التالية لاستخدام الوحدة:
 
* تأكد من تنصيب Visual Studio .NET 2008 متضمناً كل من #C و ++C. بدون ++C لن تستطيع استخدام الوحدة، فهي تتطلب مكتبات تتوفر فقط عند تنصيب ++C!
 
* حمل الملف: http://www.agdn-online.com/source/kvalley_edmodule.zip
 
* فك ضغط الملفات في الملف، وضعها في دليل مشروع الـ #C في مجلد مناسب (مثلاً سمه Editor). هذه الملفات تشمل ملف الوحدة الأساسي بالإضافة إلى جميع الملفات التي تعتمد عليها (رسومات وأصوات).
 
* افتح مشروع الـ #C بـ Visual Studio.NET 2008، وغير خصائص المشروع ليتم تخريج الملف التنفيذي النهائي إلى نفس المجلد الذي وضعت به ملفات وحدة الرسم، كما في الصورة:




* ابني المشروع، وتحقق من أن الملف التنفيذي الناتج يتم وضعه في المجلد الصحيح.
 
* الآن توجه إلى المشروع مرة أخرى، واضغط بالزر اليمين على مجلد References واختر أمر Add Reference...
 
* حدد البطاقة Browse، واختر الملف GameEd.dll من المجلد الجديد، واضغط OK.
 
* الآن يمكنك استخدام كافة خدمات الوحدة بشكل مباشر. للتعرف على الـ classes التي قد حصلت عليها. ستجد أن المكتبة قد تم إضافتها تحت مجلد الـ References إياه في المشروع. اضغط عليه ضغطة مزدوجة ليتم فتحه في الـ Object Browser.
 
* اطلع على كل الـ classes في الوحدة، واقرأ الشروح الموجودة على كل إجراء وخاصية لتعرف كيف يتم استعمال الوحدة في برنامجك.
 
* كبداية، الوحدة تقدم تحكم Control تضعها في الـ form الذي تريد لتقوم هي برسم اللعبة كما يجب. النقطة أن هذا التحكم لا يمكن وضعه في الـ form بشكل تقليدي، وذلك بسبب عيب بمصمم الـ forms في VS.NET 2008 حيث أنه لا يعرف كيف يتعامل مع الوحدات المبرمجة بخليط من الـ managed والـ native من لغة ++C.
 
 
اقتراحي الشخصي هو أن تقوم بالآتي:
 
* ضع تحكم من نوع Panel في الـ form، وسنجعل هذا الـ panel يعمل كحاوي للتحكم الخاص بنا.
* توجه إلى كود الـ constructor للـ form، واجعله يشبه الآتي:
 


using GameEd;
 
public partial class Form1 : Form
{
    GameEd.GameEdControl gameEd;
 
    public Form1()
    {
        InitializeComponent();

        gameEd = newGameEd.GameEdControl();
        panel1.Controls.Add(gameEd);
        gameEd.Dock = DockStyle.Fill;
    }
}
 
بهذه الطريقة نستطيع استخدام المتغير gameEd للتعامل مع الوحدة، وهي ستحتل كامل المساحة في الـ panel الذي أنشأناه لها...
 
أرجو أن تكون الخطوات واضحة، وإن كان هناك أي تساؤل فلا تتوانوا عن طرحه...
 
طلب مباشر من KfuPower، أرجو أن تعد المشروع ليستخدم الوحدة بشكل صحيح، ومن ثم طرح الكود فوراً كي يستطيع بقية الزملاء العمل معك على التوازي...

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

مبتدئ  محمد علاء الدين عبد العزيز مشاركة 45

جارى تضمين الـ Splash Screen فى نسخة الـ C# مع التعديل الجديد "ّإضافة حرف الـ e و شكرا للتنبيه"
 
و الله ولي التوفيق

موهوب  ياسر أبوبكر مشاركة 46

بتاريخ 07 يونيو 2008 11:24 م، قطب وسام البهنسي حاجبيه بشدة وهو يقول:

طلب مباشر من KfuPower، أرجو أن تعد المشروع ليستخدم الوحدة بشكل صحيح، ومن ثم طرح الكود فوراً كي يستطيع بقية الزملاء العمل معك على التوازي...

عُلِم وسينفذ ...

موهوب  ياسر أبوبكر مشاركة 47

وفي 07 يونيو 2008 11:24 م، أعرب وسام البهنسي عن رأيه بالموقف كالآتي:

حسناً ها نحن عند كلمتنا... اتبع الخطوات التالية لاستخدام الوحدة

قمت بربط وحدة الرسم مع المشروع كما أشرت ... ولأن حجم المشروع صار أكبر من 1ميجا قمت برفعه على موقع اخر وهذا رابط التحميل:
http://www.zshare.net/download/132943236895fea4/]  kingsvally level maker.rar - 2.85MB]

ملاحظة : لم أقم بوضع أي وظيفة للأزرار أو أي شئ اخر ... كما أن المشاكل السابقة مازلت قائمة ( ما عدى تهجئة Monsters☺ )ولكن قررت أن أرفع البرنامج على حاله تفاديا لأي تأخير

ولدي كم سؤال :

كيف يمكن تغير شكل المؤشر بأشكل "من صنع المستخدم" ؟ بعد حدوث حدث ما (الضغط على زر مثلا)

خبير مدير وسام البهنسي مشاركة 48

شكراً لفريق الـ ++C، فقد تم إضافة ميزة رسم الشبكة إلى وحدة الرسم. قم بتحميل الوحدة المحدثة من نفس الرابط السابق:
 
http://www.agdn-online.com/source/kvalley_edmodule.zip
 
واستبدل الملفات القديمة بمقابلاتها الجديدة. ستجد لديك خاصية جديدة ضمن الـ class الأساسي GameEdControl، وتدعى ShowGrid. فقط ضع قيمتها إلى true وسترى الشبكة ظاهرة على الشاشة. لاحظ أنك تستطيع فصلها وإعادة تشغيلها متى ما يحلو لك..
 
أرجو أن تطلعنا على آخر التطورات في جانبك كي نعلم آخر الإنجازات...

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

موهوب  ياسر أبوبكر مشاركة 49

شكرا جزيلا لفريق البرمجة على هذه الإضافة ...

أرجو أن تعذروني على هذا الإنقطاع المفاجئ ولكن كان لدي بعض الظروف  ....

لمهم...
قمت بتحميل الوحدة وسأستبدل السابقة


وفي 24 يونيو 2008 06:52 م، أعرب وسام البهنسي عن رأيه بالموقف كالآتي:

أرجو أن تطلعنا على آخر التطورات في جانبك كي نعلم آخر الإنجازات...

قريبا إن شاء الله

موهوب  ياسر أبوبكر مشاركة 50

السلام عليكم 😄

أعتذر كثيرا عن هذا الإنقطاع الطويل ... 🙁

هل مازال المشروع مستمرا ؟

مبروك على إضافة الإبتسامات(تعابير) 😄 😄 😄 ... أعتقد أن الكثير حدث في غيابي 😒