top of page
إنشاء شريط صحة للاعب
1-علينا أن نقوم بإضافة شريط صحة الاعب ويمكننا الحصول عليه من هذا الرابط
https://alessio-scalabrino.itch.io/bars-health-and-energy-hud?download
سنقوم بفتح الصورة heart والتعديل عليها حتى نجعلها فارغة ونجعل نوع الفلترB&W من الداخل ويمكننا فعل ذلك عن طريق الضغط على edit image أو ctrl+E ونقوم بتسميته heartempty.
سنقوم بإستيراد صورة heart من الملف الذي قمنا بتحميله ومع صورة التعديل heartempty ونقوم بتخزينهم في ملف allimages




1-نقوم بتفعيل نمط paper 2d texture settings على تلك الصور.
2- ثم نقوم بإنشاء widget blueprint في ملف widget ونقوم بتسميته heartwidget.
3-عند فتح heartwidget سنجد أعلى الشاشة على اليسار هناك خانة اسمها search pallete ومنها يمكننا إستدعاء عناصر جاهزة تم إنشائها من قبل الأنريل
ولأننا نريد شريط صحة للاعب فعلينا بالكتابة في مربع البحث canvas panel: هي لوحة يمكننا وضع ما نريد فيها لتظهر في الشاشة .
4-ثم نقوم بإنشاء صورتين عن طريق الكتابة في مربع البحث image.
ستحمل الصورة الأولى القلب الكامل وسنسميه fullheart والصورة الثانية القلب الفارغ وسنسميه emptyheart.

1-نقوم بإختيار الصورعن طريق الإنتقال إلى قائمة التفاصيل ثم خانة المظهر وفي image نقوم بإختيار الصور.

2- نقوم بتعديل المساحة(size X & size Y) لكلا الصورتين لنجعلهما بنفس المساحة وبنفس المكان, ونجعلهما بالأعلى على اليسار.

3- نقوم بالتعديل على قيمة ZOrder: قيمة لترتيب الصور كلما زادت قيمته في الصورة المحددة كلما ظهرت بالمقدمة, وكلما نقصت قيمته في الصورة المحددة كلما ظهرت بخلف الصور. سنقوم بجعل قيمة ZOrder لصورة القلب الفارغ (-1) ما سيجعلها خلف صورة القلب الممتلئ ثم
compile & save.
قمنا بتلك الخطوة حتى عندما يظهر هذا widget على الشاشة سيظهر القلب الممتلئ وعند تعرض الاعب لأي ضرر سنقوم بإخفاء صورة القلب الممتلئ ونستبدله بصورة القلب الفارغ.


4- سنقوم بإنشاء widget آخر ونسميه playerHUDhealth.
5- في داخل ملف بلوبرنت الويدجت playerHUDhealth سنقوم بإنشاء canvas panel: هي لوحة يمكننا وضع ما نريد فيها لتظهر في الشاشة .
6- سنقوم بالكتابة في مربع البحث Wrap Box: صندوق يقوم بترتيب جميع widgets الذي في داخله من اليسار إلى اليمين.
سيكون بداخل ملف الويدجت playerHUDhealth الويدجت الذي أنشأناه سابقاً heartwidget, مما يعني بأن القلوب التي أنشأناها ستظهر في داخل Wrap Box وستظهر بالترتيب من اليسار إلى اليمين.
وما علينا فعله الآن هو بتحديد عدد القلوب التي ستظهر للشخصية وعمل البرمجيات الازمة لكي يظهر شريط الصحة (خليط بين playerHUDhealth و heartwidget) على الشاشة.

7- سنقوم الآن بالإنتقال إلى بلوبرنت الشخصية ونقوم بإنشاء متغير جديد من نوع float سيحمل قيمة صحة الشخصية(عدد القلوب) وجعل قيمته 5 ونسميه playerhealth.


8- سنقوم الآن بالإنتقال إلى ملف widget الخاص بشريط الصحة الفارغ (playerHUDhealth) وننتقل إلى صفحة graph لكي نقوم بعمل البرمجيات.

