原文链接:http://www.brighthub.com/hubfolio/matthew-casperson/articles/73821.aspx
上一课我们创建了一个实体,显示了一个简单的圆形。这次我们载入一个外部图片来创建我们的主角。
先准备图片。在bin目录里建个assets文件夹,把主角图片player.png放入assets中。
将上一课的程序做一点改动:
package
{
import com.pblabs.engine.entity.IEntity;
import com.pblabs.engine.entity.PropertyReference;
import com.pblabs.engine.PBE;
import com.pblabs.rendering2D.SimpleSpatialComponent;
import com.pblabs.rendering2D.SpriteRenderer;
import com.pblabs.rendering2D.ui.SceneView;
import flash.display.Sprite;
import flash.geom.Point;
public class Main extends Sprite
{
public function Main()
{
PBE.startup(this);
var sv:SceneView = new SceneView();
PBE.initializeScene(sv);
createEntity();
}
private function createEntity():void {
var entity:IEntity = PBE.allocateEntity();
entity.initialize("MyEntity","Items");var spatial:SimpleSpatialComponent = new SimpleSpatialComponent();
spatial.spatialManager = PBE.spatialManager;
spatial.position = new Point(0,0);
entity.addComponent( spatial, "Spatial" );
//注意,这里我们改用一个新的渲染组件SpriteRenderer
var render:SpriteRenderer = new SpriteRenderer();
render.scene = PBE.scene;
//指定文件路径
render.fileName = 'assets/player.png';
//引用名为"Spatial"的组件的position属性,不再引用size属性
render.positionProperty = new PropertyReference("@Spatial.position");
entity.addComponent(render, "Render");
}
}
}
但是许多时候还是把资源嵌入比较好。这时我们可以这样做:
还是先准备图片。在src目录(不是bin了)里建个assets文件夹,把主角图片player.png放入assets中。
新建GameResources类继承自com.pblabs.engine.resource.ResourceBundle。
package
{
import com.pblabs.engine.resource.ResourceBundle;
public class GameResources extends ResourceBundle
{
[Embed(source = 'assets/player.png')]
public var player:Class;
}
}
在主程序的构造函数中加入一句:PBE.addResources(new GameResources()); 成为这样:
public class Main extends Sprite
{
public function Main()
{
PBE.startup(this);
PBE.addResources(new GameResources());
var sv:SceneView = new SceneView();
PBE.initializeScene(sv);
createEntity();
}

浙公网安备 33010602011771号