很多游戏都有2p角色,动作和1p角色完全相同,只不过衣服的颜色改变了一下.那么我们通过什么来改变衣服哪?你可能会说把2p角色也画成一套图片就是了,这样做肯定对,但是通常一个动作游戏一套图片可能达到几百张,这样的做法实在是不值得赞成.
下面我们就用bitmapdata使这个问题简单化.
这里用街霸中的人物"红疯 ken"为例子,下面的swf中,大家点一下那个红色的ken,他的衣服就会变成兰色
代码:
Stage.scaleMode="noScale";
//导入bitmapdata类
importflash.display.BitmapData;
importflash.geom.Point;
//创建人物
varkenbmd:BitmapData=BitmapData.loadBitmap("ken",1);
varkenmc:MovieClip=this.createEmptyMovieClip("kenmc",1);
kenmc.attachBitmap(kenbmd,1);
kenmc._x=100;
kenmc._y=10;
//创建调色板
varredArray:Array=newArray(256);
for(vari=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,newPoint(0,0),redArray,null,null,null);
};