2-البرمجيات الازمة لإظهار شريط طاقة الاعب على الشاشة
سنجد بأن هناك حدثاً يدعى event construct: حدث يقوم بالعمل فقط بعد ظهور الويدجت (orchealthbar) على الشاشة اثناء اللعب.
1- علينا الآن بإستدعاء مرجع للاعب(bp_char) عن طريق انشاء نقطةget player character
2-من النقطة get player character نقوم بإستخراج النقطة cast to bp_char
ونقوم بتحويل تلك النقطة إلى مرجع يمكننا إستدعائه في أي وقت(promote as variable)
3- نقوم بإستدعاء مرجع الشخصية, ومن المرجع نستخرج قيمة الطاقة للشخصية الذي قد أنشأناه سابقاً في بلوبرنت اللاعب وهو playerhealth .
4- من نقطة playerhealth نستخرج نقطة تدعى truncate: تقوم بتحويل الأرقام العشرية (float) إلى أرقام صحيحة(integer).
شرح: سبب إستعمالنا لنقطة truncate هو لأننا سننشأ نقطة for loop:هي جملة تكرر نفسها وهي لا تستقبل سوى قيمة من نوع integer.
5-نقوم بإنشاء نقطة for loop.
في النقطة forloop سنجد بأن هناك جزئيتين وهما:
first index: هو الرقم الذي سنبدأ به جملة التكرار والذي سيكون قيمته 1 وليس صفر لأننا سنبدأ اللعبة بقلب واحد.
last index: هو الرقم الذي ستتنتهي عنده جملة التكرار والذي سيكون قيمته هو النقطة truncate التي تحمل قيمة طاقة الاعب من نوع integer مما يعني أننها سسنهي جملة التكرار بعد إختفاء الخمس قلوب(5).

علينا الآن إظهار القلوب(heartwidget) داخل wrap box الذي أنشأناه سابقاً بداخل playerHUDhealth
6- ولكن أولاً دعونا نقوم بإعادة تسمية wrap box إلى hearts box.
7- نقوم تحويلها إلى متغير يمكن إستدعائها عن طريق الضغط على is Vriable(علامة صح) بعدها compile, وسنجدها الآن في صفحة graph.



8- من نقطة forloop جزئية loop body نقوم بإستخراج نقطة create widget: من إسمها تقوم بإنشاء widget ويمكننا إختيار widget الذي نريد إنشائه من جزئية class ونختار heartwidget.
9- سنقوم بإنشاء متغير جديد يكون لنا مرجع يحمل قيمة كل قلب لحدة ونسميه AllheartsRef.
10- سنقوم بالضغط على نوع المتغير ونكتب في مربع البحث إسم البلوبرنت الخاص بwidget القلوب وهو(heartswidget) ثم ستظهر صفحة أخرى لتحديد نوع المرجع, وسنختار (objectreference)

ولأن لدينا العديد من القلوب فعلينا أن نضع مرجع لخمس متغيرات(5 قلوب) ويمكننا فعل ذلك عن طريق:
11- تحويل المتغير من متغير يحمل قيمة واحدة(single) إلى متغير يحمل قيم متعددة(array) لكي نستطيع أن نضع جميع القلوب في متغير واحد ويكون لنا مرجع يمكننا أن نستدعيه في أي وقت ومن ثم نضغط compile.

12-سنظهر لنا في أسفل شريط المتغير AllheartsRef خانة array ويمكننا الآن الضغط على علامة الزائد(+) خمس مرات وإنشاء خمس عناصر لكل قلب. ثم compile

13- نقوم الآن بسحب المرجع إلى صفحة graph.
14- من النقطة الخاصة بالمرجع Allhearts Ref نقوم بإستخراج النقطة ADD.
سيحمل المرجع(Allhearts Ref) القلوب التي ستظهر بداخله(hearts widget)
15- سنقوم بإستدعاء المتغير مع قيمته المحفوظة الذي أنشأناه(hearts box).
16- من النقطة heartsbox نستخرج النقطة add child to wrap box: تقوم تلك النقطة بإستقبال widget آخر وإضافته إلى wrap box والذي سيكون hearts box.

17- نقوم بالإنتقال إلى بلوبرنت الشخصية ونقوم بإنشاء نقطة create widget.
18- نقوم بتحويل قيمة النقطة create widget إلى متغير جديد(مرجع) ونسميه allheartsRef

19- من النقطة الخاصة بالمرجع allheartsRef نستخرج النقطة add to viewport: تقوم تلك النقطة بإظهار كل مدخلاتها على الشاشة.
20- نقوم بتوصيلهم حدث بدء اللعب(event beginplay) بهذا الشكل.

ثم compile ونبدأ اللعب

bottom of page