From a9aeaf20b0082f58a9ab5e196222e20930c6c76b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20H=C3=BCbner?= Date: Fri, 11 Aug 2017 23:50:56 +0200 Subject: [PATCH] animated explosion --- Asteroid.gd | 6 ++++++ Bullet.gd | 4 ++-- ExplosionEffect.gd | 15 +++++++++++++++ ExplosionEffect.tscn | 13 +++++++++++++ raw/explosion_1.ase | 3 +++ raw/explosion_1.png | Bin 0 -> 6378 bytes raw/explosion_1.png.flags | 2 ++ 7 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 ExplosionEffect.gd create mode 100644 ExplosionEffect.tscn create mode 100644 raw/explosion_1.ase create mode 100644 raw/explosion_1.png create mode 100644 raw/explosion_1.png.flags diff --git a/Asteroid.gd b/Asteroid.gd index eb35e0b..035cc42 100644 --- a/Asteroid.gd +++ b/Asteroid.gd @@ -1,5 +1,7 @@ extends KinematicBody2D +var ExplosionEffect = load("res://ExplosionEffect.tscn") + var rect = Rect2(0, 0, 0, 0) var velocity = Vector2(0, 0) var rot_vel = 0 @@ -31,6 +33,10 @@ func wrap(v, v_min, v_max): return v func on_explode(): + # create bullet impact + var new_ee = ExplosionEffect.instance() + get_tree().get_root().add_child(new_ee) + new_ee.set_global_pos(get_global_pos()) queue_free() func do_damage(v): diff --git a/Bullet.gd b/Bullet.gd index bcb6cdf..09722ae 100644 --- a/Bullet.gd +++ b/Bullet.gd @@ -5,13 +5,13 @@ var BulletImpact = load("res://BulletImpact.tscn") var velocity = Vector2(1, 0) var lifetime = 16 # seconds -var bullet_dmg = 0.25 +var bullet_dmg = 25 onready var sprite = get_node("Sprite") func _ready(): set_fixed_process(true) - + func fire(delta, vel, dir, speed): velocity = (vel.length() * dir + (dir * speed * delta)) sprite.set_rot(dir.angle()) diff --git a/ExplosionEffect.gd b/ExplosionEffect.gd new file mode 100644 index 0000000..2216acd --- /dev/null +++ b/ExplosionEffect.gd @@ -0,0 +1,15 @@ +extends Sprite + +var current_time = 0 +var frames_per_second = 0.05 + +func _ready(): + set_process(true) + +func _process(delta): + + if int(current_time / frames_per_second) >= get_hframes() - 1: + queue_free() + + set_frame(int(current_time / frames_per_second)) + current_time += delta \ No newline at end of file diff --git a/ExplosionEffect.tscn b/ExplosionEffect.tscn new file mode 100644 index 0000000..28ba00b --- /dev/null +++ b/ExplosionEffect.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=1] + +[ext_resource path="res://raw/explosion_1.png" type="Texture" id=1] +[ext_resource path="res://ExplosionEffect.gd" type="Script" id=2] + +[node name="ExplosionEffect" type="Sprite"] + +texture = ExtResource( 1 ) +hframes = 8 +region_rect = Rect2( 0, 0, 32, 32 ) +script/script = ExtResource( 2 ) + + diff --git a/raw/explosion_1.ase b/raw/explosion_1.ase new file mode 100644 index 0000000..53e0ed5 --- /dev/null +++ b/raw/explosion_1.ase @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b900489b98c048ae8c0891147a23232788780d5aececd7ee23b8563874dc694a +size 5525 diff --git a/raw/explosion_1.png b/raw/explosion_1.png new file mode 100644 index 0000000000000000000000000000000000000000..020ae42e0065cbf3a0b9ad826e519d4857f12b41 GIT binary patch literal 6378 zcmX|FcT^MI)82&Md+$x9iBu^<=v9#}AWe{7q@%P1LstW;8R-#lqoyR? zYl}Ec0D!y6L|@0|Askzz8N{!~_EfExin~xM%uhA=1B{Gr!b=M#w(LeG^jWKai<&l; z%s?HcK*vo%30GxSSsJNX)yGpP7_r-mrv?ygnwF`UWzu3g<_*lp?+&<6a{r6<|ChF+ zH#+az{ON{5hk#a4p*Vu+KNW|)JeIgE^ovk2Hu<5bjOdU3xZ_y#pDnETdr;zrpQ=L^(XPF|3t7WO-lJT1*QwR3AsHUpnt-Aeu%PH zVC{=IVl^fTYa{d@uz)r7y;*~k7|oowz@PkovWX{kc&ttf78!qikUMPu?8oW@T+})A zILbp%bQUGrt-L>|mw2a87Dj)~=YRMYB)t1Tm)x0I$oRqWdgVje@=0G%*yGRCBy|8k zpEE*qiP)y(y=ZuWRa@i%xYCoWer}I52BW^yCC3X>_{q4tfk{xlHPUN@i2Z4|d=wLF zy7-Reoc|(R)WkjJ5bOXrt^A8+G4O*B=_|sm=VN?Xa)1_kefB47=bpv7bK=LN1(h(O zFSuD~Uk6P>GAD3^y-O~4@qZLZi+wY7Ywz!5{DZ;aVwyRre9+63?ffzi5{kZ$nJzLu`*9MRJprIdt(se8%0A%{56RMX^Td3u0YHA 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 E2P6DiIsgCw literal 0 HcmV?d00001 diff --git a/raw/explosion_1.png.flags b/raw/explosion_1.png.flags new file mode 100644 index 0000000..226e8a3 --- /dev/null +++ b/raw/explosion_1.png.flags @@ -0,0 +1,2 @@ +filter=false +gen_mipmaps=false