首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haxe NME调整位图大小

Haxe NME调整位图大小
EN

Stack Overflow用户
提问于 2013-04-29 07:36:21
回答 1查看 1.3K关注 0票数 0

我正在努力学习NME与haxe创造一个小游戏。我已经在FlashDevelop中安装了带有Haxe2.10的NME3.5.5。为了绘制游戏背景,我使用

代码语言:javascript
复制
// Class level variable
var background : nme.display.Bitmap;

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

在渲染循环中,我是这样呈现的。

代码语言:javascript
复制
g.clear();
g.beginBitmapFill(background.bitmapData, true, true);
g.drawRect(0, 0, 640, 480);
g.endFill();

这是在整个视图绘制图像,我需要调整它的大小,以适应屏幕。

编辑:

这是我用来缩放位图的函数。它不工作,屏幕上没有呈现任何内容。

代码语言:javascript
复制
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。这是解决办法。

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-29 08:16:04

看这个Resizing BitmapData in ActionScript 3

您应该使用BitmapData.draw和缩放矩阵。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16273440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档