很多游戏都有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); };
(出处:网侠)
|