以前、チェスの駒が選択されたかどうかの検出について質問しました。私は配列を紹介されましたが、色を変更できないという事実を除いて、選択は希望どおりに機能しています。
public static Color[] pieceColo = new Color[4]
{ PawnBl1Col, PawnBl2Col, PawnBl3Col, PawnBl4Col};
これは修正中の配列です。PawnBl1Col は白と宣言されています (他のすべての値とともに)
if (movement.pieceLocX[movement.pLvalX] <= movement.mouseCord.X
&& movement.pieceLocX[movement.pLvalX] + 100 >= movement.mouseCord.X
&& movement.pieceLocY[movement.pLvalY] <= movement.mouseCord.Y
&& movement.pieceLocY[movement.pLvalY] + 100 >= movement.mouseCord.Y)
movement.pieceColo[movement.pLvalX] = Color.Red;
実行すると if ステートメントは正常に実行されますが、コマンドの実行に関しては失敗し、何もしません。
movement.PawnBl1Col = Color.Red;
ただし、カラー配列を上記のものに置き換えると、シームレスに機能します。
編集:大きな部分の動きを忘れました.pLvalXは、各オブジェクトと一致する単なる整数です。8 つの値すべてをテストします (32 になります)。X オブジェクトが選択されている場合、X オブジェクトの色が変わります。意味があるかどうかはわかりません。しかし、カラー配列を 0-3 でテストしても機能しません。