Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定我记忆游戏中的哪个方块被按下?_Java_Android_Algorithm - Fatal编程技术网

Java 如何确定我记忆游戏中的哪个方块被按下?

Java 如何确定我记忆游戏中的哪个方块被按下?,java,android,algorithm,Java,Android,Algorithm,我想在Android上开发一个简单的记忆游戏 记忆游戏有如下图所示的方块。我应该如何确定哪个方块被按下?我应该使用图像按钮吗?就我个人而言,我认为用图像按钮制作游戏不是一个好主意。你能给我一个解决方案吗?我该如何确定哪个方块被压了 我认为ImageViews对于每个方块都是最好的方式,不需要按钮 注意:Views就足够了,您可以为任何视图实现onClick(View) 更新: 因为你的方块有一个图形(而不是视图s),你确实可以使用坐标来确定触摸哪个方块,但我认为这不是最简单的,也不是最好的方法

我想在Android上开发一个简单的记忆游戏

记忆游戏有如下图所示的方块。我应该如何确定哪个方块被按下?我应该使用图像按钮吗?就我个人而言,我认为用图像按钮制作游戏不是一个好主意。你能给我一个解决方案吗?我该如何确定哪个方块被压了


我认为
ImageView
s对于每个方块都是最好的方式,不需要按钮

注意:
View
s就足够了,您可以为任何视图实现
onClick(View)

更新: 因为你的方块有一个图形(而不是
视图
s),你确实可以使用坐标来确定触摸哪个方块,但我认为这不是最简单的,也不是最好的方法


你为什么不想要一个
GridLayout
或一个
TableLayout
包含
ImageView
s?

如果你有一个画正方形的视图,那么在该视图中放置一个onClick()监听器,在onClick()内,你可以这样做:(这是从我做的一个数独游戏中获取的)
@Override
public boolean onTouch(View v, MotionEvent event)
{
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            // keep where the user first touch the screen
            touchedX = (int) event.getX() / wid33; // the square width
            touchedY = (int) event.getY() / hei33; // the square height
            break;

        case MotionEvent.ACTION_UP:
            // see if the touched square is the same
            int X = (int) event.getX() / wid33;
            int Y = (int) event.getY() / hei33;
            if (X == touchedX && Y == touchedY)
            {
             // the square is the same, do what you have to do
            }
            break;

        case MotionEvent.ACTION_CANCEL:
            touchedX = -1;
            touchedY = -1;
            break;

        default:
            return super.onTouchEvent(event);
    }
    return true;
}

考虑使用OpenGL ES或甚至OpenGL ES来渲染游戏。这种方法为您提供了更大的灵活性和更好的性能

要检查witch square是否被触摸,请使用手柄触摸事件


或者答案可能有助于启动代码。

我会让每个方块都是一个按钮、一个图像视图、一个文本视图或。。。如果没有,你还会怎么做?我想使用图形类在屏幕上绘制图像。我所知道的是图像在屏幕上的位置以及用户单击的位置。创建一个表格,每个正方形包含一个单元格。使用渲染器渲染单元格,并将侦听器添加到表中,这将为您提供表中的行和列…因为我想在按下某个正方形时也使用动画,是否可以在gridview中使用动画?我想制作一个具有良好图形的游戏,我不确定gridview是否是一个好的解决方案。我自己从来没有使用过它,但你可以看看,使用视图或gridview使游戏在所有屏幕大小上都能运行是否更好?我想是的,比显式使用图形更干净、更容易实现。