很多游戏都有2p角色,动作和1p角色完全相同,只不过衣服的颜色改变了一下.那么我们通过什么来改变衣服哪?你可能会说把2p角色也画成一套图片就是了,这样做肯定对,但是通常一个动作游戏一套图片可能达到几百张,这样的做法实在是不值得赞成.
下面我们就用bitmapdata使这个问题简单化.
这里用街霸中的人物"红疯 ken"为例子,下面的swf中,大家点一下那个红色的ken,他的衣服就会变成兰色,
代码:
Stage.scaleMode = "noScale";
//导入bitmapdata类
import flash.display.BitmapData;
import flash.geom.Point;
//创建人物
var kenbmd:BitmapData = BitmapData.loadBitmap("ken", 1);
var kenmc:MovieClip = this.createEmptyMovieClip("kenmc", 1);
kenmc.attachBitmap(kenbmd, 1);
kenmc._x = 100;
kenmc._y = 10;
//创建调色板
var redArray:Array = new Array(256);
for (var i = 0; i<255; i++) {
redArray[i] = "0x00"+i.toString(16)+"0000";
}
redArray[0xF4] = 0x000000F4;
redArray[0x95] = 0x00000095;
redArray[0xDE] = 0x000000DE;
//
kenmc.onPress = function() {
kenbmd.paletteMap(kenbmd, kenbmd.rectangle, new Point(0, 0), redArray, null, null, null);
};