lufy's legend
标题:
纹理问题,请大侠指导
[打印本页]
作者:
zzz220918
时间:
2018-9-21 06:39
标题:
纹理问题,请大侠指导
我想加载一张图片,该图片是300*300的,但是我想让它缩放到100*100的矩形里面,
LBitmapData
(
imglist
[
"face1"
],
0
,
0
,
100
,
100
),这样的图片数据是没有缩放的,要怎么样才可以缩放?
因为我要用半径为50的圆来显示这张图片,所要以用到纹理
原图是这个
2018-9-21 06:36 上传
下载附件
(115.96 KB)
如果是这样:
cLayer
=
new
LSprite
();
backLayer
.
addChild
(
cLayer
);
bitmap = new LBitmapData(imglist["face1"],0,0,100,100);
cLayer
.
graphics
.
beginBitmapFill
(
bitmap
);
cLayer
.
graphics
.
drawArc
(
4
,
"#ff0000"
,[
50
,
50
,
50
,
0
,
2
*
Math
.PI]);
效果是这样:
2018-9-21 06:31 上传
下载附件
(7.1 KB)
如果是这样;
cLayer
=
new
LSprite
();
backLayer
.
addChild
(
cLayer
);
bitmap = new LBitmap(new LBitmapData(imglist["face1"],0,0));
bitmap.scaleX = 100 / bitmap.width;
bitmap.scaleY = 100 / bitmap.height;
cLayer
.
graphics
.
beginBitmapFill
(
bitmap
.
bitmapData
);
cLayer
.
graphics
.
drawArc
(
4
,
"#ff0000"
,[
50
,
50
,
50
,
0
,
2
*
Math
.PI]);
也是上面的效果,请问怎么样才可以把一个原图的
BitmapData变成缩放后的
BitmapData呢?
作者:
zzz220918
时间:
2018-9-21 17:15
问题解决了,我还写了一个函数,可以用这个方式给所有的形状贴图,附上代码
function circleImage(image,r){
layerCircle = new LSprite();
var bitmap = new LBitmap(new LBitmapData(image,0,0));
bitmap.scaleX = r * 2 / bitmap.width
bitmap.scaleY = r * 2 / bitmap.height
var bitmapData = new LBitmapData(null, 0, 0,r * 2,r * 2);
bitmapData.draw(bitmap);
layerCircle.graphics.beginBitmapFill(bitmapData);
layerCircle.graphics.drawArc(1,"#ff0000",[r,r,r,0,2*Math.PI]);
layerCircle.addChild(bitmapData);
return layerCircle
}
作者:
lufy
时间:
2018-10-2 05:36
zzz220918 发表于 2018-9-21 17:15
问题解决了,我还写了一个函数,可以用这个方式给所有的形状贴图,附上代码
function circleImage(image,r ...
不好意思,最近没怎么上论坛,
还有一种方法,就是用mask,比你上面的方法会更简单一点
欢迎光临 lufy's legend (http://lufylegend.com/forum/)
Powered by Discuz! X2.5