| 周囲回転の戦闘アニメを合体技で使えるように作ったのですが、上手く表示されません どこに問題があるのか自分では全く分からないので、誰かご助言いただけると助かります
戦闘アニメ_同時周囲回転: Local i j T_X T_Y C_X C_Y C_X2 C_Y2 Local BMP_FILE = _GetBmpFromArgs() Local UNIT_FILE Local UID Local DRCT Local C_S Local G_S = _GetNumberFromArgs() Local X_F Local FL CNT Local P_NUM = (CountPartner() + 1)
Set CNT Args(2)
For i = 1 To P_NUM
Set UID[i] Partner(i - 1)
_CenteringCheck UID[i] Set UNIT_FILE[i] _GetBMPName(UID[i]) Set T_X[i] _Get_WX(UID[i]) Set T_Y[i] _Get_WY(UID[i]) Set C_X[i] (T_X[i] + 16 - (G_S \ 2)) Set C_Y[i] (T_Y[i] + 16 - (G_S \ 2))
If (_Get_X(UID[i]) > _Get_X(相手ユニットID)) Then Set C_X2[-1 + (8 * i - 8)] (C_X[i] - 16) Set C_X2[0 + (8 * i - 8)] C_X[i] Set C_X2[1 + (8 * i - 8)] (C_X[i] + 26) Set C_X2[2 + (8 * i - 8)] (C_X[i] + 26) Set C_X2[3 + (8 * i - 8)] C_X[i] Set C_X2[4 + (8 * i - 8)] (C_X[i] - 10) Set C_X2[5 + (8 * i - 8)] (C_X[i] - 10) Set C_X2[6 + (8 * i - 8)] (C_X[i] + 16)
Set DRCT[-1 + (8 * i - 8)] 左右反転 Set DRCT[0 + (8 * i - 8)] 左右反転 Set DRCT[1 + (8 * i - 8)] 左右反転 Set DRCT[2 + (8 * i - 8)] "" Set DRCT[3 + (8 * i - 8)] "" Set DRCT[4 + (8 * i - 8)] "" Set DRCT[5 + (8 * i - 8)] 左右反転 Set DRCT[6 + (8 * i - 8)] 左右反転 Else Set C_X2[-1 + (8 * i - 8)] (C_X[i] + 16) Set C_X2[0 + (8 * i - 8)] C_X[i] Set C_X2[1 + (8 * i - 8)] (C_X[i] - 10) Set C_X2[2 + (8 * i - 8)] (C_X[i] - 10) Set C_X2[3 + (8 * i - 8)] C_X[i] Set C_X2[4 + (8 * i - 8)] (C_X[i] + 26) Set C_X2[5 + (8 * i - 8)] (C_X[i] + 26) Set C_X2[6 + (8 * i - 8)] (C_X[i] - 16)
Set DRCT[-1 + (8 * i - 8)] "" Set DRCT[0 + (8 * i - 8)] "" Set DRCT[1 + (8 * i - 8)] "" Set DRCT[2 + (8 * i - 8)] 左右反転 Set DRCT[3 + (8 * i - 8)] 左右反転 Set DRCT[4 + (8 * i - 8)] 左右反転 Set DRCT[5 + (8 * i - 8)] "" Set DRCT[6 + (8 * i - 8)] "" EndIf
Set C_Y2[0 + (6 * i - 6)] (C_Y[i] + 8) Set C_Y2[1 + (6 * i - 6)] (C_Y[i] + 4) Set C_Y2[2 + (6 * i - 6)] (C_Y[i] - 4) Set C_Y2[3 + (6 * i - 6)] (C_Y[i] - 8) Set C_Y2[4 + (6 * i - 6)] (C_Y[i] - 4) Set C_Y2[5 + (6 * i - 6)] (C_Y[i] + 4)
Next
Set C_S[0] 32 Set C_S[1] 16 Set C_S[2] 16 Set C_S[3] 32 Set C_S[4] 16 Set C_S[5] 16
If (_IsLight() = 1) Then Set FL 1 Else Set FL "" EndIf
Wait Start _SelectSound "Sharara.wav" _GetWavFromArgs() For i = 1 To 25 ClearPicture
# 対象より後ろ側の表示
For j = 1 To P_NUM
If (((i > 1) And (i <= 20)) And (C_Y2[((i - 2) Mod 6) + (6 * j - 6)] < C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i - 2) Mod 6) + (8 * j - 8)] C_Y2[((i - 2) Mod 6) + (6 * j - 6)] C_S[((i - 2) Mod 6)] 32 透過 DRCT[((i - 2) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf
Switch CNT Case 2 If (((i > 4) And (i <= 23)) And (C_Y2[((i + 1) Mod 6) + (6 * j - 6)] < C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i + 1) Mod 6) + (8 * j - 8)] C_Y2[((i + 1) Mod 6) + (6 * j - 6)] C_S[((i + 1) Mod 6)] 32 透過 DRCT[((i + 1) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf Case 3 If (((i > 3) And (i <= 22)) And (C_Y2[(i Mod 6) + (6 * j - 6)] < C_Y[j])) Then PaintPicture BMP_FILE C_X2[(i Mod 6) + (8 * j - 8)] C_Y2[(i Mod 6) + (6 * j - 6)] C_S[(i Mod 6)] 32 透過 DRCT[(i Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf If (((i > 5) And (i <= 24)) And (C_Y2[((i + 2) Mod 6) + (6 * j - 6)] < C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i + 2) Mod 6) + (8 * j - 8)] C_Y2[((i + 2) Mod 6) + (6 * j - 6)] C_S[((i + 2) Mod 6)] 32 透過 DRCT[((i + 2) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf EndSw
If (UNIT_FILE[j] != "") Then PaintPicture UNIT_FILE[j] T_X[j] T_Y[j] 透過 _ColorTime() EndIf
# 対象より前側の表示
Switch i Case 1 PaintPicture BMP_FILE C_X2[-1 + (8 * j - 8)] (C_Y[j] + 10) 32 32 透過 DRCT[-1 + (8 * j - 8)] _ColorTime(FL) Case 21 PaintPicture BMP_FILE C_X2[6 + (8 * j - 8)] (C_Y[j] + 10) 32 32 透過 DRCT[6 + (8 * j - 8)] _ColorTime(FL) EndSw
If (((i > 1) And (i <= 20)) And (C_Y2[((i - 2) Mod 6) + (6 * j - 6)] > C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i - 2) Mod 6) + (8 * j - 8)] C_Y2[((i - 2) Mod 6) + (6 * j - 6)] C_S[((i - 2) Mod 6)] 32 透過 DRCT[((i - 2) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf
Switch CNT Case 2 Switch i Case 4 PaintPicture BMP_FILE C_X2[-1 + (8 * j - 8)] (C_Y + 10) 32 32 透過 DRCT[-1 + (8 * j - 8)] _ColorTime(FL) Case 24 PaintPicture BMP_FILE C_X2[6 + (8 * j - 8)] (C_Y + 10) 32 32 透過 DRCT[6 + (8 * j - 8)] _ColorTime(FL) EndSw If (((i > 4) And (i <= 23)) And (C_Y2[((i + 1) Mod 6) + (6 * j - 6)] > C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i + 1) Mod 6) + (8 * j - 8)] C_Y2[((i + 1) Mod 6) + (6 * j - 6)] C_S[((i + 1) Mod 6)] 32 透過 DRCT[((i + 1) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf If (i = 25) Then Break EndIf Case 3 Switch i Case 3 5 PaintPicture BMP_FILE C_X2[-1 + (8 * j - 8)] (C_Y + 10) 32 32 透過 DRCT[-1 + (8 * j - 8)] _ColorTime(FL) Case 23 25 PaintPicture BMP_FILE C_X2[6 + (8 * j - 8)] (C_Y + 10) 32 32 透過 DRCT[6 + (8 * j - 8)] _ColorTime(FL) EndSw If (((i > 3) And (i <= 22)) And (C_Y2[(i Mod 6) + (6 * j - 6)] > C_Y[j])) Then PaintPicture BMP_FILE C_X2[(i Mod 6) + (8 * j - 8)] C_Y2[(i Mod 6) + (6 * j - 6)] C_S[(i Mod 6)] 32 透過 DRCT[(i Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf If (((i > 5) And (i <= 24)) And (C_Y2[((i + 2) Mod 6) + (6 * j - 6)] > C_Y[j])) Then PaintPicture BMP_FILE C_X2[((i + 2) Mod 6) + (8 * j - 8)] C_Y2[((i + 2) Mod 6) + (6 * j - 6)] C_S[((i + 2) Mod 6)] 32 透過 DRCT[((i + 2) Mod 6) + (8 * j - 8)] _ColorTime(FL) EndIf Case Else If (i = 21) Then Break EndIf EndSw Next
Refresh Wait Until (i * 0.6) Next
ClearPicture Refresh
Return
|