[render] tankz colors
@@ -8,8 +8,9 @@ import flash.display.BitmapData;
|
||||
class BitmapUtil {
|
||||
|
||||
public static function colorize(data: BitmapData, color: Color):BitmapData {
|
||||
if (color.zero) return data;
|
||||
var result = data.clone();
|
||||
var transform = new ColorTransform(1, 1, 1, 1, color.red, color.green, color.blue, color.alpha);
|
||||
var transform = new ColorTransform(color.red / 255, color.green / 255, color.blue / 255, 1, 0, 0, 0, 0);
|
||||
result.colorTransform(new Rectangle(0, 0, result.width, result.height), transform);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ abstract Color(Int) {
|
||||
public var red(get, never):Int;
|
||||
public var green(get, never):Int;
|
||||
public var blue(get, never):Int;
|
||||
public var zero(get, never):Bool;
|
||||
|
||||
public inline function new(value:Int) {
|
||||
this = value;
|
||||
@@ -26,6 +27,15 @@ abstract Color(Int) {
|
||||
return this & 255;
|
||||
}
|
||||
|
||||
private inline function get_zero():Bool {
|
||||
return this == 0;
|
||||
}
|
||||
|
||||
@:from
|
||||
static public inline function fromInt(value:Int):Color {
|
||||
return new Color(value);
|
||||
}
|
||||
|
||||
@:from
|
||||
static public inline function fromString(value:String):Color {
|
||||
return new Color(Std.parseInt('0x${value.split('#').pop()}'));
|
||||
|
||||
@@ -155,32 +155,14 @@ class TankItem extends RenderItem<Tank, Sprite> {
|
||||
}
|
||||
|
||||
override public function redraw():Void {
|
||||
// ToDo: ImageBundle
|
||||
tankView.frames = getFrames().map(function(s) return BitmapUtil.colorize(Assets.getBitmapData(s), '#cc0000'));
|
||||
}
|
||||
|
||||
public static function getTankFrames(team:TeamId, index:Int, type:TankType, hits:Int=0):Array<String> {
|
||||
var group = type.group;
|
||||
if (team == 'radiant') {
|
||||
index = 0;
|
||||
}
|
||||
if (team == 'dire') {
|
||||
index = 1;
|
||||
}
|
||||
if (team == 'human' || team == 'radiant' || team == 'dire') {
|
||||
group = 'player';
|
||||
}
|
||||
if (team == 'bot') {
|
||||
index = hits;
|
||||
}
|
||||
return [
|
||||
'resources/images/tank/${group}/tank_${group.charAt(0)}${type.type}_${index}-0.png',
|
||||
'resources/images/tank/${group}/tank_${group.charAt(0)}${type.type}_${index}-1.png',
|
||||
];
|
||||
tankView.frames = getFrames().map(function(src) return BitmapUtil.colorize(Assets.getBitmapData(src), value.color));
|
||||
}
|
||||
|
||||
private function getFrames():Array<String> {
|
||||
return getTankFrames(value.playerId.team, value.playerId.index, value.config, value.hits);
|
||||
return [
|
||||
'resources/image/tank/${value.config.skin}-0.png',
|
||||
'resources/image/tank/${value.config.skin}-1.png',
|
||||
];
|
||||
}
|
||||
|
||||
override public function update():Void {
|
||||
|
||||
@@ -19,7 +19,6 @@ bricks:
|
||||
|
||||
teams:
|
||||
- id: human
|
||||
spawnInterval: 0
|
||||
tanks:
|
||||
- {group: human, type: 0, rate: 1}
|
||||
- id: bot
|
||||
@@ -54,6 +53,7 @@ tanks:
|
||||
<<: *bullet
|
||||
speed: 8.0
|
||||
bullets: 1
|
||||
skin: pa
|
||||
|
||||
- type: 1
|
||||
width: 40
|
||||
@@ -63,6 +63,7 @@ tanks:
|
||||
<<: *bullet
|
||||
speed: 8.5
|
||||
bullets: 1
|
||||
skin: pb
|
||||
|
||||
- type: 2
|
||||
width: 40
|
||||
@@ -72,6 +73,7 @@ tanks:
|
||||
<<: *bullet
|
||||
speed: 9.0
|
||||
bullets: 2
|
||||
skin: pc
|
||||
|
||||
- type: 3
|
||||
width: 42
|
||||
@@ -82,6 +84,8 @@ tanks:
|
||||
speed: 9.0
|
||||
piercing: 3
|
||||
bullets: 2
|
||||
hits: 1
|
||||
skin: pd
|
||||
|
||||
bot:
|
||||
- type: 0
|
||||
@@ -93,6 +97,7 @@ tanks:
|
||||
speed: 7.0
|
||||
bullets: 1
|
||||
score: 100
|
||||
skin: ba
|
||||
|
||||
- type: 1
|
||||
width: 40
|
||||
@@ -103,6 +108,7 @@ tanks:
|
||||
speed: 7.0
|
||||
bullets: 1
|
||||
score: 200
|
||||
skin: bb
|
||||
|
||||
- type: 2
|
||||
width: 38
|
||||
@@ -113,6 +119,7 @@ tanks:
|
||||
speed: 9.0
|
||||
bullets: 1
|
||||
score: 300
|
||||
skin: bc
|
||||
|
||||
- type: 3
|
||||
width: 40
|
||||
@@ -124,3 +131,4 @@ tanks:
|
||||
bullets: 1
|
||||
score: 400
|
||||
hits: 3
|
||||
skin: bd
|
||||
|
||||
@@ -19,17 +19,16 @@ bricks:
|
||||
|
||||
team_tanks: &team_tanks
|
||||
tanks:
|
||||
- {group: any, type: 0, rate: 0.25}
|
||||
- {group: any, type: 1, rate: 0.25}
|
||||
- {group: any, type: 2, rate: 0.25}
|
||||
- {group: any, type: 0, rate: 0.5}
|
||||
- {group: any, type: 1, rate: 0.5}
|
||||
|
||||
teams:
|
||||
- <<: *team_tanks
|
||||
id: radiant
|
||||
spawnInterval: 0
|
||||
color: 0xff5555
|
||||
- <<: *team_tanks
|
||||
id: dire
|
||||
spawnInterval: 0
|
||||
color: 0x5555ff
|
||||
|
||||
points:
|
||||
- {team: radiant, type: eagle, index: -1, direction: right, x: 0, y: 28}
|
||||
@@ -54,38 +53,21 @@ bullet: &bullet
|
||||
tanks:
|
||||
any:
|
||||
- type: 0
|
||||
width: 36
|
||||
width: 38
|
||||
height: 36
|
||||
speed: 2.5
|
||||
speed: 2.0
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 8.0
|
||||
speed: 10.0
|
||||
bullets: 1
|
||||
skin: bc
|
||||
|
||||
- type: 1
|
||||
width: 40
|
||||
height: 36
|
||||
speed: 3.0
|
||||
speed: 4.0
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 8.5
|
||||
speed: 7.0
|
||||
bullets: 1
|
||||
|
||||
- type: 2
|
||||
width: 40
|
||||
height: 36
|
||||
speed: 3.0
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 9.0
|
||||
bullets: 2
|
||||
|
||||
- type: 3
|
||||
width: 42
|
||||
height: 38
|
||||
speed: 2.9
|
||||
bullet:
|
||||
<<: *bullet
|
||||
speed: 9.0
|
||||
piercing: 3
|
||||
bullets: 2
|
||||
skin: bb
|
||||
|
||||
BIN
src/client/resources/image/tank/ba-0.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/client/resources/image/tank/ba-1.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/client/resources/image/tank/bb-0.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/client/resources/image/tank/bb-1.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/client/resources/image/tank/bc-0.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/client/resources/image/tank/bc-1.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/client/resources/image/tank/bd-0.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/client/resources/image/tank/bd-1.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/client/resources/image/tank/pa-0.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/client/resources/image/tank/pa-1.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/client/resources/image/tank/pb-0.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/client/resources/image/tank/pb-1.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/client/resources/image/tank/pc-0.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/client/resources/image/tank/pc-1.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/client/resources/image/tank/pd-0.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/client/resources/image/tank/pd-1.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |