I might have found a bug with X2TileMap or my settings for Tiled (v1.2.0) are incorrect.
There appears to be a json parsing error on the output file from Tiled and I don't know if it is how I have Tiled set or if I need to call a different parser.
This definition copied from one of the samples works:
If I load the file containing this definition into Tiled and save it, the definition is re-formatted to:
which causes the following crash log:
There appears to be a json parsing error on the output file from Tiled and I don't know if it is how I have Tiled set or if I need to call a different parser.
This definition copied from one of the samples works:
B4X:
"ellipse":true,
"height":109.333333333333,
"id":2,
"name":"circle",
"properties":
{
"antialias":true,
"body type":"dynamic",
"destroy if invisible":true,
"graphic file 1":"blue_donut_7.png",
"time to live (ms)":5000
},
"propertytypes":
{
"antialias":"bool",
"body type":"string",
"destroy if invisible":"bool",
"graphic file 1":"string",
"time to live (ms)":"int"
},
"rotation":0,
"type":"x2",
"visible":true,
"width":112,
"x":204,
"y":-30.6666666666667
If I load the file containing this definition into Tiled and save it, the definition is re-formatted to:
B4X:
"ellipse":true,
"height":109.333333333333,
"id":2,
"name":"circle",
"properties":[
{
"name":"antialias",
"type":"bool",
"value":true
},
{
"name":"body type",
"type":"string",
"value":"dynamic"
},
{
"name":"destroy if invisible",
"type":"bool",
"value":true
},
{
"name":"graphic file 1",
"type":"string",
"value":"blue_donut_7.png"
},
{
"name":"time to live (ms)",
"type":"int",
"value":5000
}],
"rotation":0,
"type":"x2",
"visible":true,
"width":112,
"x":204,
"y":-30.6666666666667
which causes the following crash log:
B4X:
Size scale: 1.33
x2tilemap._parseobjectslayer (java line: 1376)
java.lang.ClassCastException: java.util.ArrayList cannot be cast to anywheresoftware.b4a.objects.collections.Map$MyMap
at b4j.example.x2tilemap._parseobjectslayer(x2tilemap.java:1376)
at b4j.example.x2tilemap._initialize(x2tilemap.java:1122)
at b4j.example.game._initialize(game.java:104)
at b4j.example.main._appstart(main.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:90)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:77)
at b4j.example.main.start(main.java:38)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:748)