Skip to content
This repository has been archived by the owner on Dec 26, 2018. It is now read-only.

[3.0] 4: Create Entity programmatically

Yuya Matsuo edited this page Sep 27, 2016 · 1 revision

You can dynamically create Entity from XML.

Example:

<entity
    geometry="primitive: plane; width: 0.8; height: 0.8"
    surface="renderer: @drawable/my_image"/>

If XML is located in res/xml/my_entity.xml use XmlParser.parseXmlResource(R.xml.my_entity).

// app = MeganekkoApp
XmlParser parser = app.getXmlParser();
Entity entity = parser.parseXmlResource(R.xml.my_entity);

// Set other properties not in XML
entity.setPosition(pos);
entity.setRotation(rot);

// Add to Scene (or Entity in Scene) to render it
app.getScene().add(entity);

Entity can be created completely only with java code. Above example XML is same as these codes.

// <entity>
Entity entity = new Entity();

// geometry="primitive: plane; width: 0.8; height: 0.8"
float width = 0.8f;
float height = 0.8f;
GeometryComponent geometry = new GeometryComponent();
geometry.buildQuad(width, height);
entity.add(geometry);

// surface="renderer: @drawable/my_image"
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.my_image);
SurfaceRendererComponent surfaceRenderer = SurfaceRendererComponent.from(drawable);
entity.add(surfaceRenderer);