很多游戏都有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);
};
源程序:
点击浏览该文件