我正在編程使用SKTileMapNode
。代碼是C#(Xamarin.iOS),但每個Swift/ObjC開發人員都應該可讀。等距SKTileMapNode的排序不正確?
問題是,在等軸測投影瓷磚排序似乎是不正確的,我不明白爲什麼。爲了測試,地圖有1行5列。
見截圖:
瓷磚在0 | 0 2 | 0是在別人面前。但是,在4 | 0處的金字塔樣式的拼圖在3 | 0處正確繪製。
我用兩個簡單的地磚:
第一個擁有133x83px的分辨率,第二個是132x131px
這是它看起來像瓷磚和我想重現的內容:
瓷磚地圖是設置和使用下面的代碼添加到場景:
var tileDef1 = new SKTileDefinition (SKTexture.FromImageNamed ("landscapeTiles_014"));
var tileDef2 = new SKTileDefinition (SKTexture.FromImageNamed ("landscapeTiles_036"));
var tileGroup1 = new SKTileGroup (tileDef1);
var tileGroup2 = new SKTileGroup (tileDef2);
var tileSet = new SKTileSet (new [] { tileGroup1, tileGroup2 }, SKTileSetType.Isometric);
var tileMap = SKTileMapNode.Create(tileSet, 5, 2, new CGSize (128, 64));
tileMap.Position = new CGPoint (0, 0);
tileMap.SetTileGroup (tileGroup1, 0, 0);
tileMap.SetTileGroup (tileGroup2, 1, 0);
tileMap.SetTileGroup (tileGroup1, 2, 0);
tileMap.SetTileGroup (tileGroup2, 3, 0);
tileMap.SetTileGroup (tileGroup2, 4, 0);
tileMap.AnchorPoint = new CGPoint (0, 0);
Add (tileMap);
如果第一懷疑一個不正確的瓦片尺寸。用於初始化平鋪貼圖(128 | 64)的平鋪大小是平鋪的菱形基底的大小。如果使用平鋪瓷磚,則與紋理大小相同。對於具有高度的瓷磚,它有所不同。但是,更改拼貼大小會影響拼貼的對齊方式,因爲我使用的拼貼大小與拼貼中的大小相同,並且它提供了正確的結果,因此不能是罪魁禍首。
我在做什麼錯,或者我在想什麼錯?
「我做錯了什麼或我認爲錯在哪裏」?可能希望蘋果首次發佈新的API已經過測試。 – Confused
不幸的是,蘋果似乎對Sprite Kit和SceneKit的內部測試做得很少。每個版本都帶來新功能和新bug。而且這種情況持續了很長時間,只有很少的用途測試他們的API beta。他們只是假設他們會被搗毀並等待,並與老舊的東西相處。而且......他們在回答錯誤報告時是極其糟糕的......他們的錯誤報告系統是一個噩夢。它使Web 1.0網站看起來更新。 – Confused
只是好奇你的'ignoresSiblingOrder'設置爲? –