我正在開發一個類似單詞搜索的遊戲。我已經使用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);
}
}
}
我檢查,但得到同樣的問題.. – Saurabh