Для классного проекта я работаю над "Pissed Off Pigs" (я думаю, вы поняли идею, свиньи мстят, не волнуйтесь, я не собираюсь выпустить это!), И я хочу создатькруги с заливкой из растрового изображения (круги, потому что математика столкновений легче).Вот как они выглядят сейчас.
Конечно, проблема в белом.Ниже мой класс "свиней".Есть идеи?Я пробовал gif, pngs, 8-bit pngs и т. Д., И, похоже, ничего не изменилось.Само изображение имеет площадь 20 пикселей, а радиус круга - 10 пикселей (то есть диаметр 20 пикселей).Вот изображение, которое я использую:
И я знаю, что, вероятно, мне следует загрузить изображение вне класса и просто передать BitmapData, когда я создаю новую свинью, чтобы мне не нужно было загружатьизображение каждый раз, когда я создаю новую свинью, но пока она работает!(Sorta).
Матрица переводит проблему?
О, и я проверил bmpImage.transparent, и он возвращает true (даже если я не указываю true в конструкторе).
`package {import flash.display. ;импорт flash.net. ;импорт flash.events. ;импорт flash.geom. ;import flash.display.BitmapDataChannel;
public class pig extends Sprite {
public var radius:uint;
public var velocity:Vec2;
public var tt:Sprite;
public var pigLoader:Loader;
public var bmpImage:BitmapData;
public var framesAlive:uint;
public function pig(xx:uint, yy:uint, radius:uint, vx:Number, vy:Number, sprite:String){
this.x = xx;
this.y = yy;
this.radius = radius;
this.velocity = new Vec2(vx, vy);
pigLoader = new Loader();
pigLoader.load(new URLRequest(sprite));
pigLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, picLoaded);
}
private function picLoaded(event:Event):void {
bmpImage = new BitmapData(pigLoader.width, pigLoader.height, true);
bmpImage.draw(pigLoader);
tt = new Sprite();
var matrix:Matrix;
matrix = new Matrix();
matrix.translate( -10, -10);
tt.graphics.beginBitmapFill(bmpImage, matrix, false, false);
tt.graphics.drawCircle(0, 0, this.radius)
tt.graphics.endFill();
this.addChild(tt);
}
}
}
`