#xxxxx スピーカーを仮実装、BPM連動は未実装。
@@ -575,6 +575,7 @@ | ||
575 | 575 | public Eタイプ eドラムセットを動かす; |
576 | 576 | public Eタイプ eBPMbar; |
577 | 577 | public bool bLivePoint; |
578 | + public bool bSpeaker; | |
578 | 579 | #endregion |
579 | 580 | |
580 | 581 | #region [ GDオプション ] |
@@ -1192,6 +1193,7 @@ | ||
1192 | 1193 | |
1193 | 1194 | #region [ XGオプション ] |
1194 | 1195 | this.bLivePoint = true; |
1196 | + this.bSpeaker = true; | |
1195 | 1197 | this.eNamePlate = Eタイプ.A; |
1196 | 1198 | #endregion |
1197 | 1199 |
@@ -1791,6 +1793,9 @@ | ||
1791 | 1793 | sw.WriteLine("; LivePointの表示(0:OFF, 1:ON)"); |
1792 | 1794 | sw.WriteLine("LivePoint={0}", this.bLivePoint ? 1 : 0); |
1793 | 1795 | sw.WriteLine(); |
1796 | + sw.WriteLine("; スピーカーの表示(0:OFF, 1:ON)"); | |
1797 | + sw.WriteLine("Speaker={0}", this.bSpeaker ? 1 : 0); | |
1798 | + sw.WriteLine(); | |
1794 | 1799 | #endregion |
1795 | 1800 | sw.WriteLine("; シャッターINSIDE(0~100)"); |
1796 | 1801 | sw.WriteLine("DrumsShutterIn={0}", (int)this.nShutterInSide.Drums); |
@@ -2838,6 +2843,10 @@ | ||
2838 | 2843 | { |
2839 | 2844 | this.bLivePoint = C変換.bONorOFF(str4[0]); |
2840 | 2845 | } |
2846 | + else if (str3.Equals("Speaker")) | |
2847 | + { | |
2848 | + this.bSpeaker = C変換.bONorOFF(str4[0]); | |
2849 | + } | |
2841 | 2850 | #endregion |
2842 | 2851 | else if (str3.Equals("DrumsStageEffect")) |
2843 | 2852 | { |
@@ -846,6 +846,7 @@ | ||
846 | 846 | } |
847 | 847 | } |
848 | 848 | #endregion |
849 | + | |
849 | 850 | if ( this.txバートップ != null && CDTXMania.ConfigIni.bDrums有効 && CDTXMania.ConfigIni.eBPMbar != Eタイプ.D ) |
850 | 851 | { |
851 | 852 | //this.txバートップ.t2D描画(CDTXMania.app.Device, n振動x座標, 0); |
@@ -853,15 +854,21 @@ | ||
853 | 854 | this.txバートップ.t2D描画(CDTXMania.app.Device, (int)(1151 - 42.4 * CDTXMania.stage演奏ドラム画面.ct登場用.n現在の値 - 2) + n振動x座標, 0, new Rectangle(640, 0, 640, 720)); |
854 | 855 | CDTXMania.stage演奏ドラム画面.actBPMBar.On進行描画(); |
855 | 856 | } |
856 | - if ( this.txバートップ != null && CDTXMania.ConfigIni.bGuitar有効 && CDTXMania.ConfigIni.eBPMbar != Eタイプ.D ) | |
857 | + if ( CDTXMania.ConfigIni.bGuitar有効 ) | |
857 | 858 | { |
858 | - if (CDTXMania.DTX.bチップがある.Guitar) | |
859 | - this.txバートップ.t2D描画(CDTXMania.app.Device, 0, 0, new Rectangle(0, 0, 640, 720)); | |
859 | + if ( CDTXMania.ConfigIni.bSpeaker ) | |
860 | + CDTXMania.stage演奏ギター画面.actSpeaker.On進行描画(); | |
860 | 861 | |
861 | - if (CDTXMania.DTX.bチップがある.Bass) | |
862 | - this.txバートップ.t2D描画(CDTXMania.app.Device, 640, 0, new Rectangle(640, 0, 640, 720)); | |
862 | + if (this.txバートップ != null && CDTXMania.ConfigIni.eBPMbar != Eタイプ.D) | |
863 | + { | |
864 | + if (CDTXMania.DTX.bチップがある.Guitar) | |
865 | + this.txバートップ.t2D描画(CDTXMania.app.Device, 0, 0, new Rectangle(0, 0, 640, 720)); | |
863 | 866 | |
864 | - CDTXMania.stage演奏ギター画面.actBPMBar.On進行描画(); | |
867 | + if (CDTXMania.DTX.bチップがある.Bass) | |
868 | + this.txバートップ.t2D描画(CDTXMania.app.Device, 640, 0, new Rectangle(640, 0, 640, 720)); | |
869 | + | |
870 | + CDTXMania.stage演奏ギター画面.actBPMBar.On進行描画(); | |
871 | + } | |
865 | 872 | } |
866 | 873 | long lPos = 0; |
867 | 874 | //if (this.dsBGV != null) |
@@ -22,7 +22,8 @@ | ||
22 | 22 | base.eフェーズID = CStage.Eフェーズ.共通_通常状態; |
23 | 23 | base.b活性化してない = true; |
24 | 24 | base.list子Activities.Add( this.actBPMBar = new CAct演奏GuitarBPMバー() ); |
25 | - base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() ); | |
25 | + base.list子Activities.Add( this.actSpeaker = new CAct演奏Guitarスピーカー() ); | |
26 | + base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() ); | |
26 | 27 | base.list子Activities.Add( this.actDANGER = new CAct演奏GuitarDanger() ); |
27 | 28 | base.list子Activities.Add( this.actAVI = new CAct演奏AVI() ); |
28 | 29 | base.list子Activities.Add( this.actBGA = new CAct演奏BGA() ); |
@@ -131,6 +132,7 @@ | ||
131 | 132 | |
132 | 133 | this.UnitTime = ((60.0 / (CDTXMania.stage演奏ギター画面.actPlayInfo.dbBPM) / 14.0)); //2014.01.14.kairera0467 これも動かしたいのだが・・・・ |
133 | 134 | this.actBPMBar.ctBPMバー = new CCounter(1.0, 14.0, UnitTime, CSound管理.rc演奏用タイマ); |
135 | + this.actSpeaker.ctBPM = new CCounter(1.0, 14.0, UnitTime, CSound管理.rc演奏用タイマ); | |
134 | 136 | |
135 | 137 | this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, CDTXMania.Timer ); |
136 | 138 | this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, CDTXMania.Timer ); |
@@ -187,7 +189,6 @@ | ||
187 | 189 | |
188 | 190 | this.t進行描画・グラフ(); |
189 | 191 | |
190 | - | |
191 | 192 | this.t進行描画・WailingBonus(); |
192 | 193 | this.t進行描画・譜面スクロール速度(); |
193 | 194 | this.t進行描画・チップアニメ(); |
@@ -250,6 +251,7 @@ | ||
250 | 251 | public CAct演奏スキルメーター actGraph; |
251 | 252 | public bool bサビ区間; |
252 | 253 | public double UnitTime; |
254 | + public CAct演奏Guitarスピーカー actSpeaker; | |
253 | 255 | |
254 | 256 | protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane ) |
255 | 257 | { |
@@ -0,0 +1,106 @@ | ||
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Text; | |
4 | +using System.Drawing; | |
5 | +using System.IO; | |
6 | +using SlimDX; | |
7 | +using FDK; | |
8 | + | |
9 | +namespace DTXMania | |
10 | +{ | |
11 | + internal class CAct演奏Guitarスピーカー : CActivity | |
12 | + { | |
13 | + | |
14 | + protected CTexture スピーカー上; | |
15 | + protected CTexture スピーカー下; | |
16 | + protected CTexture txスピーカー背景; | |
17 | + public CCounter ctBPM; | |
18 | + public double UnitTime; | |
19 | + | |
20 | + public override void On活性化() | |
21 | + { | |
22 | + this.ctBPM = null; | |
23 | + this.UnitTime = 0.0; | |
24 | + base.On活性化(); | |
25 | + } | |
26 | + public override void OnManagedリソースの作成() | |
27 | + { | |
28 | + if (!base.b活性化してない) | |
29 | + { | |
30 | + this.スピーカー上 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_speakerU.png")); | |
31 | + this.スピーカー下 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_speakerD.png")); | |
32 | + this.txスピーカー背景 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_speaker.png")); | |
33 | + | |
34 | + base.OnManagedリソースの作成(); | |
35 | + } | |
36 | + } | |
37 | + public override void OnManagedリソースの解放() | |
38 | + { | |
39 | + if (!base.b活性化してない) | |
40 | + { | |
41 | + CDTXMania.tテクスチャの解放(ref this.スピーカー上); | |
42 | + CDTXMania.tテクスチャの解放(ref this.スピーカー下); | |
43 | + CDTXMania.tテクスチャの解放(ref this.txスピーカー背景); | |
44 | + | |
45 | + base.OnManagedリソースの解放(); | |
46 | + } | |
47 | + } | |
48 | + | |
49 | + // CActivity 実装(共通クラスからの差分のみ) | |
50 | + | |
51 | + public override int On進行描画() | |
52 | + { | |
53 | + if (!base.b活性化してない) | |
54 | + { | |
55 | + int num = (int)this.ctBPM.db現在の値; | |
56 | + | |
57 | + float num1 = 1 + (float)( Math.Sin(Math.PI * num / 14)); | |
58 | + | |
59 | + float f位置X = 218; | |
60 | + float f位置Y = 231; | |
61 | + float f下差Y = 23; | |
62 | + | |
63 | + if (this.スピーカー上 != null && this.スピーカー下 != null) | |
64 | + { | |
65 | + if (CDTXMania.DTX.bチップがある.Guitar) | |
66 | + { | |
67 | + if (this.txスピーカー背景 != null) | |
68 | + this.txスピーカー背景.t2D描画(CDTXMania.app.Device, 0, 0, new Rectangle(0, 0, 640, 720)); | |
69 | + | |
70 | + Matrix mat1u = Matrix.Identity; | |
71 | + //mat1u *= Matrix.Scaling( num1, num1, 1f); | |
72 | + mat1u *= Matrix.Translation(0f - f位置X, 0f + f位置Y, 0f); | |
73 | + | |
74 | + this.スピーカー上.t3D描画(CDTXMania.app.Device, mat1u); | |
75 | + | |
76 | + Matrix mat1d = Matrix.Identity; | |
77 | + //mat1d *= Matrix.Scaling( num1, num1, 1f); | |
78 | + mat1d *= Matrix.Translation(0f - f位置X, 0f - f位置Y - f下差Y, 0f); | |
79 | + | |
80 | + this.スピーカー下.t3D描画(CDTXMania.app.Device, mat1d); | |
81 | + } | |
82 | + | |
83 | + if (CDTXMania.DTX.bチップがある.Bass) | |
84 | + { | |
85 | + if (this.txスピーカー背景 != null) | |
86 | + this.txスピーカー背景.t2D描画(CDTXMania.app.Device, 640, 0, new Rectangle(640, 0, 640, 720)); | |
87 | + | |
88 | + Matrix mat2u = Matrix.Identity; | |
89 | + //mat2u *= Matrix.Scaling(num1, num1, 1f); | |
90 | + mat2u *= Matrix.Translation(0f + f位置X, 0f + f位置Y, 0f); | |
91 | + | |
92 | + this.スピーカー上.t3D描画(CDTXMania.app.Device, mat2u); | |
93 | + | |
94 | + Matrix mat2d = Matrix.Identity; | |
95 | + //mat2d *= Matrix.Scaling(num1, num1, 1f); | |
96 | + mat2d *= Matrix.Translation(0f + f位置X, 0f - f位置Y - f下差Y, 0f); | |
97 | + | |
98 | + this.スピーカー下.t3D描画(CDTXMania.app.Device, mat2d); | |
99 | + | |
100 | + } | |
101 | + } | |
102 | + } | |
103 | + return 0; | |
104 | + } | |
105 | + } | |
106 | +} |
@@ -401,6 +401,11 @@ | ||
401 | 401 | #endregion |
402 | 402 | |
403 | 403 | #region [ XGオプション ] |
404 | + this.iSystemSpeaker = new CItemToggle("Speaker", CDTXMania.ConfigIni.bSpeaker, | |
405 | + "スピーカーの表示を設定します。", | |
406 | + ""); | |
407 | + this.list項目リスト.Add(this.iSystemSpeaker); | |
408 | + | |
404 | 409 | this.iDrumsMoveDrumSet = new CItemList("DrumSetMove", CItemBase.Eパネル種別.通常, (int)CDTXMania.ConfigIni.eドラムセットを動かす, |
405 | 410 | "ドラムセットが動くかを設定します。\n" + |
406 | 411 | "ON: ドラムセットを動かします。\n" + |
@@ -2588,6 +2593,7 @@ | ||
2588 | 2593 | private CItemList iDrumsMoveDrumSet; |
2589 | 2594 | private CItemList iSystemBPMbar; |
2590 | 2595 | private CItemToggle iSystemLivePoint; |
2596 | + private CItemToggle iSystemSpeaker; | |
2591 | 2597 | private CItemList iSystemNamePlateType; |
2592 | 2598 | #endregion |
2593 | 2599 |
@@ -2839,6 +2845,7 @@ | ||
2839 | 2845 | #region [ XGオプション ] |
2840 | 2846 | CDTXMania.ConfigIni.eドラムセットを動かす = (Eタイプ)this.iDrumsMoveDrumSet.n現在選択されている項目番号; |
2841 | 2847 | CDTXMania.ConfigIni.bLivePoint = this.iSystemLivePoint.bON; |
2848 | + CDTXMania.ConfigIni.bSpeaker = this.iSystemSpeaker.bON; | |
2842 | 2849 | CDTXMania.ConfigIni.eBPMbar = (Eタイプ)this.iSystemBPMbar.n現在選択されている項目番号; |
2843 | 2850 | CDTXMania.ConfigIni.eNamePlate = (Eタイプ)this.iSystemNamePlateType.n現在選択されている項目番号; |
2844 | 2851 | #endregion |
@@ -575,6 +575,7 @@ | ||
575 | 575 | public Eタイプ eドラムセットを動かす; |
576 | 576 | public Eタイプ eBPMbar; |
577 | 577 | public bool bLivePoint; |
578 | + public bool bSpeaker; | |
578 | 579 | #endregion |
579 | 580 | |
580 | 581 | #region [ GDオプション ] |
@@ -1192,6 +1193,7 @@ | ||
1192 | 1193 | |
1193 | 1194 | #region [ XGオプション ] |
1194 | 1195 | this.bLivePoint = true; |
1196 | + this.bSpeaker = true; | |
1195 | 1197 | this.eNamePlate = Eタイプ.A; |
1196 | 1198 | #endregion |
1197 | 1199 |
@@ -1791,6 +1793,9 @@ | ||
1791 | 1793 | sw.WriteLine("; LivePointの表示(0:OFF, 1:ON)"); |
1792 | 1794 | sw.WriteLine("LivePoint={0}", this.bLivePoint ? 1 : 0); |
1793 | 1795 | sw.WriteLine(); |
1796 | + sw.WriteLine("; スピーカーの表示(0:OFF, 1:ON)"); | |
1797 | + sw.WriteLine("Speaker={0}", this.bSpeaker ? 1 : 0); | |
1798 | + sw.WriteLine(); | |
1794 | 1799 | #endregion |
1795 | 1800 | sw.WriteLine("; シャッターINSIDE(0~100)"); |
1796 | 1801 | sw.WriteLine("DrumsShutterIn={0}", (int)this.nShutterInSide.Drums); |
@@ -2838,6 +2843,10 @@ | ||
2838 | 2843 | { |
2839 | 2844 | this.bLivePoint = C変換.bONorOFF(str4[0]); |
2840 | 2845 | } |
2846 | + else if (str3.Equals("Speaker")) | |
2847 | + { | |
2848 | + this.bSpeaker = C変換.bONorOFF(str4[0]); | |
2849 | + } | |
2841 | 2850 | #endregion |
2842 | 2851 | else if (str3.Equals("DrumsStageEffect")) |
2843 | 2852 | { |