1

私は隠しオブジェクト ゲームを作成しており、日食で見つかったときにオブジェクトをマークしようとしています。GestureListener_Tap イベントで取得した各画像の左上と右下の座標を手動で保存しました。

問題は、このコードを使用して座標で囲まれた日食を描画しようとしたときです

WriteableBitmapExtensions.DrawEllipse(writeableBmp, AnsX1, AnsY1, AnsX2, AnsY2, Colors.Red);

日食の位置は常に左上です。次のコードを使用してピクセル位置をマークすると、GestureListener_Tap から予想されるものとは実際には異なる位置にあることがわかります。

writeableBmp.SetPixel(AnsX1, AnsY1, Colors.Red);
writeableBmp.SetPixel(AnsX2, AnsY2, Colors.Red);

場所をマークするための私のコード:

    private void fadeOutAnimation_Ended(object sender, EventArgs e)
    {

        WriteableBitmap writeableBmp = new WriteableBitmap(bmpCurrent);
        imgCat.Source = writeableBmp;
        writeableBmp.GetBitmapContext();

        WriteableBitmapExtensions.DrawEllipse(writeableBmp, AnsX1, AnsY1, AnsX2, AnsY2, Colors.Red);
        writeableBmp.SetPixel(AnsX1, AnsY1, Colors.Red);
        writeableBmp.SetPixel(AnsX2, AnsY2, Colors.Red);

        // Present the WriteableBitmap
        writeableBmp.Invalidate();       

        //Just some animation code
        RadFadeAnimation fadeInAnimation = new RadFadeAnimation();
        fadeInAnimation.StartOpacity = 0.2;
        fadeInAnimation.EndOpacity = 1.0;
        RadAnimationManager.Play(this.imgCat, fadeInAnimation);

    }

私は何が欠けていますか?

編集:

以下の私の答えは、画面の向きの変更を考慮していません。答えの下にある私のコメントを参照してください。ピクセル座標を画像座標にどのようにマッピングしますか?

編集2:

正しい解決策を見つけました。私の答えを更新しました

4

1 に答える 1