السلام عليكم :
الان اطور محرك 2D .. يعتمد على OPENGL والحمدلله الامور ماشية تمام .
لكن المشكلة :
سويت كلاس خاص بالاكساء ..
والوضع سليم
لكن هناك مشيكلة : )
احاول تصميم دالتين :
الاولى تحمل الصورة ولها بارمترين الاول رح يكون اسم الصورة الثاني رح يكون متغير اما نصي او رقمي حى اخزن فيه هذه الصورة ..
كذا
LOADTEXTURE(char*image,char*name_of_texture);
الدالة الثانية :
تعين الاكساء اللي اختاره على المجسم الذي اختاره :
مثلا
SetTexture(char *name_of_texture,char*name_of_object);
انا اللي استطعت اني انجح فيه هو اني استطيع ان اختار اسم المجسم الذي اريد تطبيق الاكساء عليه..
لكن لم استطع اختيار الصورة اللي اريد ..
يعني لو حملت عشر صور ..
مثلا :
loadtexture("image1.bmp,"texture1");
حيث texture1 هو الاسم الذي اخترته لهذا الاكساء ..
loadtexture("image2.bmp,"texture2");
loadtexture("image3.bmp,"texture3");
loadtexture("image4.bmp,"texture4");لان انا اريد ان انشئ شكل مربع مثلا وهذا سهل
drawSquare("sq1");حيث sq1 هو الاسم الذي اخترته لهذا الشكل..
الان اريد ان اطب الاكساء
SetTexture("texture3,"sq1);يعني اخترت نوع الاكساء والمجسم الذي اريد اكسائه ..
المشكلة :
استطيع ان اختار المجسم الذي اريد اكساء لو كان عندي 1000 مجسم ..
لكن لا استطيع ان اختار الاكساء الذي اريده حتى لو كتبت اسمه .. انما الذي يحدث انه سيختار اخر اكساء تم تحميله ...
السؤال :
اريد نصيحة او توجيه .. او فكرة عامة لاتمكن من عمل كائن الاكساء بالشكل السابق ..
اعرف انه من الصعب الحصول على الجواب السليم .. لكن لو على الاقل فكرة .. او تلميحة اتمكن من خلالها اجتياز هذه العقبة ..
يعني المسألة ليست اتقان ومعرفة لمكتبة opengl انما معرفة بـOOP وذكاء ...
وان شاء الله .. القى احد يعرف الجواب ..
لان المسألة غامضة شوي .. لكن قلت ممكن اجد جوابا ..
"
للمعلومية الفكرة السابقة اخذتها من احد المحركات .. لاحظوا ..
LoadTexRet=pScene->LoadTexture ("..\\..\\..\\Media\\texture.bmp", -1, -1, "TeapotTexture");
ثم
pTeapot->CreateTeapot ();
ثم
pTeapot->SetTexture (pGlobals->GetTex("TeapotTexture"),-1);