أنا سمعت انه يمكن استخدام
VECTOR
لاطلاق الطلقات من طيارة داخل اللعبة
لكنني لست اعرف كيف يتم ذلك
أرجو المساعد بكتابة كود بسيط سهل الفهم و جاهز للتتطبيق
أنا سمعت انه يمكن استخدام
VECTOR
لاطلاق الطلقات من طيارة داخل اللعبة
لكنني لست اعرف كيف يتم ذلك
أرجو المساعد بكتابة كود بسيط سهل الفهم و جاهز للتتطبيق
بسم الله الرحمن الرحيم
السلام عليكم
أعتقد انها مش مستهلة إستخدام vector ممكن يكون متغر static يعبر عن عدد الطلقات وعندك ف الgame loop تستدعى دالة اللى بتlisten على اى input عن طريق getKeyStates أول مثلا ما يتك Enter(FIRE_PRESSED)
قلل عدد الطلقات و حرك صورة ع شكل طلقة من ال src الى ال dest
على العموم انا هنقل الموضوع لقسم الالعاب يفدونا اكتر :)
أخي هل تقصد Vector بالمعني الرياضي ؟ ام بالمعني البرمجي ؟
بالمعني الرياضي ، بلي ، و هناك معادلات الرياضة (( الازاحة )) راجع س ، ج في برمجة الالعاب في الفهرس .
المعني البرمجي بمعني انك تخزن الطلقات كلها في vector و تقوم بمسح ما تريد ؟؟ بكل تاكيد ينفع ..
BEng , Electronics and communications.
Embedded systems engineer.
Graphics Programmer
عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح
اخوي نصيحتي لا تستخدم الـ vectors للطلقات ، خصوصا للطلقات لأنها متغيرة و تحتاج إلى إدارة فترة عمل البرنامج Run-Time لأن إذا استخدمت Vector راح تخسر شوي من الذاكرة، خزن الطلقات في مصفوفة ديناميكية ، عشان توافق احتياجك مع زوال الطلقات او إعادة التذخير :)
هذا إذا كنت تشتغل في C او ++C
هذا مثال بسيط إن شاء الله تفهمه ، لكن لاحظ انا ما سويت له compile ولا شي ، بس عشان للفهم :)
//Take in consideration that we made class called Bullet
//to make bullets object
Bullets* playerBullets[10];
for (int i = 0; i < 10; ++i)
{
//Allocation memory for every bullet
playerBullets = new Bullet;
}
if (player.fired)
{
for (int i = 1; i < 1; ++i)
{
delete playerBullets;
}
}و لا تنسى انك تحرر الذاكرة مثل ما انا سويت بالمثال :)
تم تعديل هذه المشاركة بواسطة Ferrum في 19 أبريل 2007 في 02:49
IDE : Microsoft Visual Studio 2005 Pro
احب ان اضيف Trick ، و هي زيادة عدد الطلقات علي حسب الضغط علي زر الماوس ،، كلما تضغط علي زر الماوس تقوم بعمل عداد يكون هذا العداد هو عدد الطلقات في كود الاخ Ferrum
Bullets* playerBullets[g_BulletsC];
for (int i = 0; i < g_BulletsC; ++i)
{
//Allocation memory for every bullet
playerBullets = new Bullet;
}BEng , Electronics and communications.
Embedded systems engineer.
Graphics Programmer
عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح
هذا الموضوع مغلق.