1
0
mirror of synced 2025-02-17 11:08:33 +01:00

deprecate old calibration method (calibration tja) that got replaced by input calibration on the regular menu

This commit is contained in:
0auBSQ 2024-10-23 03:04:09 +09:00
parent 12eec18ab9
commit 1314118073
7 changed files with 902 additions and 1001 deletions

File diff suppressed because it is too large Load Diff

View File

@ -783,8 +783,6 @@ namespace OpenTaiko {
}
OpenTaiko.IsPerformingCalibration = false;
OpenTaiko.stageSongSelect.actDifficultySelectionScreen.bIsDifficltSelect = false;
this.pfBoxName = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.SongSelect_BoxName_Scale);

View File

@ -48,17 +48,7 @@ namespace OpenTaiko {
var = OpenTaiko.stageSongSelect.r確定されたスコア.;
this.str曲タイトル = .;
this.strサブタイトル = .strサブタイトル;
}
// For the moment, detect that we are performing
// calibration via there being an actual single
// player and the special song title and subtitle
// of the .tja used to perform input calibration
OpenTaiko.IsPerformingCalibration =
!OpenTaiko.ConfigIni.bAutoPlay[0] &&
OpenTaiko.ConfigIni.nPlayerCount == 1 &&
str曲タイトル == "Input Calibration" &&
strサブタイトル == "TJAPlayer3 Developers";
}
this.strSTAGEFILE = CSkin.Path(@$"Graphics{Path.DirectorySeparatorChar}4_SongLoading{Path.DirectorySeparatorChar}Background.png");
@ -76,13 +66,9 @@ namespace OpenTaiko {
// calibration is about to begin, rather than
// displaying the song title and subtitle as usual.
var = OpenTaiko.IsPerformingCalibration
? "Input calibration is about to begin."
: this.str曲タイトル;
var = this.str曲タイトル;
var = OpenTaiko.IsPerformingCalibration
? "Please play as accurately as possible."
: this.strサブタイトル;
var = this.strサブタイトル;
if (!string.IsNullOrEmpty()) {
//this.txタイトル = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );
@ -108,7 +94,6 @@ namespace OpenTaiko {
Trace.TraceError("テクスチャの生成に失敗しました。({0})", new object[] { this.strSTAGEFILE });
this.txタイトル = null;
this.txサブタイトル = null;
this.tx背景 = null;
}
base.Activate();
@ -134,9 +119,8 @@ namespace OpenTaiko {
this.pfTITLE = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.SongLoading_Title_FontSize);
this.pfSUBTITLE = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.SongLoading_SubTitle_FontSize);
pfDanTitle = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.Game_DanC_Title_Size);
pfDanSubTitle = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.Game_DanC_SubTitle_Size);
this.tx背景 = OpenTaiko.tテクスチャの生成(this.strSTAGEFILE, false);
pfDanSubTitle = HPrivateFastFont.tInstantiateMainFont(OpenTaiko.Skin.Game_DanC_SubTitle_Size);
//this.txSongnamePlate = CDTXMania.tテクスチャの生成( CSkin.Path( @$"Graphics{Path.DirectorySeparatorChar}6_SongnamePlate.png" ) );
base.CreateManagedResource();
}
@ -147,7 +131,6 @@ namespace OpenTaiko {
pfDanTitle?.Dispose();
pfDanSubTitle?.Dispose();
OpenTaiko.tテクスチャの解放(ref this.tx背景);
base.ReleaseManagedResource();
}
public override int Draw() {
@ -547,8 +530,7 @@ namespace OpenTaiko {
private string str曲タイトル;
private string strサブタイトル;
private CTexture txタイトル;
private CTexture txサブタイトル;
private CTexture tx背景;
private CTexture txサブタイトル;
//private CTexture txSongnamePlate;
private DateTime timeBeginLoad;
private DateTime timeBeginLoadWAV;

View File

@ -505,12 +505,6 @@ namespace OpenTaiko {
var meanLag = CLagLogger.LogAndReturnMeanLag();
if (OpenTaiko.IsPerformingCalibration && meanLag != null) {
var oldInputAdjustTimeMs = OpenTaiko.ConfigIni.nInputAdjustTimeMs;
var newInputAdjustTimeMs = oldInputAdjustTimeMs - (int)Math.Round(meanLag.Value);
Trace.TraceInformation($"Calibration complete. Updating InputAdjustTime from {oldInputAdjustTimeMs}ms to {newInputAdjustTimeMs}ms.");
OpenTaiko.ConfigIni.nInputAdjustTimeMs = newInputAdjustTimeMs;
}
this.actDan.IsAnimating = false;// IsAnimating=trueのときにそのまま選曲画面に戻ると、文字列が描画されない問題修正用。
OpenTaiko.tテクスチャの解放(ref this.tx背景);
@ -941,23 +935,7 @@ namespace OpenTaiko {
internal ENoteJudge e指定時刻からChipのJUDGEを返す(long nTime, CDTX.CChip pChip, int player = 0) {
var e判定 = e指定時刻からChipのJUDGEを返すImpl(nTime, pChip, player);
// When performing calibration, reduce audio distraction from user input.
// For users who play primarily by watching notes cross the judgment position,
// you might think that we want them to see visual judgment feedback during
// calibration, but we do not. Humans are remarkably good at adjusting
// the timing of their own physical movement, even without realizing it.
// We are calibrating their input timing for the purposes of judgment.
// We do not want them subconsciously playing early so as to line up
// their hits with the perfect, good, etc. judgment results based on their
// current (and soon to be replaced) input adjust time values.
// Instead, we want them focused on the sounds of their keyboard, tatacon,
// other controller, etc. and the visuals of notes crossing the judgment position.
if (OpenTaiko.IsPerformingCalibration) {
return e判定 < ENoteJudge.Good ? ENoteJudge.Good : e判定;
} else {
return e判定;
}
return e判定;
}
private bool tEasyTimeZones(int nPlayer) {
@ -2865,13 +2843,7 @@ namespace OpenTaiko {
}
}
protected void tパネル文字列の設定() {
// When performing calibration, inform the player that
// calibration is taking place, rather than
// displaying the panel title or song title as usual.
var panelString = OpenTaiko.IsPerformingCalibration
? "Calibrating input..."
: string.IsNullOrEmpty(OpenTaiko.DTX.PANEL) ? OpenTaiko.DTX.TITLE.GetString("") : OpenTaiko.DTX.PANEL;
var panelString = string.IsNullOrEmpty(OpenTaiko.DTX.PANEL) ? OpenTaiko.DTX.TITLE.GetString("") : OpenTaiko.DTX.PANEL;
this.actPanel.SetPanelString(panelString,
OpenTaiko.stageSongSelect.rChoosenSong.str本当のジャンル,

View File

@ -1,427 +1,427 @@
using System.Runtime.InteropServices;
using FDK;
using Rectangle = System.Drawing.Rectangle;
namespace OpenTaiko {
internal class CActImplFireworks : CActivity {
// コンストラクタ
public CActImplFireworks() {
base.IsDeActivated = true;
}
// メソッド
/// <summary>
/// 大音符の花火エフェクト
/// </summary>
/// <param name="nLane"></param>
public virtual void Start(int nLane, int nPlayer) {
nY座標P2 = new int[] { 548, 612, 670, 712, 730, 780, 725, 690, 640 };
if (OpenTaiko.Tx.Effects_Hit_FireWorks != null && OpenTaiko.Tx.Effects_Hit_FireWorks != null) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 45; j++) {
if (!this.st大音符花火[j].b使用中) {
this.st大音符花火[j].b使用中 = true;
this.st大音符花火[j].ct進行 = new CCounter(0, 40, 18, OpenTaiko.Timer); // カウンタ
this.st大音符花火[j].fX = this.nX座標[i]; //X座標
this.st大音符花火[j].fY = nPlayer == 0 ? this.nY座標[i] : this.nY座標P2[i];
switch (nLane) {
case 0:
this.st大音符花火[j].nColor = 0;
break;
case 1:
this.st大音符花火[j].nColor = 1;
break;
}
switch (i) {
case 0:
this.st大音符花火[j].n開始フレーム = 0;
this.st大音符花火[j].n終了フレーム = 16;
break;
case 1:
this.st大音符花火[j].n開始フレーム = 3;
this.st大音符花火[j].n終了フレーム = 19;
break;
case 2:
this.st大音符花火[j].n開始フレーム = 6;
this.st大音符花火[j].n終了フレーム = 22;
break;
case 3:
this.st大音符花火[j].n開始フレーム = 9;
this.st大音符花火[j].n終了フレーム = 25;
break;
case 4:
this.st大音符花火[j].n開始フレーム = 12;
this.st大音符花火[j].n終了フレーム = 28;
break;
case 5:
this.st大音符花火[j].n開始フレーム = 15;
this.st大音符花火[j].n終了フレーム = 31;
break;
case 6:
this.st大音符花火[j].n開始フレーム = 18;
this.st大音符花火[j].n終了フレーム = 34;
break;
case 7:
this.st大音符花火[j].n開始フレーム = 21;
this.st大音符花火[j].n終了フレーム = 37;
break;
case 8:
this.st大音符花火[j].n開始フレーム = 24;
this.st大音符花火[j].n終了フレーム = 40;
break;
}
break;
}
}
}
}
}
public virtual void Start(int nLane, ENoteJudge judge, int player) {
for (int j = 0; j < 3 * 4; j++) {
if (!this.st状態[j].b使用中)
//for( int n = 0; n < 1; n++ )
{
this.st状態[j].b使用中 = true;
//this.st状態[ n ].ct進行 = new CCounter( 0, 9, 20, CDTXMania.Timer );
this.st状態[j].ct進行 = new CCounter(0, 6, 25, OpenTaiko.Timer);
this.st状態[j].judge = judge;
this.st状態[j].nPlayer = player;
this.st状態_大[j].nPlayer = player;
switch (nLane) {
case 0x11:
case 0x12:
this.st状態[j].nIsBig = 0;
break;
case 0x13:
case 0x14:
case 0x1A:
case 0x1B:
this.st状態_大[j].ct進行 = new CCounter(0, 9, 20, OpenTaiko.Timer);
this.st状態_大[j].judge = judge;
this.st状態_大[j].nIsBig = 1;
break;
}
break;
}
}
}
// CActivity 実装
public override void Activate() {
for (int i = 0; i < 3 * 4; i++) {
this.st状態[i].ct進行 = new CCounter();
this.st状態[i].b使用中 = false;
this.st状態_大[i].ct進行 = new CCounter();
}
for (int i = 0; i < 256; i++) {
this.st紙吹雪[i] = new ST紙吹雪();
this.st紙吹雪[i].b使用中 = false;
this.st紙吹雪[i].ct進行 = new CCounter();
}
base.Activate();
}
public override void DeActivate() {
for (int i = 0; i < 3 * 4; i++) {
this.st状態[i].ct進行 = null;
this.st状態_大[i].ct進行 = null;
}
for (int i = 0; i < 256; i++) {
this.st紙吹雪[i].ct進行 = null;
}
base.DeActivate();
}
public override void CreateManagedResource() {
base.CreateManagedResource();
}
public override void ReleaseManagedResource() {
base.ReleaseManagedResource();
}
public override int Draw() {
if (!base.IsDeActivated) {
int nWidth = (OpenTaiko.Tx.Effects_Hit_Explosion.szTextureSize.Width / 7);
int nHeight = (OpenTaiko.Tx.Effects_Hit_Explosion.szTextureSize.Height / 4);
int nBombWidth = (OpenTaiko.Tx.Effects_Hit_Bomb.szTextureSize.Width / 7);
int nBombHeight = (OpenTaiko.Tx.Effects_Hit_Bomb.szTextureSize.Height / 4);
for (int i = 0; i < 3 * 4; i++) {
if (this.st状態[i].b使用中) {
if (!this.st状態[i].ct進行.IsStoped) {
this.st状態[i].ct進行.Tick();
if (this.st状態[i].ct進行.IsEnded) {
this.st状態[i].ct進行.Stop();
this.st状態[i].b使用中 = false;
}
// (When performing calibration, reduce visual distraction
// and current judgment feedback near the judgment position.)
if (OpenTaiko.Tx.Effects_Hit_Explosion != null && !OpenTaiko.IsPerformingCalibration) {
int n = this.st状態[i].nIsBig == 1 ? (nHeight * 2) : 0;
int nX = 0;
int nY = 0;
if (OpenTaiko.ConfigIni.nPlayerCount == 5) {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[0] + (OpenTaiko.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[1] + (OpenTaiko.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
} else if (OpenTaiko.ConfigIni.nPlayerCount == 4 || OpenTaiko.ConfigIni.nPlayerCount == 3) {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[0] + (OpenTaiko.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[1] + (OpenTaiko.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
} else {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
nX += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
nY += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLY(this.st状態[i].nPlayer);
switch (st状態[i].judge) {
case ENoteJudge.Perfect:
case ENoteJudge.Great:
case ENoteJudge.Auto:
if (!OpenTaiko.ConfigIni.SimpleMode) OpenTaiko.Tx.Effects_Hit_Explosion.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nWidth, n, nWidth, nHeight));
break;
case ENoteJudge.Good:
OpenTaiko.Tx.Effects_Hit_Explosion.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nWidth, n + nHeight, nWidth, nHeight));
break;
case ENoteJudge.Mine:
OpenTaiko.Tx.Effects_Hit_Bomb?.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nBombWidth, 0, nBombWidth, nBombHeight));
break;
case ENoteJudge.Miss:
case ENoteJudge.Bad:
break;
}
}
}
}
}
for (int i = 0; i < 3 * 4; i++) {
if (!this.st状態_大[i].ct進行.IsStoped) {
this.st状態_大[i].ct進行.Tick();
if (this.st状態_大[i].ct進行.IsEnded) {
this.st状態_大[i].ct進行.Stop();
}
if (OpenTaiko.Tx.Effects_Hit_Explosion_Big != null && this.st状態_大[i].nIsBig == 1) {
switch (st状態_大[i].judge) {
case ENoteJudge.Perfect:
case ENoteJudge.Great:
case ENoteJudge.Auto:
if (this.st状態_大[i].nIsBig == 1 && !OpenTaiko.ConfigIni.SimpleMode) {
//float fX = 415 - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Width * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.X ) / 2.0f);
//float fY = TJAPlayer3.Skin.nJudgePointY[ this.st状態_大[ i ].nPlayer ] - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Height * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y ) / 2.0f);
//float fY = 257 - ((this.txアタックエフェクトUpper_big.sz画像サイズ.Height * this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y ) / 2.0f);
////7
float f倍率 = 0.5f + ((this.st状態_大[i].ct進行.CurrentValue * 0.5f) / 10.0f);
//this.txアタックエフェクトUpper_big.vc拡大縮小倍率.X = f倍率;
//this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y = f倍率;
//this.txアタックエフェクトUpper_big.n透明度 = (int)(255 * f倍率);
//this.txアタックエフェクトUpper_big.t2D描画( CDTXMania.app.Device, fX, fY );
/*
Matrix mat = Matrix.Identity;
mat *= Matrix.Scaling( f倍率, f倍率, f倍率 );
mat *= Matrix.Translation( TJAPlayer3.Skin.nScrollFieldX[0] - SampleFramework.GameWindowSize.Width / 2.0f, -(TJAPlayer3.Skin.nJudgePointY[ this.st状態[ i ].nPlayer ] - SampleFramework.GameWindowSize.Height / 2.0f), 0f );
//mat *= Matrix.Billboard( new Vector3( 15, 15, 15 ), new Vector3(0, 0, 0), new Vector3( 0, 0, 0 ), new Vector3( 0, 0, 0 ) );
//mat *= Matrix.Translation( 0f, 0f, 0f );
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.Opacity = 255;
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( mat );
*/
float x = 0;
float y = 0;
if (OpenTaiko.ConfigIni.nPlayerCount == 5) {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[0] + (OpenTaiko.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[1] + (OpenTaiko.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
} else if (OpenTaiko.ConfigIni.nPlayerCount == 4 || OpenTaiko.ConfigIni.nPlayerCount == 3) {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[0] + (OpenTaiko.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[1] + (OpenTaiko.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
} else {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
x += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
y += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLY(this.st状態[i].nPlayer);
x -= (OpenTaiko.Tx.Effects_Hit_Explosion_Big.szTextureSize.Width * (f倍率 - 1.0f) / 2.0f);
y -= (OpenTaiko.Tx.Effects_Hit_Explosion_Big.szTextureSize.Height * (f倍率 - 1.0f) / 2.0f);
OpenTaiko.Tx.Effects_Hit_Explosion_Big.vcScaleRatio.X = f倍率;
OpenTaiko.Tx.Effects_Hit_Explosion_Big.vcScaleRatio.Y = f倍率;
OpenTaiko.Tx.Effects_Hit_Explosion_Big.t2D描画(x, y);
}
break;
case ENoteJudge.Good:
break;
case ENoteJudge.Miss:
case ENoteJudge.Bad:
break;
}
}
}
}
for (int i = 0; i < 45; i++) {
if (OpenTaiko.Skin.nScrollFieldX[0] != 414)
break;
if (this.st大音符花火[i].b使用中) {
this.st大音符花火[i].n前回のValue = this.st大音符花火[i].ct進行.CurrentValue;
this.st大音符花火[i].ct進行.Tick();
if (this.st大音符花火[i].ct進行.IsEnded) {
this.st大音符花火[i].ct進行.Stop();
this.st大音符花火[i].b使用中 = false;
}
/*
Matrix mat = Matrix.Identity;
mat *= Matrix.Translation(this.st大音符花火[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st大音符花火[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f);
*/
float fX = this.st大音符花火[i].fX - (192 / 2);
float fY = this.st大音符花火[i].fY - (192 / 2);
//if(CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ] != null && this.st大音符花火[ i ].nColor == 0 )
//{
// if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 )
// {
// //this.tx大音符花火[ 0 ].t3D描画(CDTXMania.app.Device, mat, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ));
// //this.tx大音符花火[ 0 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// }
//}
////if(CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ] != null && this.st大音符花火[ i ].nColor == 1 )
//{
// if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 )
// {
// //this.tx大音符花火[ 1 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, );
// //CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// }
//}
}
}
for (int i = 0; i < 256; i++) {
if (this.st紙吹雪[i].b使用中) {
this.st紙吹雪[i].n前回のValue = this.st紙吹雪[i].ct進行.CurrentValue;
this.st紙吹雪[i].ct進行.Tick();
if (this.st紙吹雪[i].ct進行.IsEnded) {
this.st紙吹雪[i].ct進行.Stop();
this.st紙吹雪[i].b使用中 = false;
} else if (this.st紙吹雪[i].fX > 1300 || this.st紙吹雪[i].fX < -20) {
this.st紙吹雪[i].ct進行.Stop();
this.st紙吹雪[i].b使用中 = false;
}
for (int n = this.st紙吹雪[i].n前回のValue; n < this.st紙吹雪[i].ct進行.CurrentValue; n++) {
this.st紙吹雪[i].fX -= this.st紙吹雪[i].f加速度X;
this.st紙吹雪[i].fY -= this.st紙吹雪[i].f加速度Y;
this.st紙吹雪[i].f加速度X *= this.st紙吹雪[i].f加速度の加速度X;
this.st紙吹雪[i].f加速度Y *= this.st紙吹雪[i].f加速度の加速度Y;
this.st紙吹雪[i].f加速度Y -= this.st紙吹雪[i].f重力加速度;
}
/*
Matrix mat = Matrix.Identity;
float x = (float)(this.st紙吹雪[i].f半径 * Math.Cos((Math.PI / 2 * this.st紙吹雪[i].ct進行.n現在の値) / 100.0)) * 2.3f;
mat *= Matrix.Scaling(x, x, 1f);
mat *= Matrix.Translation(this.st紙吹雪[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st紙吹雪[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f);
*/
/*if (this.tx紙吹雪 != null)
{
this.tx紙吹雪.t3D描画(CDTXMania.app.Device, mat, new Rectangle( 32 * this.st紙吹雪[ i ].nGraphic, 32 * this.st紙吹雪[ i ].nColor, 32, 32 ));
} */
}
}
}
return 0;
}
// その他
#region [ private ]
//-----------------
//private CTextureAf txアタックエフェクトUpper;
//private CTexture txアタックエフェクトUpper_big;
//private CTextureAf[] tx大音符花火 = new CTextureAf[2];
//private CTexture tx紙吹雪;
protected STSTATUS[] st状態 = new STSTATUS[3 * 4];
protected STSTATUS_B[] st状態_大 = new STSTATUS_B[3 * 4];
private ST大音符花火[] st大音符花火 = new ST大音符花火[45];
protected int[] nX座標 = new int[] { 450, 521, 596, 686, 778, 863, 970, 1070, 1150 };
protected int[] nY座標 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 };
protected int[] nY座標P2 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 };
[StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS {
public bool b使用中;
public CCounter ct進行;
public ENoteJudge judge;
public int nIsBig;
public int n透明度;
public int nPlayer;
}
[StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS_B {
public CCounter ct進行;
public ENoteJudge judge;
public int nIsBig;
public int n透明度;
public int nPlayer;
}
[StructLayout(LayoutKind.Sequential)]
private struct ST大音符花火 {
public int nColor;
public bool b使用中;
public CCounter ct進行;
public int n前回のValue;
public float fX;
public float fY;
public int n開始フレーム;
public int n終了フレーム;
}
private ST紙吹雪[] st紙吹雪 = new ST紙吹雪[256];
[StructLayout(LayoutKind.Sequential)]
private struct ST紙吹雪 {
public int nGraphic;
public int nColor;
public bool b使用中;
public CCounter ct進行;
public int n前回のValue;
public float fX;
public float fY;
public float f加速度X;
public float f加速度Y;
public float f加速度の加速度X;
public float f加速度の加速度Y;
public float f重力加速度;
public float f半径;
public float f角度;
}
//-----------------
#endregion
}
}
using System.Runtime.InteropServices;
using FDK;
using Rectangle = System.Drawing.Rectangle;
namespace OpenTaiko {
internal class CActImplFireworks : CActivity {
// コンストラクタ
public CActImplFireworks() {
base.IsDeActivated = true;
}
// メソッド
/// <summary>
/// 大音符の花火エフェクト
/// </summary>
/// <param name="nLane"></param>
public virtual void Start(int nLane, int nPlayer) {
nY座標P2 = new int[] { 548, 612, 670, 712, 730, 780, 725, 690, 640 };
if (OpenTaiko.Tx.Effects_Hit_FireWorks != null && OpenTaiko.Tx.Effects_Hit_FireWorks != null) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 45; j++) {
if (!this.st大音符花火[j].b使用中) {
this.st大音符花火[j].b使用中 = true;
this.st大音符花火[j].ct進行 = new CCounter(0, 40, 18, OpenTaiko.Timer); // カウンタ
this.st大音符花火[j].fX = this.nX座標[i]; //X座標
this.st大音符花火[j].fY = nPlayer == 0 ? this.nY座標[i] : this.nY座標P2[i];
switch (nLane) {
case 0:
this.st大音符花火[j].nColor = 0;
break;
case 1:
this.st大音符花火[j].nColor = 1;
break;
}
switch (i) {
case 0:
this.st大音符花火[j].n開始フレーム = 0;
this.st大音符花火[j].n終了フレーム = 16;
break;
case 1:
this.st大音符花火[j].n開始フレーム = 3;
this.st大音符花火[j].n終了フレーム = 19;
break;
case 2:
this.st大音符花火[j].n開始フレーム = 6;
this.st大音符花火[j].n終了フレーム = 22;
break;
case 3:
this.st大音符花火[j].n開始フレーム = 9;
this.st大音符花火[j].n終了フレーム = 25;
break;
case 4:
this.st大音符花火[j].n開始フレーム = 12;
this.st大音符花火[j].n終了フレーム = 28;
break;
case 5:
this.st大音符花火[j].n開始フレーム = 15;
this.st大音符花火[j].n終了フレーム = 31;
break;
case 6:
this.st大音符花火[j].n開始フレーム = 18;
this.st大音符花火[j].n終了フレーム = 34;
break;
case 7:
this.st大音符花火[j].n開始フレーム = 21;
this.st大音符花火[j].n終了フレーム = 37;
break;
case 8:
this.st大音符花火[j].n開始フレーム = 24;
this.st大音符花火[j].n終了フレーム = 40;
break;
}
break;
}
}
}
}
}
public virtual void Start(int nLane, ENoteJudge judge, int player) {
for (int j = 0; j < 3 * 4; j++) {
if (!this.st状態[j].b使用中)
//for( int n = 0; n < 1; n++ )
{
this.st状態[j].b使用中 = true;
//this.st状態[ n ].ct進行 = new CCounter( 0, 9, 20, CDTXMania.Timer );
this.st状態[j].ct進行 = new CCounter(0, 6, 25, OpenTaiko.Timer);
this.st状態[j].judge = judge;
this.st状態[j].nPlayer = player;
this.st状態_大[j].nPlayer = player;
switch (nLane) {
case 0x11:
case 0x12:
this.st状態[j].nIsBig = 0;
break;
case 0x13:
case 0x14:
case 0x1A:
case 0x1B:
this.st状態_大[j].ct進行 = new CCounter(0, 9, 20, OpenTaiko.Timer);
this.st状態_大[j].judge = judge;
this.st状態_大[j].nIsBig = 1;
break;
}
break;
}
}
}
// CActivity 実装
public override void Activate() {
for (int i = 0; i < 3 * 4; i++) {
this.st状態[i].ct進行 = new CCounter();
this.st状態[i].b使用中 = false;
this.st状態_大[i].ct進行 = new CCounter();
}
for (int i = 0; i < 256; i++) {
this.st紙吹雪[i] = new ST紙吹雪();
this.st紙吹雪[i].b使用中 = false;
this.st紙吹雪[i].ct進行 = new CCounter();
}
base.Activate();
}
public override void DeActivate() {
for (int i = 0; i < 3 * 4; i++) {
this.st状態[i].ct進行 = null;
this.st状態_大[i].ct進行 = null;
}
for (int i = 0; i < 256; i++) {
this.st紙吹雪[i].ct進行 = null;
}
base.DeActivate();
}
public override void CreateManagedResource() {
base.CreateManagedResource();
}
public override void ReleaseManagedResource() {
base.ReleaseManagedResource();
}
public override int Draw() {
if (!base.IsDeActivated) {
int nWidth = (OpenTaiko.Tx.Effects_Hit_Explosion.szTextureSize.Width / 7);
int nHeight = (OpenTaiko.Tx.Effects_Hit_Explosion.szTextureSize.Height / 4);
int nBombWidth = (OpenTaiko.Tx.Effects_Hit_Bomb.szTextureSize.Width / 7);
int nBombHeight = (OpenTaiko.Tx.Effects_Hit_Bomb.szTextureSize.Height / 4);
for (int i = 0; i < 3 * 4; i++) {
if (this.st状態[i].b使用中) {
if (!this.st状態[i].ct進行.IsStoped) {
this.st状態[i].ct進行.Tick();
if (this.st状態[i].ct進行.IsEnded) {
this.st状態[i].ct進行.Stop();
this.st状態[i].b使用中 = false;
}
// (When performing calibration, reduce visual distraction
// and current judgment feedback near the judgment position.)
if (OpenTaiko.Tx.Effects_Hit_Explosion != null) {
int n = this.st状態[i].nIsBig == 1 ? (nHeight * 2) : 0;
int nX = 0;
int nY = 0;
if (OpenTaiko.ConfigIni.nPlayerCount == 5) {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[0] + (OpenTaiko.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[1] + (OpenTaiko.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
} else if (OpenTaiko.ConfigIni.nPlayerCount == 4 || OpenTaiko.ConfigIni.nPlayerCount == 3) {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[0] + (OpenTaiko.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[1] + (OpenTaiko.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
} else {
nX = OpenTaiko.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
nY = OpenTaiko.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
nX += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
nY += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLY(this.st状態[i].nPlayer);
switch (st状態[i].judge) {
case ENoteJudge.Perfect:
case ENoteJudge.Great:
case ENoteJudge.Auto:
if (!OpenTaiko.ConfigIni.SimpleMode) OpenTaiko.Tx.Effects_Hit_Explosion.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nWidth, n, nWidth, nHeight));
break;
case ENoteJudge.Good:
OpenTaiko.Tx.Effects_Hit_Explosion.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nWidth, n + nHeight, nWidth, nHeight));
break;
case ENoteJudge.Mine:
OpenTaiko.Tx.Effects_Hit_Bomb?.t2D描画(nX, nY, new Rectangle(this.st状態[i].ct進行.CurrentValue * nBombWidth, 0, nBombWidth, nBombHeight));
break;
case ENoteJudge.Miss:
case ENoteJudge.Bad:
break;
}
}
}
}
}
for (int i = 0; i < 3 * 4; i++) {
if (!this.st状態_大[i].ct進行.IsStoped) {
this.st状態_大[i].ct進行.Tick();
if (this.st状態_大[i].ct進行.IsEnded) {
this.st状態_大[i].ct進行.Stop();
}
if (OpenTaiko.Tx.Effects_Hit_Explosion_Big != null && this.st状態_大[i].nIsBig == 1) {
switch (st状態_大[i].judge) {
case ENoteJudge.Perfect:
case ENoteJudge.Great:
case ENoteJudge.Auto:
if (this.st状態_大[i].nIsBig == 1 && !OpenTaiko.ConfigIni.SimpleMode) {
//float fX = 415 - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Width * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.X ) / 2.0f);
//float fY = TJAPlayer3.Skin.nJudgePointY[ this.st状態_大[ i ].nPlayer ] - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Height * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y ) / 2.0f);
//float fY = 257 - ((this.txアタックエフェクトUpper_big.sz画像サイズ.Height * this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y ) / 2.0f);
////7
float f倍率 = 0.5f + ((this.st状態_大[i].ct進行.CurrentValue * 0.5f) / 10.0f);
//this.txアタックエフェクトUpper_big.vc拡大縮小倍率.X = f倍率;
//this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y = f倍率;
//this.txアタックエフェクトUpper_big.n透明度 = (int)(255 * f倍率);
//this.txアタックエフェクトUpper_big.t2D描画( CDTXMania.app.Device, fX, fY );
/*
Matrix mat = Matrix.Identity;
mat *= Matrix.Scaling( f倍率, f倍率, f倍率 );
mat *= Matrix.Translation( TJAPlayer3.Skin.nScrollFieldX[0] - SampleFramework.GameWindowSize.Width / 2.0f, -(TJAPlayer3.Skin.nJudgePointY[ this.st状態[ i ].nPlayer ] - SampleFramework.GameWindowSize.Height / 2.0f), 0f );
//mat *= Matrix.Billboard( new Vector3( 15, 15, 15 ), new Vector3(0, 0, 0), new Vector3( 0, 0, 0 ), new Vector3( 0, 0, 0 ) );
//mat *= Matrix.Translation( 0f, 0f, 0f );
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.Opacity = 255;
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( mat );
*/
float x = 0;
float y = 0;
if (OpenTaiko.ConfigIni.nPlayerCount == 5) {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[0] + (OpenTaiko.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_5P[1] + (OpenTaiko.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
} else if (OpenTaiko.ConfigIni.nPlayerCount == 4 || OpenTaiko.ConfigIni.nPlayerCount == 3) {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[0] + (OpenTaiko.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_4P[1] + (OpenTaiko.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
} else {
x = OpenTaiko.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
y = OpenTaiko.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
x += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
y += OpenTaiko.stage演奏ドラム画面.GetJPOSCROLLY(this.st状態[i].nPlayer);
x -= (OpenTaiko.Tx.Effects_Hit_Explosion_Big.szTextureSize.Width * (f倍率 - 1.0f) / 2.0f);
y -= (OpenTaiko.Tx.Effects_Hit_Explosion_Big.szTextureSize.Height * (f倍率 - 1.0f) / 2.0f);
OpenTaiko.Tx.Effects_Hit_Explosion_Big.vcScaleRatio.X = f倍率;
OpenTaiko.Tx.Effects_Hit_Explosion_Big.vcScaleRatio.Y = f倍率;
OpenTaiko.Tx.Effects_Hit_Explosion_Big.t2D描画(x, y);
}
break;
case ENoteJudge.Good:
break;
case ENoteJudge.Miss:
case ENoteJudge.Bad:
break;
}
}
}
}
for (int i = 0; i < 45; i++) {
if (OpenTaiko.Skin.nScrollFieldX[0] != 414)
break;
if (this.st大音符花火[i].b使用中) {
this.st大音符花火[i].n前回のValue = this.st大音符花火[i].ct進行.CurrentValue;
this.st大音符花火[i].ct進行.Tick();
if (this.st大音符花火[i].ct進行.IsEnded) {
this.st大音符花火[i].ct進行.Stop();
this.st大音符花火[i].b使用中 = false;
}
/*
Matrix mat = Matrix.Identity;
mat *= Matrix.Translation(this.st大音符花火[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st大音符花火[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f);
*/
float fX = this.st大音符花火[i].fX - (192 / 2);
float fY = this.st大音符花火[i].fY - (192 / 2);
//if(CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ] != null && this.st大音符花火[ i ].nColor == 0 )
//{
// if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 )
// {
// //this.tx大音符花火[ 0 ].t3D描画(CDTXMania.app.Device, mat, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ));
// //this.tx大音符花火[ 0 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// }
//}
////if(CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ] != null && this.st大音符花火[ i ].nColor == 1 )
//{
// if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 )
// {
// //this.tx大音符花火[ 1 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, );
// //CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) );
// }
//}
}
}
for (int i = 0; i < 256; i++) {
if (this.st紙吹雪[i].b使用中) {
this.st紙吹雪[i].n前回のValue = this.st紙吹雪[i].ct進行.CurrentValue;
this.st紙吹雪[i].ct進行.Tick();
if (this.st紙吹雪[i].ct進行.IsEnded) {
this.st紙吹雪[i].ct進行.Stop();
this.st紙吹雪[i].b使用中 = false;
} else if (this.st紙吹雪[i].fX > 1300 || this.st紙吹雪[i].fX < -20) {
this.st紙吹雪[i].ct進行.Stop();
this.st紙吹雪[i].b使用中 = false;
}
for (int n = this.st紙吹雪[i].n前回のValue; n < this.st紙吹雪[i].ct進行.CurrentValue; n++) {
this.st紙吹雪[i].fX -= this.st紙吹雪[i].f加速度X;
this.st紙吹雪[i].fY -= this.st紙吹雪[i].f加速度Y;
this.st紙吹雪[i].f加速度X *= this.st紙吹雪[i].f加速度の加速度X;
this.st紙吹雪[i].f加速度Y *= this.st紙吹雪[i].f加速度の加速度Y;
this.st紙吹雪[i].f加速度Y -= this.st紙吹雪[i].f重力加速度;
}
/*
Matrix mat = Matrix.Identity;
float x = (float)(this.st紙吹雪[i].f半径 * Math.Cos((Math.PI / 2 * this.st紙吹雪[i].ct進行.n現在の値) / 100.0)) * 2.3f;
mat *= Matrix.Scaling(x, x, 1f);
mat *= Matrix.Translation(this.st紙吹雪[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st紙吹雪[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f);
*/
/*if (this.tx紙吹雪 != null)
{
this.tx紙吹雪.t3D描画(CDTXMania.app.Device, mat, new Rectangle( 32 * this.st紙吹雪[ i ].nGraphic, 32 * this.st紙吹雪[ i ].nColor, 32, 32 ));
} */
}
}
}
return 0;
}
// その他
#region [ private ]
//-----------------
//private CTextureAf txアタックエフェクトUpper;
//private CTexture txアタックエフェクトUpper_big;
//private CTextureAf[] tx大音符花火 = new CTextureAf[2];
//private CTexture tx紙吹雪;
protected STSTATUS[] st状態 = new STSTATUS[3 * 4];
protected STSTATUS_B[] st状態_大 = new STSTATUS_B[3 * 4];
private ST大音符花火[] st大音符花火 = new ST大音符花火[45];
protected int[] nX座標 = new int[] { 450, 521, 596, 686, 778, 863, 970, 1070, 1150 };
protected int[] nY座標 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 };
protected int[] nY座標P2 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 };
[StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS {
public bool b使用中;
public CCounter ct進行;
public ENoteJudge judge;
public int nIsBig;
public int n透明度;
public int nPlayer;
}
[StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS_B {
public CCounter ct進行;
public ENoteJudge judge;
public int nIsBig;
public int n透明度;
public int nPlayer;
}
[StructLayout(LayoutKind.Sequential)]
private struct ST大音符花火 {
public int nColor;
public bool b使用中;
public CCounter ct進行;
public int n前回のValue;
public float fX;
public float fY;
public int n開始フレーム;
public int n終了フレーム;
}
private ST紙吹雪[] st紙吹雪 = new ST紙吹雪[256];
[StructLayout(LayoutKind.Sequential)]
private struct ST紙吹雪 {
public int nGraphic;
public int nColor;
public bool b使用中;
public CCounter ct進行;
public int n前回のValue;
public float fX;
public float fY;
public float f加速度X;
public float f加速度Y;
public float f加速度の加速度X;
public float f加速度の加速度Y;
public float f重力加速度;
public float f半径;
public float f角度;
}
//-----------------
#endregion
}
}

View File

@ -288,49 +288,21 @@ namespace OpenTaiko {
// their drum sound effects with the sounds of the input calibration file.
// Instead, we want them focused on the sounds of their keyboard, tatacon,
// other controller, etc. and the sounds of the input calibration audio file.
if (!OpenTaiko.IsPerformingCalibration) {
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
int actual = OpenTaiko.GetActualPlayer(i);
var hs = OpenTaiko.Skin.hsHitSoundsInformations;
for (int i = 0; i < OpenTaiko.ConfigIni.nPlayerCount; i++) {
int actual = OpenTaiko.GetActualPlayer(i);
//this.soundRed[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual]), ESoundGroup.SoundEffect);
//this.soundBlue[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual]), ESoundGroup.SoundEffect);
//this.soundAdlib[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual]), ESoundGroup.SoundEffect);
//this.soundClap[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual]), ESoundGroup.SoundEffect);
var hs = OpenTaiko.Skin.hsHitSoundsInformations;
this.soundRed[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.don[actual]), ESoundGroup.SoundEffect);
this.soundBlue[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.ka[actual]), ESoundGroup.SoundEffect);
this.soundAdlib[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.adlib[actual]), ESoundGroup.SoundEffect);
this.soundClap[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.clap[actual]), ESoundGroup.SoundEffect);
int _panning = OpenTaiko.ConfigIni.nPanning[OpenTaiko.ConfigIni.nPlayerCount - 1][i];
if (this.soundRed[i] != null) this.soundRed[i].SoundPosition = _panning;
if (this.soundBlue[i] != null) this.soundBlue[i].SoundPosition = _panning;
if (this.soundAdlib[i] != null) this.soundAdlib[i].SoundPosition = _panning;
if (this.soundClap[i] != null) this.soundClap[i].SoundPosition = _panning;
}
/*
this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\dong.ogg" ), ESoundGroup.SoundEffect );
this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\ka.ogg" ), ESoundGroup.SoundEffect );
this.soundAdlib = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path(@"Sounds\Taiko\Adlib.ogg"), ESoundGroup.SoundEffect );
this.soundRed2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\dong.ogg"), ESoundGroup.SoundEffect);
this.soundBlue2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\ka.ogg"), ESoundGroup.SoundEffect);
this.soundAdlib2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\Adlib.ogg"), ESoundGroup.SoundEffect);
*/
this.soundRed[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.don[actual]), ESoundGroup.SoundEffect);
this.soundBlue[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.ka[actual]), ESoundGroup.SoundEffect);
this.soundAdlib[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.adlib[actual]), ESoundGroup.SoundEffect);
this.soundClap[i] = OpenTaiko.SoundManager.tCreateSound((@$"Global{Path.DirectorySeparatorChar}HitSounds{Path.DirectorySeparatorChar}" + hs.clap[actual]), ESoundGroup.SoundEffect);
/*
if (TJAPlayer3.ConfigIni.nPlayerCount == 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。
{
this.soundRed[0].n位置 = -100;
this.soundBlue[0].n位置 = -100;
this.soundAdlib[0].n位置 = -100;
this.soundRed[1].n位置 = 100;
this.soundBlue[1].n位置 = 100;
this.soundAdlib[1].n位置 = 100;
}
*/
int _panning = OpenTaiko.ConfigIni.nPanning[OpenTaiko.ConfigIni.nPlayerCount - 1][i];
if (this.soundRed[i] != null) this.soundRed[i].SoundPosition = _panning;
if (this.soundBlue[i] != null) this.soundBlue[i].SoundPosition = _panning;
if (this.soundAdlib[i] != null) this.soundAdlib[i].SoundPosition = _panning;
if (this.soundClap[i] != null) this.soundClap[i].SoundPosition = _panning;
}
}
public override void DeActivate() {
@ -352,20 +324,6 @@ namespace OpenTaiko {
LoudnessMetadataScanner.StartBackgroundScanning();
}
public override void CreateManagedResource() {
//this.t背景テクスチャの生成();
//this.tx太鼓ーツ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_taiko_notes.png" ) );
//this.txHand = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_taiko_notes_arm.png" ) );
//this.txSenotes = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_senotes.png" ) );
//this.tx小節線 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_bar_line.png" ) );
//this.tx小節線_branch = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_bar_line_branch.png" ) );
// this.tx判定数小文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Result_number_s.png" ) );
// this.txNamePlate = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_NamePlate.png" ) );
// if (CDTXMania.stage演奏ドラム画面.bDoublePlay)
// this.txNamePlate2P = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_NamePlate2P.png" ) );
// this.txPlayerNumber = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_PlayerNumber.png"));
// this.tx判定数表示パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Paramater Panel.png" ) );
base.CreateManagedResource();
}
public override void ReleaseManagedResource() {

View File

@ -20,14 +20,7 @@ namespace OpenTaiko {
public override void Activate() {
// After performing calibration, inform the player that
// calibration has been completed, rather than
// displaying the song title as usual.
var title = OpenTaiko.IsPerformingCalibration
? $"Calibration complete. InputAdjustTime is now {OpenTaiko.ConfigIni.nInputAdjustTimeMs}ms (Note : InputAdjust is deprecated, please transfer the value to GlobalOffset and reload the songs"
: OpenTaiko.DTX.TITLE.GetString("");
var title = OpenTaiko.DTX.TITLE.GetString("");
using (var bmpSongTitle = pfMusicName.DrawText(title, OpenTaiko.Skin.Result_MusicName_ForeColor, OpenTaiko.Skin.Result_MusicName_BackColor, null, 30)) {
this.txMusicName = OpenTaiko.tテクスチャの生成(bmpSongTitle, false);