Я пытаюсь научиться NME с haxe, чтобы создать небольшую игру. Я установил NME 3.5.5 с Haxe 2.10 в FlashDevelop. Чтобы нарисовать фоновый рисунок игры, я используюHaxe NME Изменение размера растрового изображения
// 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();
Это рисунок изображения на вид, и мне нужно изменить его размер, чтобы он соответствовал экрану.
EDIT:
Вот функция, я использую для масштабирования растрового изображения. Он не работает, и ничего не отображается на экране.
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);
}
Спасибо.
EDIT 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);
}
Пробовал, как в этом. Теперь он просто не отображается вообще –
Я использую этот метод, и все работает нормально. Можете ли вы показать минимальный компилируемый пример? А также, почему бы не добавить растровое изображение на сцену - почему вы рисуете его с помощью beginBitmapFill? – W55tKQbuRu28Q4xv
Я фактически переношу существующую игру, сделанную на Java в Haxe, и у меня обычно есть большой актив и вручную изменяет ее размер в соответствии с размером экрана пользователя. Поскольку каждый объект нужно анимировать, и я не могу изменить растровое изображение, добавленное на сцену, я рисую его в класс игры, который является спрайтом. –