العثور على كائنات في J2ME M3G
سؤال
أنا أستخدم Blender لإنشاء ملفات M3G ثم أقوم بتحميلها في برنامج Java.
وهي أفضل طريقة للعثور على كائن (أ Mesh
) في ال World
؟ (كيف يمكنني "بناء" عالم؟)
هل يجب أن أقوم بإنشاء فئات منفصلة لكل كائن ثم أضفها إلى واحد World
كائن أم يجب أن أقوم بتعيين معرفات للكائنات في الخلاط والعثور عليها في البرنامج حسب المعرف؟
أو تصدير كل كائن إلى ملف M3G منفصل؟
(أو بطريقة أخرى؟)
المحلول
س 1. إذا كنت تعرف معرف Mesh
(MESH_ID
)، من ثم:
try {
Object3D[] roots = Loader.load( "http://www.example.com/scene.m3g" );
World world = roots[0];
Mesh mesh = world.find( MESH_ID );
}
catch( Exception e ) {
// Handle it
}
س 2. تحميل أساسي World
:
public class MyCanvas extends Canvas
Graphics3D g3d;
World world;
int currentTime = 0;
public MyCanvas() {
g3d = Graphics3D.create();
Object root[] = Loader.load("world.m3g");
world = root[0];
}
protected void paint(Graphics g) {
g3d.bindTarget(g);
world.animate(currentTime);
currentTime += 50;
g3d.render(world);
g3d.releaseTarget();
}
}
ثم استخدم واجهة برمجة التطبيقات لإنشاء وإضافة المزيد من الكائنات في العالم ، وتغطي وثائق API هذا بعمق:
س 3. تعيينهم في الخلاط ، ثم استخدم find
طريقة للحصول على المثيل الدقيق لـ Object3D
انت تحتاج.
س 4. إذا كنت تخطط لإعادة استخدام الشبكات (للتطبيقات المختلفة) ، فقم بتنظيمها في ملفات منفصلة ، وقم بتحميلها بشكل منفصل أثناء تهيئة التطبيق ، ثم أدخلها في العالم.