From a34559e740aa2dab6fc84d5631171e0451101b89 Mon Sep 17 00:00:00 2001 From: jnc-explosion Date: Tue, 30 Jan 2024 02:10:30 +0900 Subject: [PATCH] =?UTF-8?q?=E7=88=86=E5=BC=BE=E6=8A=95=E6=93=B2=E7=A0=94?= =?UTF-8?q?=E7=A9=B6=E4=BC=9A=E3=82=92=E8=A8=AD=E7=AB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/gather.mp3 | Bin 0 -> 25703 bytes src/engine/components/RigidBody.d | 1 - src/game/GameManager.d | 2 ++ src/game/entities/Bomb.d | 39 ++++++++++++++++++++++++------ src/game/entities/Hero.d | 10 +++++++- 5 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 assets/gather.mp3 diff --git a/assets/gather.mp3 b/assets/gather.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..cb342f07eaf9679a76603dd6392623ed1bdd0b7f GIT binary patch literal 25703 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 "bomb.png"; AudioSource se; + Affi af; bool isExplosion = false; - this() { + this(Affi af = Affi.Enemy) { auto bokan = new AudioAsset("dogaan.mp3"); se = register(new AudioSource(bokan)); - se.volume(20); + se.volume(60); addTag("Bomb"); // 僕はHikakin 死亡 tform = register(new Transform(tform.Org.Spawn)); tform.scale = Vec2(0.2, 0.2); + this.af = af; } override void setup() { @@ -37,13 +44,19 @@ class Bomb : GameObject { } override void collide(GameObject go) { - if(go.getTag("Missile")) explosion; + if(go.getTag("Missile") || af == Affi.Hero) explosion(go); + else if(go.getTag("Hero")) { + auto aa = new AudioAsset("gather.mp3"); + se.set(aa); + se.volume(100); + se.play(0); + gm.heroStatus.haveObj ~= new Bomb(Affi.Hero); + bye; + } } - void explosion() { + void explosion(GameObject go) { if(!isExplosion) { - //se.play(1); - register(new Explosion); component!BoxCollider.isTrigger = true; // damage function @@ -52,11 +65,21 @@ class Bomb : GameObject { auto ptf = gm.hero.component!Transform; Vec2 r = ptf.pos - tform.pos; real len = r.size; - Status* pstat = gm.heroStatus(); - if(!pstat.star)pstat.life -= cast(int)dmgf(len); + Status* stat; + if(af == Affi.Enemy) { + stat = gm.heroStatus(); + } else { + if(go.getTag("Hero")) return; + auto keys = go in gm.status; + if(keys !is null) stat = gm.status[go]; + else return; + } + if(!stat.star) stat.life -= cast(int)dmgf(len); rigid.addForce(r * dmgf(len)); dbg("damaged! :", dmgf(len)); + se.play(1); + register(new Explosion); isExplosion = true; } } // 爆発は芸術なのかもしれませんね diff --git a/src/game/entities/Hero.d b/src/game/entities/Hero.d index 90e5126..c7cb494 100644 --- a/src/game/entities/Hero.d +++ b/src/game/entities/Hero.d @@ -21,6 +21,7 @@ class Hero: GameObject { Timer rndtmr; Timer dashtmr; + Timer bombdtmr; bool isDash; Kalashnikov ak; @@ -57,6 +58,7 @@ class Hero: GameObject { rndtmr = new Timer; dashtmr = new Timer; + bombdtmr = new Timer; } override void loop() { @@ -88,7 +90,13 @@ class Hero: GameObject { dust.component!Transform.initPos = Vec2(0, rend.size.x); dashtmr.reset; } - }else{ + } else if(im.key('t') && gm.heroStatus.haveObj !is null && gm.heroStatus.haveObj.length != 0 && bombdtmr.cur >= 2_000) { + auto bm = register(gm.heroStatus.haveObj[$-1]); + gm.heroStatus.haveObj.popBack; + bm.component!RigidBody.addForce(Vec2(300, 450) * dir); + bm.component!Transform.initPos = Vec2(80, 0) * dir; + bombdtmr.reset; + } else { rb.v.x = 0; rb.v.x = 0; isDash = false;