如何在发动机中创建网格?

时间:2015-03-05 13:35:25

标签: java android grid andengine

我对使用AndEngine进行简单的游戏编程很感兴趣。我想做一些基本的圆形策略。所以我想对一些网格进行自顶向下的观察。像棋子这样的国际象棋中的每一个方格都应该是可点击的(当然可以在android上触摸)。但我无法想象绘制线条和正方形是最好的解决方案。我想有一些抽象的对象列表,我可以扩展到不同的行为(一次点击触发菜单打开,在其他字段点击触发爆炸,无论......)。

多年来,我一直在几个引擎中寻找这个。这是一个爱好,但我想找到一个解决方案。任何人都可以给我一个关于如何以优雅的方式做到这一点的提示吗?双缓冲,渲染和东西并不重要。重要的是,每个方格应该是一个被绘制的对象。

任何? ;) 问候。

1 个答案:

答案 0 :(得分:0)

简单的解决方案就是这样(假设你的屏幕在纵向模式下是800x480,我假设你有GLES2-AC和引擎分支)。

你的onCreateScene()方法中的

Rectangle rect1 = new Rectangle(80, 133, 160, 266, engine.getVertexBufferObjectManager()){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY){
        if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN){
            //here put what you want to be done after your button was pressed
        }
}
Rectangle rect2 = new Rectangle(240, 133, 160, 266, engine.getVertexBufferObjectManager()){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY){
        if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN){
            //here put what you want to be done after your button was pressed
        }
}

并且在new Rectangle(x, y....)中更改前两个数字(矩形中心的坐标)(第二对数字是矩形的高度和宽度)后,再继续7次。 (所以bottomrow有坐标:(80,133),(240,133)和(400,133)。中间行:(80,399),(240,399)和(400,399)。第三行你可以算当然它并没有给你完全覆盖的屏幕。你可以通过划分屏幕的宽度和高度来实现某些数字并将其用作矩形的坐标。记住将所有矩形附加到你的场景并添加

this.setOnSceneTouchListener(getOnSceneTouchListener());
this.setOnSceneTouchListenerBindingOnActionDownEnabled(true);

并注册所有矩形的触摸区域。

更难的方法是创建类,例如MyButton.class扩展矩形或sprite类,该类具有在按下“按钮”时将使用的方法。这取决于你真正需要的是什么。