gpt4 book ai didi

android - 手势识别器和 AndEngine (Android)

转载 作者:搜寻专家 更新时间:2023-11-01 08:08:30 25 4
gpt4 key购买 nike

在我正在开发的游戏中,我需要这个功能:能够在屏幕上绘图并确定绘图是否是确定的形状(比如矩形、三角形或其他形状)。

所以我想使用手势,这是更简单的方法;使用手势生成器,我制作了一些形状并将它们用作模型。问题是,我无法让它与 AndEngine 一起工作。

我需要将基本上是绘图板的 GestureOverlayView 放置在游戏场景的顶部,这样我就可以看到场景本身以及所有附加的实体,我还可以绘制手势。

现在我尝试的方法没有用,要么 AndEngine 的东西显示在屏幕上,要么 GestureOverlayView 显示,而不是两者。

我是 Android 开发和 AndEngine 方面的新手,所以我有点卡在这里...您对我如何让它工作有什么想法吗?我到处找,但找不到任何有用的东西......

手势部分的代码我会在下面举例说明,如果你在项目的res/raw路径下没有任何预制的手势,显然它不会真正起作用:

public class ProvaGesture extends Activity implements GestureOverlayView.OnGesturePerformedListener        
{

private GestureLibrary gestureLib;

public GestureOverlayView gestureOverlayView;


@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

gestureOverlayView = new GestureOverlayView(this);

gestureOverlayView.addOnGesturePerformedListener(this);

gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);

if (!gestureLib.load())
{
finish();
}

setContentView(gestureOverlayView);
}


public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture)
{
ArrayList<Prediction> predictions = gestureLib.recognize(gesture);

for (Prediction prediction : predictions)
{
if (prediction.score > 1.0)
{
Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
}
}
}


}

最佳答案

我没有在您的演示代码中看到 AndEngine 部分。您的 ProvaGesture Activity 应该从 AndEgine 的 SimpleBaseGameActivityBaseGameActivity 扩展,然后实现 IOnSceneTouchListener

根据你的想法,我猜你想创建一个单独的覆盖 View ,它只处理手势,所以你必须考虑:

  • 在 android 中您只有一次运行一个 Activity

  • 如果您想创建一个用户定义的 View 与 AndEgine 的表面 View 重叠,您应该查看 Andengine 的示例:XMLLayoutExample

    <

解决方案可能是 [建议]:

public class OverlapLayoutExample extends SimpleLayoutGameActivity {
@Override
protected int getLayoutID() {
//your layout id (xml file in layout folder)
return R.layout.overlaplayout;
}

@Override
protected int getRenderSurfaceViewID()
{
//overlaplayout will contain a SurfaceView with following ID
//this surface is where you render Andgine
return R.id.overlaplayout_rendersurfaceview;
}
}

不要忘记创建自己的布局:overlaplayout 包含 surfaceViewOverlayView

关于android - 手势识别器和 AndEngine (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com