簡體   English   中英

Android Rect.intersects 不起作用?

[英]Android Rect.intersects not working?

我想檢查兩個矩形是否相交! 我有一個 GLObject 類,它代表在屏幕上呈現的項目。 還有我的 Game 課程,它制作其他游戲內容。 使用 OpenGLEs 2.0 進行渲染工作! 這兩個項目顯示正確,但如果我將一個項目移動到另一個項目中,則什么也沒有發生。矩形和頂點是正確的(證明:屏幕/日志輸出上紋理的正確位置)

在游戲類中:

@Override
public void Process(long elapsed)
{
    // TODO: Implement this method
    super.Process(elapsed);

    Rect r1 = mtest1.getRect(); // get Rectangle
    Rect r2 = mtest2.getRect();

    if (Rect.intersects(r1, r2)) // always false
        System.exit(0);

    //Log.e("logpos", "left" + r1.left + " top" + r1.top + " right" + r1.right + " bottom" + r1.bottom);
    //this logs the correct position:
    //left830 top200 right920 bottom100 for r1
    //left810 top200 right900 bottom100 for r2

    r1 = r2; // make them equal for testing

    if (Rect.intersects(r1, r2)) // always flase
        System.exit(0);
}

在我的 GLObject 類中:

private float mRect[] =
{
    //counterclockwise
    10.0f, 200f,  0.0f, // top left
    10.0f, 100f,  0.0f, // bottom left
    100f,  100f,  0.0f, // bottom right
    100f,  200f,  0.0f  // top right
};

//...

public Rect getRect()
{
    return new Rect((int)mRect[0], 
                    (int)mRect[1], 
                    (int)mRect[6],
                    (int)mRect[4]);
}

我想我有解決方案:我的 OpenGL 場景和 Android Rect 類的坐標系不同:

^
I
I
I        OpenGL
I
I
I===========================>


I===========================>
I
I
I     Android Rect Class
I 
I
v

(風景)

我改變了正畸,現在它正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM