2013-04-29 3 views
0

Я пытаюсь научиться 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); 
} 

ответ

1

Посмотрите это Resizing BitmapData in ActionScript 3

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

+0

Пробовал, как в этом. Теперь он просто не отображается вообще –

+0

Я использую этот метод, и все работает нормально. Можете ли вы показать минимальный компилируемый пример? А также, почему бы не добавить растровое изображение на сцену - почему вы рисуете его с помощью beginBitmapFill? – W55tKQbuRu28Q4xv

+0

Я фактически переношу существующую игру, сделанную на Java в Haxe, и у меня обычно есть большой актив и вручную изменяет ее размер в соответствии с размером экрана пользователя. Поскольку каждый объект нужно анимировать, и я не могу изменить растровое изображение, добавленное на сцену, я рисую его в класс игры, который является спрайтом. –

Смежные вопросы