Point ptDispEnd = this.stLayer[ i ].pt表示側終了位置;\r
long timeTotal = this.stLayer[ i ].n総移動時間ms;\r
long timeMoveStart = this.stLayer[ i ].n移動開始時刻ms;\r
+ \r
if( CDTXMania.Timer.n現在時刻 < timeMoveStart )\r
{\r
timeMoveStart = CDTXMania.Timer.n現在時刻;\r
}\r
// Size size3 = new Size( 0x116, 0x163 );\r
- Size size3 = new Size(556, 710);\r
- // #34192 2015/10/30 (chnrm0)\r
+ Size size表示域 = new Size(556, 710);\r
+ // chnrm0 : #34192\r
// 表示域を2倍に変更した。\r
// x,yについては次のように変更した。\r
// 338,57 => 1014+139,128 (Dr.) 139は278の半分で、GR領域の中央によせるためにすこし右側にずらした。\r
// 181,50 => 682, 112 (Gt.)\r
- Size size4 = new Size( ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n幅 : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Width, ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n高さ : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Height );\r
- int num4 = (int) ( ( CDTXMania.Timer.n現在時刻 - timeMoveStart ) * ( ( (double) CDTXMania.ConfigIni.n演奏速度 ) / 20.0 ) );\r
- if( ( timeTotal != 0 ) && ( timeTotal < num4 ) )\r
+ Size sizeBMP = new Size(\r
+ ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n幅 : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Width,\r
+ ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n高さ : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Height );\r
+\r
+ int n再生位置 = (int) ( ( CDTXMania.Timer.n現在時刻 - timeMoveStart ) * ( ( (double) CDTXMania.ConfigIni.n演奏速度 ) / 20.0 ) );\r
+ \r
+ if( ( timeTotal != 0 ) && ( timeTotal < n再生位置 ) )\r
{\r
this.stLayer[ i ].pt画像側開始位置 = ptImgStart = ptImgEnd;\r
this.stLayer[ i ].pt表示側開始位置 = ptDispStart = ptDispEnd;\r
this.stLayer[ i ].sz開始サイズ = sizeStart = sizeEnd;\r
this.stLayer[ i ].n総移動時間ms = timeTotal = 0;\r
}\r
- Rectangle rectangle = new Rectangle();\r
- Rectangle rectangle2 = new Rectangle();\r
+ \r
+ Rectangle rect画像側 = new Rectangle();\r
+ Rectangle rect表示側 = new Rectangle();\r
+ \r
if( timeTotal == 0 )\r
{\r
- rectangle.X = ptImgStart.X;\r
- rectangle.Y = ptImgStart.Y;\r
- rectangle.Width = sizeStart.Width;\r
- rectangle.Height = sizeStart.Height;\r
- rectangle2.X = ptDispStart.X;\r
- rectangle2.Y = ptDispStart.Y;\r
- rectangle2.Width = sizeStart.Width;\r
- rectangle2.Height = sizeStart.Height;\r
+ rect画像側.X = ptImgStart.X;\r
+ rect画像側.Y = ptImgStart.Y;\r
+ rect画像側.Width = sizeStart.Width;\r
+ rect画像側.Height = sizeStart.Height;\r
+ rect表示側.X = ptDispStart.X;\r
+ rect表示側.Y = ptDispStart.Y;\r
+ rect表示側.Width = sizeStart.Width;\r
+ rect表示側.Height = sizeStart.Height;\r
}\r
else\r
{\r
- double coefSizeWhileMoving = ( (double) num4 ) / ( (double) timeTotal );\r
+ double coefSizeWhileMoving = ( (double) n再生位置 ) / ( (double) timeTotal );\r
Size sizeWhileMoving = new Size( sizeStart.Width + ( (int) ( ( sizeEnd.Width - sizeStart.Width ) * coefSizeWhileMoving ) ), sizeStart.Height + ( (int) ( ( sizeEnd.Height - sizeStart.Height ) * coefSizeWhileMoving ) ) );\r
- rectangle.X = ptImgStart.X + ( (int) ( ( ptImgEnd.X - ptImgStart.X ) * coefSizeWhileMoving ) );\r
- rectangle.Y = ptImgStart.Y + ( (int) ( ( ptImgEnd.Y - ptImgStart.Y ) * coefSizeWhileMoving ) );\r
- rectangle.Width = sizeWhileMoving.Width;\r
- rectangle.Height = sizeWhileMoving.Height;\r
- rectangle2.X = ptDispStart.X + ( (int) ( ( ptDispEnd.X - ptDispStart.X ) * coefSizeWhileMoving ) );\r
- rectangle2.Y = ptDispStart.Y + ( (int) ( ( ptDispEnd.Y - ptDispStart.Y ) * coefSizeWhileMoving ) );\r
- rectangle2.Width = sizeWhileMoving.Width;\r
- rectangle2.Height = sizeWhileMoving.Height;\r
+ rect画像側.X = ptImgStart.X + ( (int) ( ( ptImgEnd.X - ptImgStart.X ) * coefSizeWhileMoving ) );\r
+ rect画像側.Y = ptImgStart.Y + ( (int) ( ( ptImgEnd.Y - ptImgStart.Y ) * coefSizeWhileMoving ) );\r
+ rect画像側.Width = sizeWhileMoving.Width;\r
+ rect画像側.Height = sizeWhileMoving.Height;\r
+ rect表示側.X = ptDispStart.X + ( (int) ( ( ptDispEnd.X - ptDispStart.X ) * coefSizeWhileMoving ) );\r
+ rect表示側.Y = ptDispStart.Y + ( (int) ( ( ptDispEnd.Y - ptDispStart.Y ) * coefSizeWhileMoving ) );\r
+ rect表示側.Width = sizeWhileMoving.Width;\r
+ rect表示側.Height = sizeWhileMoving.Height;\r
}\r
- if( ( ( ( rectangle.Right > 0 ) && ( rectangle.Bottom > 0 ) ) && ( ( rectangle.Left < size4.Width ) && ( rectangle.Top < size4.Height ) ) ) && ( ( ( rectangle2.Right > 0 ) && ( rectangle2.Bottom > 0 ) ) && ( ( rectangle2.Left < size3.Width ) && ( rectangle2.Top < size3.Height ) ) ) )\r
+ if(\r
+ ( rect画像側.Right > 0 ) &&\r
+ ( rect画像側.Bottom > 0 ) &&\r
+ ( rect画像側.Left < sizeBMP.Width ) &&\r
+ ( rect画像側.Top < sizeBMP.Height ) && \r
+ ( rect表示側.Right > 0 ) &&\r
+ ( rect表示側.Bottom > 0 ) &&\r
+ ( rect表示側.Left < size表示域.Width ) &&\r
+ ( rect表示側.Top < size表示域.Height )\r
+ )\r
{\r
- if( rectangle.X < 0 )\r
+ // 画像側の表示指定が画像の境界をまたいでいる場合補正\r
+ if( rect画像側.X < 0 )\r
{\r
- rectangle2.Width -= -rectangle.X;\r
- rectangle2.X += -rectangle.X;\r
- rectangle.Width -= -rectangle.X;\r
- rectangle.X = 0;\r
+ rect表示側.Width -= -rect画像側.X;\r
+ rect表示側.X += -rect画像側.X;\r
+ rect画像側.Width -= -rect画像側.X;\r
+ rect画像側.X = 0;\r
}\r
- if( rectangle.Y < 0 )\r
+ if( rect画像側.Y < 0 )\r
{\r
- rectangle2.Height -= -rectangle.Y;\r
- rectangle2.Y += -rectangle.Y;\r
- rectangle.Height -= -rectangle.Y;\r
- rectangle.Y = 0;\r
+ rect表示側.Height -= -rect画像側.Y;\r
+ rect表示側.Y += -rect画像側.Y;\r
+ rect画像側.Height -= -rect画像側.Y;\r
+ rect画像側.Y = 0;\r
}\r
- if( rectangle.Right > size4.Width )\r
+ if( rect画像側.Right > sizeBMP.Width )\r
{\r
- rectangle2.Width -= rectangle.Right - size4.Width;\r
- rectangle.Width -= rectangle.Right - size4.Width;\r
+ rect表示側.Width -= rect画像側.Right - sizeBMP.Width;\r
+ rect画像側.Width -= rect画像側.Right - sizeBMP.Width;\r
}\r
- if( rectangle.Bottom > size4.Height )\r
+ if( rect画像側.Bottom > sizeBMP.Height )\r
{\r
- rectangle2.Height -= rectangle.Bottom - size4.Height;\r
- rectangle.Height -= rectangle.Bottom - size4.Height;\r
+ rect表示側.Height -= rect画像側.Bottom - sizeBMP.Height;\r
+ rect画像側.Height -= rect画像側.Bottom - sizeBMP.Height;\r
}\r
- if( rectangle2.X < 0 )\r
+\r
+ // 表示側の表示指定が表示域の境界をまたいでいる場合補正\r
+ if( rect表示側.X < 0 )\r
{\r
- rectangle.Width -= -rectangle2.X;\r
- rectangle.X += -rectangle2.X;\r
- rectangle2.Width -= rectangle2.X;\r
- rectangle2.X = 0;\r
+ rect画像側.Width -= -rect表示側.X;\r
+ rect画像側.X += -rect表示側.X;\r
+ rect表示側.Width -= rect表示側.X;\r
+ rect表示側.X = 0;\r
}\r
- if( rectangle2.Y < 0 )\r
+ if( rect表示側.Y < 0 )\r
{\r
- rectangle.Height -= -rectangle2.Y;\r
- rectangle.Y += -rectangle2.Y;\r
- rectangle2.Height -= -rectangle2.Y;\r
- rectangle2.Y = 0;\r
+ rect画像側.Height -= -rect表示側.Y;\r
+ rect画像側.Y += -rect表示側.Y;\r
+ rect表示側.Height -= -rect表示側.Y;\r
+ rect表示側.Y = 0;\r
}\r
- if( rectangle2.Right > size3.Width )\r
+ if( rect表示側.Right > size表示域.Width )\r
{\r
- rectangle.Width -= rectangle2.Right - size3.Width;\r
- rectangle2.Width -= rectangle2.Right - size3.Width;\r
+ rect画像側.Width -= rect表示側.Right - size表示域.Width;\r
+ rect表示側.Width -= rect表示側.Right - size表示域.Width;\r
}\r
- if( rectangle2.Bottom > size3.Height )\r
+ if( rect表示側.Bottom > size表示域.Height )\r
{\r
- rectangle.Height -= rectangle2.Bottom - size3.Height;\r
- rectangle2.Height -= rectangle2.Bottom - size3.Height;\r
+ rect画像側.Height -= rect表示側.Bottom - size表示域.Height;\r
+ rect表示側.Height -= rect表示側.Bottom - size表示域.Height;\r
}\r
- if( ( ( ( ( rectangle.Left < rectangle.Right ) && ( rectangle.Top < rectangle.Bottom ) ) && ( ( rectangle2.Left < rectangle2.Right ) && ( rectangle2.Top < rectangle2.Bottom ) ) ) && ( ( ( rectangle.Right >= 0 ) && ( rectangle.Bottom >= 0 ) ) && ( ( rectangle.Left <= size4.Width ) && ( rectangle.Top <= size4.Height ) ) ) ) && ( ( ( rectangle2.Right >= 0 ) && ( rectangle2.Bottom >= 0 ) ) && ( ( rectangle2.Left <= size3.Width ) && ( rectangle2.Top <= size3.Height ) ) ) )\r
+\r
+ if ((rect表示側.Width * 2 <= size表示域.Width) && (rect表示側.Height * 2 <= size表示域.Height))\r
{\r
- bool b2倍可能 = false;\r
- if( ( rectangle2.Left * 2 <= size3.Width ) && (rectangle2.Top * 2 <= size3.Height ) )\r
+ // 2倍可能\r
+ if ((this.stLayer[i].rBMP != null) && (this.stLayer[i].rBMP.tx画像 != null))\r
+ {\r
+ this.stLayer[i].rBMP.tx画像.vc拡大縮小倍率 = new Vector3(2f, 2f, 1f);\r
+ rect表示側.X *= 2;\r
+ rect表示側.Y *= 2;\r
+ }\r
+ else if ((this.stLayer[i].rBMPTEX != null) && (this.stLayer[i].rBMPTEX.tx画像 != null))\r
{\r
- b2倍可能 = true;\r
+ this.stLayer[i].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3(2f, 2f, 1f);\r
+ rect表示側.X *= 2;\r
+ rect表示側.Y *= 2;\r
}\r
+ }\r
+\r
+ if(\r
+ ( rect画像側.Width > 0 ) &&\r
+ ( rect画像側.Height > 0 ) &&\r
+ ( rect表示側.Width > 0 ) && \r
+ ( rect表示側.Height > 0 ) &&\r
+\r
+ ( rect画像側.Right >= 0 ) &&\r
+ ( rect画像側.Bottom >= 0 ) &&\r
+ ( rect画像側.Left <= sizeBMP.Width ) &&\r
+ ( rect画像側.Top <= sizeBMP.Height ) &&\r
+ ( rect表示側.Right >= 0 ) &&\r
+ ( rect表示側.Bottom >= 0 ) &&\r
+ ( rect表示側.Left <= size表示域.Width ) &&\r
+ ( rect表示側.Top <= size表示域.Height )\r
+ )\r
+ {\r
if ( ( this.stLayer[ i ].rBMP != null ) && ( this.stLayer[ i ].rBMP.tx画像 != null ) )\r
{\r
- //this.stLayer[ i ].rBMP.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
- if (b2倍可能)\r
- {\r
- this.stLayer[i].rBMP.tx画像.vc拡大縮小倍率 = new Vector3(2f, 2f, 1f);\r
- rectangle2.X *= 2;\r
- rectangle2.Y *= 2;\r
- }\r
this.stLayer[ i ].rBMP.tx画像.t2D描画(\r
CDTXMania.app.Device,\r
- (x + rectangle2.X),\r
- (y + rectangle2.Y),\r
- rectangle );\r
+ (x + rect表示側.X),\r
+ (y + rect表示側.Y),\r
+ rect画像側 );\r
}\r
else if( ( this.stLayer[ i ].rBMPTEX != null ) && ( this.stLayer[ i ].rBMPTEX.tx画像 != null ) )\r
{\r
- //this.stLayer[ i ].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
- if (b2倍可能)\r
- {\r
- this.stLayer[i].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3(2f, 2f, 1f);\r
- rectangle2.X *= 2;\r
- rectangle2.Y *= 2;\r
- }\r
this.stLayer[ i ].rBMPTEX.tx画像.t2D描画(\r
CDTXMania.app.Device,\r
- (x + rectangle2.X),\r
- (y + rectangle2.Y),\r
- rectangle );\r
+ (x + rect表示側.X),\r
+ (y + rect表示側.Y),\r
+ rect画像側 );\r
}\r
}\r
}\r