1

単語検索のようなゲームを開発しています。これにはAndEngineを使用し、TiledMapを使用した単語のグリッドを表示するために使用しました。このゲームでは、文字を結合して単語を作る必要があります。指をドラッグすると、タイルに線が引かれ、文字間が接続されます。縦にも横にも正確に線を引くことができますが、斜めに線を引こうとすると、近くのタイルに行き、最後に触れたタイルから近くのタイルに線を引きます。しかし、斜めのタイルに注意深く移動すると、正確に線が引かれます。

この問題を解決するのを手伝ってくれる人はいますか?

e.g.
----------------
|1   2   3   4 |
|5   6   7   8 |
|9  10  11  12 |
|13 14  15  16 |
----------------

上記の例のように

の線を引くことができます"1234" & "159"。これは、すべての水平位置と垂直位置が正確に機能することを意味します。しかし、"963"水平方向と垂直方向に描画するほど正確ではないためです。

case TouchEvent.ACTION_MOVE:

    xMove = pSceneTouchEvent.getX();
    yMove = pSceneTouchEvent.getY();
    TMXLayer tmxLayer1 =  mTMXTiledMap.getTMXLayers().get(0);
    TMXTile tmxTile1 = tmxLayer1.getTMXTileAt(xMove, yMove); 
    tmxTile1.setTextureRegion(mPlayerTextureRegion);

    if (tmxTile1.getTileRow() == 1 && tmxTile1.getTileColumn() == 1) {
    //letter M
        xMove = pSceneTouchEvent.getX();
        yMove = pSceneTouchEvent.getY();
        //yMove = pSceneTouchEvent.getX();
        if (xMove >= (TILESQUARE * 1)+20 && yMove >= (TILESQUARE * 1)+20) {//added
            yMove = (TILESQUARE * 1) + 30;//gets x-cordinate of center
            xMove = (TILESQUARE * 1) + 30;//gets y-cordinate of center
            Log.i("On Action Move X11", ""+xMove);
            Log.i("On Action Move Y11", ""+yMove);
                          //tmxTile1.setTextureRegion(mPlayerTextureRegion);
            if (!addedAmazeM) {
                addedAmazeM = true;
                System.out.println("You are in (1,1) tile");
                wordArray.add("M");
                HashMap<Float, Float> moveXY = new HashMap<Float, Float>();
                moveXY.put(xMove, yMove);
                //linePath.add(moveXY);
                Point tile11Pt = new Point();
                tile11Pt.x = (int) xMove;
                tile11Pt.y = (int) yMove;
                linePoints.add(tile11Pt);
            }
        }
    }
4

3 に答える 3

0

アグンフォリーが言ったように、ヒットボックスのサイズを数ピクセルだけでなく、50% のように縮小してみてください。

基本的に、フィールドの真ん中を通って描画した場合にのみ、境界線に触れた場合ではなく、それを受け入れます。

于 2013-07-09T09:32:23.240 に答える