我创建了一个新的实体,并将实体图形定义为来自嵌入式图像文件的新图像。
graphic = new Image(PLAYER);
PLAYER是一个嵌入图像,现在既然图形是这个图像现在,我应该能够做的事情,如centerOrigin()或angle(),但我不能?它在Flash IDE中工作,但现在我已经切换到Flash Builder使用flashpunk,它给了我一个错误1119,无法通过静态类型net.flashpunk:Graphic访问属性centerOrigin()。
我做错了什么?很多教程都说这是可行的。如果它应该工作,但问题是环境,而不是我的程序,什么是一个解决方案?
下面是我的实际代码:public class Projectile extends Entity{
public var bearingIN:Number;
public var speedIN:Number;
public function Projectile(bearing,speed,gunX,gunY) {
setHitbox(2,2);
bearingIN = bearing;
speedIN = speed;
graphic = new Image(new BitmapData(8,1,false,0xFFFF32));
type = "projectile";
graphic.centerOrigin();
graphic.angle = (bearing / (Math.PI/180))*-1;
layer = 255
x = gunX + 16;
y = gunY + 16;
addTween(new Alarm(20,removeProj,2), true);
}
private function removeProj(){
FP.world.remove(this);
}
public override function update():void{
x += Math.cos(bearingIN)*speedIN;
y += Math.sin(bearingIN)*speedIN;
if(collide("wall",x,y)){
removeProj();
}
}
}
Entity
类的graphic
属性为Graphic
类型。然而,Graphic
类没有centerOrigin
方法,只有Image
有。所以你需要cast它。对centerOrigin()
:
((Image)graphic).centerOrigin();
您必须为angle
做同样的事情。