Haxe NME Изменение размера растрового изображения

Я пытаюсь изучить NME с помощью haxe, чтобы создать маленькую игру. Я установил NME 3.5.5 с Haxe 2.10 в FlashDevelop. Чтобы нарисовать фон игры, я использую

// Class level variable
var background : nme.display.Bitmap;

public function initResources() : Void
{
    background = new Bitmap(Assets.getBitmapData("img/back.png"));
}

И в цикле рендеринга, я рендеринг, как это.

g.clear();
g.beginBitmapFill(background.bitmapData, true, true);
g.drawRect(0, 0, 640, 480);
g.endFill();

Это рисует изображение через вид, и мне нужно изменить его размер, чтобы соответствовать экрану.

РЕДАКТИРОВАТЬ:

Вот функция, которую я использую для масштабирования растрового изображения. Это не работает, и на экране ничего не отображается.

public static function resize( source:Bitmap, width:Int, height:Int ) : Bitmap
{
    var scaleX:Int = Std.int(width / source.bitmapData.width);
    var scaleY:Int = Std.int(height / source.bitmapData.height);
    var data:BitmapData = new BitmapData(width, height, true);
    var matrix:Matrix = new Matrix();
    matrix.scale(scaleX, scaleY);
    data.draw(source.bitmapData, matrix);
    return new Bitmap(data);
}

Благодарю.

РЕДАКТИРОВАТЬ 2:

Наконец-то сделал это. Я излишне приводил это к int. Вот решение.

public static function resize( source:Bitmap, width:Int, height:Int ) : Bitmap
{
    var scaleX:Float = width / source.bitmapData.width;
    var scaleY:Float = height / source.bitmapData.height;
    var data:BitmapData = new BitmapData(width, height, true);
    var matrix:Matrix = new Matrix();
    matrix.scale(scaleX, scaleY);
    data.draw(source.bitmapData, matrix);
    return new Bitmap(data);
}

1 ответ

Решение

Посмотрите это изменение размера BitmapData в ActionScript 3

Вы должны использовать BitmapData.draw и масштабированную матрицу.

Другие вопросы по тегам