[render] show scores

This commit is contained in:
2018-03-14 22:14:33 +03:00
parent e9212a889d
commit 2183c0710c
8 changed files with 57 additions and 19 deletions

View File

@@ -1,8 +1,13 @@
package ru.m.tankz.render;
import haxework.resources.IResources;
import haxework.provider.Provider;
import flash.display.DisplayObjectContainer;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import haxe.Timer;
import haxework.gui.SpriteView;
import ru.m.animate.Animate;
import ru.m.animate.OnceAnimate;
@@ -10,6 +15,7 @@ import ru.m.geom.Point;
import ru.m.tankz.core.EntityType;
import ru.m.tankz.engine.Engine;
import ru.m.tankz.render.RenderItem;
import ru.m.tankz.Type;
class Render extends SpriteView {
@@ -138,13 +144,16 @@ class Render extends SpriteView {
}
}
public function onDestroy(entity:EntityType):Void {
public function onDestroy(entity:EntityType, ?playerId:PlayerId):Void {
switch entity {
case EntityType.TANK(tank):
if (items.exists(tank.key)) {
entryLayer.removeChild(items.get(tank.key).view);
items.remove(tank.key);
playAnimate(tank.rect.center, AnimateBundle.tankBoom());
if (tank.config.score > 0) {
showScore(tank.rect.center, tank.config.score);
}
}
case EntityType.BULLET(bullet):
if (items.exists(bullet.key)) {
@@ -157,6 +166,9 @@ class Render extends SpriteView {
if (items.exists(bonus.key)) {
upperLayer.removeChild(items.get(bonus.key).view);
items.remove(bonus.key);
if (bonus.config.score > 0) {
showScore(bonus.rect.center, bonus.config.score);
}
}
case _:
}
@@ -171,4 +183,16 @@ class Render extends SpriteView {
animate.dispose();
});
}
private function showScore(point:Point, score:Int):Void {
var view:TextField = new TextField();
view.embedFonts = true;
var font:String = Provider.get(IResources).text.get('font');
view.defaultTextFormat = new TextFormat(font, 28, 0xffffff);
view.text = Std.string(score);
view.x = point.x - view.textWidth / 2;
view.y = point.y - view.textHeight / 2;
upperLayer.addChild(view);
Timer.delay(function() upperLayer.removeChild(view), 1000);
}
}

View File

@@ -1,9 +1,10 @@
package ru.m.tankz.sound;
import ru.m.tankz.engine.Engine;
import openfl.media.Sound;
import openfl.utils.Assets;
import ru.m.tankz.core.EntityType;
import ru.m.tankz.engine.Engine;
import ru.m.tankz.Type;
class SoundManager {
@@ -57,7 +58,7 @@ class SoundManager {
}
}
public function onDestroy(entity:EntityType):Void {
public function onDestroy(entity:EntityType, ?playerId:PlayerId):Void {
switch entity {
case EntityType.TANK(_):
play('boom_bot');

View File

@@ -174,9 +174,9 @@ tanks:
skin: bd
bonuses:
- {type: clock, duration: 10}
- {type: grenade}
- {type: helmet, duration: 20}
- {type: life}
- {type: shovel, duration: 10}
- {type: star}
- {score: 500, type: clock, duration: 10}
- {score: 500, type: grenade}
- {score: 500, type: helmet, duration: 20}
- {score: 500, type: life}
- {score: 500, type: shovel, duration: 10}
- {score: 500, type: star}