@ -0,0 +1,14 @@ |
|||
# Phaser 3 + MatterJS example |
|||
|
|||
This respository contains the example source code for the [How to create physics shapes for Phaser 3 and Matter JS](https://www.codeandweb.com/physicseditor/tutorials/how-to-create-physics-shapes-for-phaser-3-and-matterjs) tutorial. |
|||
|
|||
The tutorial explains: |
|||
|
|||
* How to build a scene with Phaser 3 and MatterJS physics |
|||
* How to create simple collision shapes like rectangles and circles |
|||
* How to automatically create complex physics shapes |
|||
|
|||
Screenshot of the example: |
|||
|
|||
![Phaser 3 Physics Demo with MatterJS](screenshot.png) |
|||
|
@ -0,0 +1,175 @@ |
|||
{ |
|||
"banana": { |
|||
"type": "fromPhysicsEditor", |
|||
"label": "banana", |
|||
"isStatic": false, |
|||
"density": 0.1, |
|||
"restitution": 0.1, |
|||
"friction": 0.1, |
|||
"frictionAir": 0.01, |
|||
"frictionStatic": 0.5, |
|||
"collisionFilter": { |
|||
"group": 0, |
|||
"category": 1, |
|||
"mask": 255 |
|||
}, |
|||
"fixtures": [ |
|||
{ |
|||
"label": "banana-fixture", |
|||
"isSensor": false, |
|||
"vertices": [ |
|||
[ { "x":107, "y":2 }, { "x":95.26110076904297, "y":0.6820602416992188 }, { "x":89, "y":6 }, { "x":94.2380142211914, "y":23.872116088867188 }, { "x":104, "y":22 } ], |
|||
[ { "x":4, "y":94 }, { "x":1, "y":105 }, { "x":23.985790252685547, "y":119.92895221710205 }, { "x":50, "y":128 }, { "x":27, "y":94 } ], |
|||
[ { "x":27, "y":94 }, { "x":50, "y":128 }, { "x":79, "y":123 }, { "x":102, "y":110 }, { "x":67, "y":83 } ], |
|||
[ { "x":67, "y":83 }, { "x":102, "y":110 }, { "x":118.56483459472656, "y":88.44049835205078 }, { "x":126, "y":66 }, { "x":123, "y":40 }, { "x":91, "y":48 } ], |
|||
[ { "x":123, "y":40 }, { "x":104, "y":22 }, { "x":94.2380142211914, "y":23.872116088867188 }, { "x":91, "y":48 } ] |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
"cherries": { |
|||
"type": "fromPhysicsEditor", |
|||
"label": "cherries", |
|||
"isStatic": false, |
|||
"density": 0.10000000149011612, |
|||
"restitution": 0.1, |
|||
"friction": 0.10000000149011612, |
|||
"frictionAir": 0.009999999776482582, |
|||
"frictionStatic": 0.5, |
|||
"collisionFilter": { |
|||
"group": 0, |
|||
"category": 1, |
|||
"mask": 255 |
|||
}, |
|||
"fixtures": [ |
|||
{ |
|||
"label": "cherry-left", |
|||
"isSensor": false, |
|||
"circle": { |
|||
"x": 38.67625899280576, |
|||
"y": 100.92661870503598, |
|||
"radius": 25.16224146143038 |
|||
} |
|||
}, |
|||
{ |
|||
"label": "cherry-right", |
|||
"isSensor": false, |
|||
"circle": { |
|||
"x": 97.79568345323742, |
|||
"y": 102.95251798561152, |
|||
"radius": 25.16224146143038 |
|||
} |
|||
}, |
|||
{ |
|||
"label": "cherry-stem", |
|||
"isSensor": false, |
|||
"vertices": [ |
|||
[ { "x":7, "y":8 }, { "x":32, "y":35 }, { "x":61, "y":36 }, { "x":85.0877685546875, "y":32.59856414794922 }, { "x":77, "y":19 }, { "x":58, "y":5 } ], |
|||
[ { "x":85, "y":13 }, { "x":77, "y":19 }, { "x":85.0877685546875, "y":32.59856414794922 }, { "x":93, "y":22 } ], |
|||
[ { "x":85.0877685546875, "y":32.59856414794922 }, { "x":61, "y":36 }, { "x":43, "y":58 }, { "x":41, "y":75 }, { "x":84.16690826416016, "y":53.778419494628906 } ], |
|||
[ { "x":90, "y":78 }, { "x":84.16690826416016, "y":53.778419494628906 }, { "x":41, "y":75 } ] |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
"crate": { |
|||
"type": "fromPhysicsEditor", |
|||
"label": "create", |
|||
"isStatic": false, |
|||
"density": 0.7999999999999999, |
|||
"restitution": 0.1, |
|||
"friction": 0.10000000149011612, |
|||
"frictionAir": 0.009999999776482582, |
|||
"frictionStatic": 0.5, |
|||
"collisionFilter": { |
|||
"group": 0, |
|||
"category": 1, |
|||
"mask": 255 |
|||
}, |
|||
"fixtures": [ |
|||
{ |
|||
"label": "crate-fixture", |
|||
"isSensor": false, |
|||
"vertices": [ |
|||
[ { "x":5, "y":9 }, { "x":5.115452766418457, "y":36.0355224609375 }, { "x":8.980462074279785, "y":36.376556396484375 }, { "x":120.61101531982422, "y":38.309059143066406 }, { "x":124, "y":36 }, { "x":124, "y":9 } ], |
|||
[ { "x":8, "y":128 }, { "x":123, "y":128 }, { "x":123, "y":105 }, { "x":120.15630340576172, "y":104.46891593933105 }, { "x":10.79928970336914, "y":103.67317962646484 }, { "x":7.73001766204834, "y":104.92362403869629 } ], |
|||
[ { "x":120.15630340576172, "y":104.46891593933105 }, { "x":120.61101531982422, "y":38.309059143066406 }, { "x":8.980462074279785, "y":36.376556396484375 }, { "x":10.79928970336914, "y":103.67317962646484 } ] |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
"orange": { |
|||
"type": "fromPhysicsEditor", |
|||
"label": "orange", |
|||
"isStatic": false, |
|||
"density": 0.1, |
|||
"restitution": 0.1, |
|||
"friction": 0.10000000149011612, |
|||
"frictionAir": 0.009999999776482582, |
|||
"frictionStatic": 0.5, |
|||
"collisionFilter": { |
|||
"group": 0, |
|||
"category": 1, |
|||
"mask": 255 |
|||
}, |
|||
"fixtures": [ |
|||
{ |
|||
"label": "orange-fixture", |
|||
"isSensor": false, |
|||
"circle": { |
|||
"x": 64.46043165467627, |
|||
"y": 67.0388489208633, |
|||
"radius": 61.12368896735685 |
|||
} |
|||
} |
|||
] |
|||
}, |
|||
"ground": { |
|||
"type": "fromPhysicsEditor", |
|||
"label": "ground", |
|||
"isStatic": true, |
|||
"density": 0.10000000149011612, |
|||
"restitution": 0, |
|||
"friction": 0.10000000149011612, |
|||
"frictionAir": 0.009999999776482582, |
|||
"frictionStatic": 0.5, |
|||
"collisionFilter": { |
|||
"group": 0, |
|||
"category": 1, |
|||
"mask": 255 |
|||
}, |
|||
"fixtures": [ |
|||
{ |
|||
"label": "", |
|||
"isSensor": false, |
|||
"vertices": [ |
|||
[ { "x":380, "y":524 }, { "x":351, "y":561 }, { "x":444, "y":549 } ], |
|||
[ { "x":754, "y":524 }, { "x":725, "y":561 }, { "x":833, "y":557 } ], |
|||
[ { "x":159, "y":524 }, { "x":132, "y":530 }, { "x":166, "y":537 } ], |
|||
[ { "x":857, "y":511 }, { "x":852, "y":534 }, { "x":942, "y":535 }, { "x":932, "y":517 }, { "x":890, "y":500 } ], |
|||
[ { "x":973, "y":533 }, { "x":961, "y":543 }, { "x":1200, "y":626 }, { "x":987, "y":535 } ], |
|||
[ { "x":1077, "y":448 }, { "x":1041, "y":513 }, { "x":1200, "y":626 }, { "x":1116, "y":448 } ], |
|||
[ { "x":459, "y":526 }, { "x":444, "y":549 }, { "x":610, "y":566 }, { "x":508, "y":524 } ], |
|||
[ { "x":1200, "y":340 }, { "x":1110, "y":346 }, { "x":1130, "y":416 }, { "x":1200, "y":626 } ], |
|||
[ { "x":626, "y":545 }, { "x":610, "y":566 }, { "x":725, "y":561 }, { "x":675, "y":542 } ], |
|||
[ { "x":1102, "y":360 }, { "x":1104, "y":379 }, { "x":1130, "y":416 }, { "x":1110, "y":346 } ], |
|||
[ { "x":250, "y":547 }, { "x":240, "y":566 }, { "x":351, "y":561 }, { "x":301, "y":542 } ], |
|||
[ { "x":182, "y":537 }, { "x":166, "y":537 }, { "x":201, "y":553 } ], |
|||
[ { "x":91, "y":388 }, { "x":77, "y":358 }, { "x":59, "y":340 }, { "x":0, "y":340 }, { "x":0, "y":626 }, { "x":87, "y":423 } ], |
|||
[ { "x":852, "y":534 }, { "x":833, "y":557 }, { "x":961, "y":543 }, { "x":942, "y":535 } ], |
|||
[ { "x":997, "y":522 }, { "x":987, "y":535 }, { "x":1200, "y":626 }, { "x":1041, "y":513 } ], |
|||
[ { "x":104, "y":456 }, { "x":87, "y":423 }, { "x":0, "y":626 }, { "x":106, "y":515 } ], |
|||
[ { "x":166, "y":537 }, { "x":132, "y":530 }, { "x":0, "y":626 }, { "x":201, "y":553 } ], |
|||
[ { "x":444, "y":549 }, { "x":351, "y":561 }, { "x":610, "y":566 } ], |
|||
[ { "x":106, "y":515 }, { "x":0, "y":626 }, { "x":113, "y":522 } ], |
|||
[ { "x":113, "y":522 }, { "x":0, "y":626 }, { "x":132, "y":530 } ], |
|||
[ { "x":201, "y":553 }, { "x":0, "y":626 }, { "x":240, "y":566 } ], |
|||
[ { "x":0, "y":626 }, { "x":1200, "y":626 }, { "x":610, "y":566 }, { "x":351, "y":561 }, { "x":240, "y":566 } ], |
|||
[ { "x":610, "y":566 }, { "x":1200, "y":626 }, { "x":833, "y":557 } ], |
|||
[ { "x":833, "y":557 }, { "x":1200, "y":626 }, { "x":961, "y":543 } ], |
|||
[ { "x":1116, "y":448 }, { "x":1200, "y":626 }, { "x":1130, "y":416 } ] |
|||
] |
|||
} |
|||
] |
|||
} |
|||
} |
@ -0,0 +1,146 @@ |
|||
{ |
|||
"textures": [ |
|||
{ |
|||
"image": "fruit-sprites.png", |
|||
"format": "RGBA8888", |
|||
"size": { |
|||
"w": 1380, |
|||
"h": 1202 |
|||
}, |
|||
"scale": 1, |
|||
"frames": [ |
|||
{ |
|||
"filename": "background", |
|||
"rotated": true, |
|||
"trimmed": false, |
|||
"sourceSize": { |
|||
"w": 1200, |
|||
"h": 960 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 0, |
|||
"y": 0, |
|||
"w": 1200, |
|||
"h": 960 |
|||
}, |
|||
"frame": { |
|||
"x": 1, |
|||
"y": 1, |
|||
"w": 1200, |
|||
"h": 960 |
|||
} |
|||
}, |
|||
{ |
|||
"filename": "ground", |
|||
"rotated": true, |
|||
"trimmed": true, |
|||
"sourceSize": { |
|||
"w": 1200, |
|||
"h": 626 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 0, |
|||
"y": 339, |
|||
"w": 1200, |
|||
"h": 287 |
|||
}, |
|||
"frame": { |
|||
"x": 963, |
|||
"y": 1, |
|||
"w": 1200, |
|||
"h": 287 |
|||
} |
|||
}, |
|||
{ |
|||
"filename": "banana", |
|||
"rotated": false, |
|||
"trimmed": true, |
|||
"sourceSize": { |
|||
"w": 128, |
|||
"h": 128 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 0, |
|||
"y": 0, |
|||
"w": 127, |
|||
"h": 128 |
|||
}, |
|||
"frame": { |
|||
"x": 1252, |
|||
"y": 1, |
|||
"w": 127, |
|||
"h": 128 |
|||
} |
|||
}, |
|||
{ |
|||
"filename": "orange", |
|||
"rotated": false, |
|||
"trimmed": true, |
|||
"sourceSize": { |
|||
"w": 128, |
|||
"h": 128 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 1, |
|||
"y": 5, |
|||
"w": 127, |
|||
"h": 123 |
|||
}, |
|||
"frame": { |
|||
"x": 1252, |
|||
"y": 131, |
|||
"w": 127, |
|||
"h": 123 |
|||
} |
|||
}, |
|||
{ |
|||
"filename": "cherries", |
|||
"rotated": true, |
|||
"trimmed": true, |
|||
"sourceSize": { |
|||
"w": 128, |
|||
"h": 128 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 5, |
|||
"y": 3, |
|||
"w": 120, |
|||
"h": 125 |
|||
}, |
|||
"frame": { |
|||
"x": 1252, |
|||
"y": 256, |
|||
"w": 120, |
|||
"h": 125 |
|||
} |
|||
}, |
|||
{ |
|||
"filename": "crate", |
|||
"rotated": false, |
|||
"trimmed": true, |
|||
"sourceSize": { |
|||
"w": 128, |
|||
"h": 128 |
|||
}, |
|||
"spriteSourceSize": { |
|||
"x": 3, |
|||
"y": 7, |
|||
"w": 123, |
|||
"h": 121 |
|||
}, |
|||
"frame": { |
|||
"x": 1252, |
|||
"y": 378, |
|||
"w": 123, |
|||
"h": 121 |
|||
} |
|||
} |
|||
] |
|||
} |
|||
], |
|||
"meta": { |
|||
"app": "https://www.codeandweb.com/texturepacker", |
|||
"version": "3.0", |
|||
"smartupdate": "$TexturePacker:SmartUpdate:0d0bce26c10ae31fb56fffa698e98974:1f8e7cbe61cf17088e7b8ba8bd089be7:25f385b2bb08c04649fd253213a50a44$" |
|||
} |
|||
} |
After Width: | Height: | Size: 70 KiB |
@ -0,0 +1 @@ |
|||
{"scooter-sprite-128x128":[{"shape":[15,10,22,2,24,1]},{"shape":[90,105,98,97,117,96]},{"shape":[117,96,123,108,111,126]},{"shape":[111,126,100,125,92,118]},{"shape":[92,118,42,118,31,110]},{"shape":[31,110,22,125,6,121]},{"shape":[6,121,4,111,18,88]},{"shape":[27,42,25,13,31,8]},{"shape":[31,8,15,10,24,1]},{"shape":[90,105,117,96,111,126]},{"shape":[31,110,6,121,18,88]},{"shape":[31,8,24,1,37,5]},{"shape":[90,105,111,126,92,118]},{"shape":[27,42,31,8,37,5]},{"shape":[43,104,90,105,92,118]},{"shape":[18,88,27,42,37,5]},{"shape":[43,104,92,118,31,110]},{"shape":[18,88,37,5,28,77]},{"shape":[28,77,43,104,31,110]},{"shape":[31,110,18,88,28,77]}]} |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,39 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<style> |
|||
html, body, div |
|||
{ |
|||
padding:0; |
|||
margin: 0; |
|||
} |
|||
body |
|||
{ |
|||
width:100%; |
|||
height:100%; |
|||
margin: 0; |
|||
overflow: hidden; |
|||
background-color: white; |
|||
} |
|||
|
|||
canvas |
|||
{ |
|||
background-color: white; |
|||
width:100%; |
|||
} |
|||
|
|||
#game |
|||
{ |
|||
margin: 0 auto; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<script src="phaser.min.js?v=3100" charset="utf-8"></script> |
|||
<script src="index.js" charset="utf-8"></script> |
|||
|
|||
<div id="game"></div> |
|||
|
|||
</body> |
|||
</html> |
@ -0,0 +1,56 @@ |
|||
/* |
|||
* This example show how to load complex shapes created with PhysicsEditor (https://www.codeandweb.com/physicseditor)
|
|||
*/ |
|||
|
|||
|
|||
var config = { |
|||
type: Phaser.AUTO, |
|||
width: 1200, |
|||
height: 600, |
|||
transparent: true, |
|||
backgroundColor: 0xffffff, |
|||
parent: 'game', |
|||
scene: { |
|||
preload: preload, |
|||
create: create |
|||
}, |
|||
physics: { |
|||
default: "matter", |
|||
matter: { |
|||
// debug: true
|
|||
} |
|||
} |
|||
}; |
|||
|
|||
|
|||
var game = new Phaser.Game(config); |
|||
|
|||
function preload() { |
|||
// Load sprite sheet generated with TexturePacker
|
|||
this.load.atlas('sheet', 'assets/fruit-sprites.png', 'assets/fruit-sprites.json'); |
|||
|
|||
// Load body shapes from JSON file generated using PhysicsEditor
|
|||
this.load.json('shapes', 'assets/fruit-shapes.json'); |
|||
//this.load.json('shapes', 'assets/scooter.json');
|
|||
|
|||
} |
|||
|
|||
function create() { |
|||
var shapes = this.cache.json.get('shapes'); |
|||
|
|||
this.matter.world.setBounds(0, 0, game.config.width, game.config.height); |
|||
this.add.image(0, 0, 'sheet', 'background').setOrigin(0, 0); |
|||
|
|||
// sprites are positioned at their center of mass
|
|||
var ground = this.matter.add.sprite(0, 0, 'sheet', 'ground', {shape: shapes.ground}); |
|||
ground.setPosition(0 + ground.centerOfMass.x, 280 + ground.centerOfMass.y); // corrected position: (0,280)
|
|||
|
|||
this.matter.add.sprite(200, 50, 'sheet', 'crate', {shape: shapes.crate}); |
|||
this.matter.add.sprite(250, 250, 'sheet', 'banana', {shape: shapes.banana}); |
|||
this.matter.add.sprite(360, 50, 'sheet', 'orange', {shape: shapes.orange}); |
|||
this.matter.add.sprite(400, 250, 'sheet', 'cherries', {shape: shapes.cherries}); |
|||
|
|||
this.input.on('pointerdown', function (pointer) { |
|||
this.matter.add.sprite(pointer.x, pointer.y, 'sheet', 'banana', {shape: shapes.banana}); |
|||
}, this); |
|||
} |
@ -0,0 +1,267 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<data version="1.0"> |
|||
<struct type="Settings"> |
|||
<key>fileFormatVersion</key> |
|||
<int>4</int> |
|||
<key>texturePackerVersion</key> |
|||
<string>4.8.0</string> |
|||
<key>autoSDSettings</key> |
|||
<array> |
|||
<struct type="AutoSDSettings"> |
|||
<key>scale</key> |
|||
<double>1</double> |
|||
<key>extension</key> |
|||
<string></string> |
|||
<key>spriteFilter</key> |
|||
<string></string> |
|||
<key>acceptFractionalValues</key> |
|||
<false/> |
|||
<key>maxTextureSize</key> |
|||
<QSize> |
|||
<key>width</key> |
|||
<int>-1</int> |
|||
<key>height</key> |
|||
<int>-1</int> |
|||
</QSize> |
|||
</struct> |
|||
</array> |
|||
<key>allowRotation</key> |
|||
<true/> |
|||
<key>shapeDebug</key> |
|||
<false/> |
|||
<key>dpi</key> |
|||
<uint>72</uint> |
|||
<key>dataFormat</key> |
|||
<string>phaser</string> |
|||
<key>textureFileName</key> |
|||
<filename></filename> |
|||
<key>flipPVR</key> |
|||
<false/> |
|||
<key>pvrCompressionQuality</key> |
|||
<enum type="SettingsBase::PvrCompressionQuality">PVR_QUALITY_NORMAL</enum> |
|||
<key>atfCompressData</key> |
|||
<false/> |
|||
<key>mipMapMinSize</key> |
|||
<uint>32768</uint> |
|||
<key>etc1CompressionQuality</key> |
|||
<enum type="SettingsBase::Etc1CompressionQuality">ETC1_QUALITY_LOW_PERCEPTUAL</enum> |
|||
<key>etc2CompressionQuality</key> |
|||
<enum type="SettingsBase::Etc2CompressionQuality">ETC2_QUALITY_LOW_PERCEPTUAL</enum> |
|||
<key>dxtCompressionMode</key> |
|||
<enum type="SettingsBase::DxtCompressionMode">DXT_PERCEPTUAL</enum> |
|||
<key>jxrColorFormat</key> |
|||
<enum type="SettingsBase::JpegXrColorMode">JXR_YUV444</enum> |
|||
<key>jxrTrimFlexBits</key> |
|||
<uint>0</uint> |
|||
<key>jxrCompressionLevel</key> |
|||
<uint>0</uint> |
|||
<key>ditherType</key> |
|||
<enum type="SettingsBase::DitherType">PngQuantLow</enum> |
|||
<key>backgroundColor</key> |
|||
<uint>0</uint> |
|||
<key>libGdx</key> |
|||
<struct type="LibGDX"> |
|||
<key>filtering</key> |
|||
<struct type="LibGDXFiltering"> |
|||
<key>x</key> |
|||
<enum type="LibGDXFiltering::Filtering">Linear</enum> |
|||
<key>y</key> |
|||
<enum type="LibGDXFiltering::Filtering">Linear</enum> |
|||
</struct> |
|||
</struct> |
|||
<key>shapePadding</key> |
|||
<uint>0</uint> |
|||
<key>jpgQuality</key> |
|||
<uint>80</uint> |
|||
<key>pngOptimizationLevel</key> |
|||
<uint>1</uint> |
|||
<key>webpQualityLevel</key> |
|||
<uint>101</uint> |
|||
<key>textureSubPath</key> |
|||
<string></string> |
|||
<key>atfFormats</key> |
|||
<string></string> |
|||
<key>textureFormat</key> |
|||
<enum type="SettingsBase::TextureFormat">png8</enum> |
|||
<key>borderPadding</key> |
|||
<uint>0</uint> |
|||
<key>maxTextureSize</key> |
|||
<QSize> |
|||
<key>width</key> |
|||
<int>2048</int> |
|||
<key>height</key> |
|||
<int>2048</int> |
|||
</QSize> |
|||
<key>fixedTextureSize</key> |
|||
<QSize> |
|||
<key>width</key> |
|||
<int>-1</int> |
|||
<key>height</key> |
|||
<int>-1</int> |
|||
</QSize> |
|||
<key>algorithmSettings</key> |
|||
<struct type="AlgorithmSettings"> |
|||
<key>algorithm</key> |
|||
<enum type="AlgorithmSettings::AlgorithmId">MaxRects</enum> |
|||
<key>freeSizeMode</key> |
|||
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum> |
|||
<key>sizeConstraints</key> |
|||
<enum type="AlgorithmSettings::SizeConstraints">AnySize</enum> |
|||
<key>forceSquared</key> |
|||
<false/> |
|||
<key>maxRects</key> |
|||
<struct type="AlgorithmMaxRectsSettings"> |
|||
<key>heuristic</key> |
|||
<enum type="AlgorithmMaxRectsSettings::Heuristic">Best</enum> |
|||
</struct> |
|||
<key>basic</key> |
|||
<struct type="AlgorithmBasicSettings"> |
|||
<key>sortBy</key> |
|||
<enum type="AlgorithmBasicSettings::SortBy">Best</enum> |
|||
<key>order</key> |
|||
<enum type="AlgorithmBasicSettings::Order">Ascending</enum> |
|||
</struct> |
|||
<key>polygon</key> |
|||
<struct type="AlgorithmPolygonSettings"> |
|||
<key>alignToGrid</key> |
|||
<uint>1</uint> |
|||
</struct> |
|||
</struct> |
|||
<key>dataFileNames</key> |
|||
<map type="GFileNameMap"> |
|||
<key>json</key> |
|||
<struct type="DataFile"> |
|||
<key>name</key> |
|||
<filename>assets/fruit-sprites.json</filename> |
|||
</struct> |
|||
</map> |
|||
<key>multiPack</key> |
|||
<false/> |
|||
<key>forceIdenticalLayout</key> |
|||
<false/> |
|||
<key>outputFormat</key> |
|||
<enum type="SettingsBase::OutputFormat">RGBA8888</enum> |
|||
<key>alphaHandling</key> |
|||
<enum type="SettingsBase::AlphaHandling">ClearTransparentPixels</enum> |
|||
<key>contentProtection</key> |
|||
<struct type="ContentProtection"> |
|||
<key>key</key> |
|||
<string></string> |
|||
</struct> |
|||
<key>autoAliasEnabled</key> |
|||
<true/> |
|||
<key>trimSpriteNames</key> |
|||
<true/> |
|||
<key>prependSmartFolderName</key> |
|||
<false/> |
|||
<key>autodetectAnimations</key> |
|||
<true/> |
|||
<key>globalSpriteSettings</key> |
|||
<struct type="SpriteSettings"> |
|||
<key>scale</key> |
|||
<double>1</double> |
|||
<key>scaleMode</key> |
|||
<enum type="ScaleMode">Smooth</enum> |
|||
<key>extrude</key> |
|||
<uint>1</uint> |
|||
<key>trimThreshold</key> |
|||
<uint>1</uint> |
|||
<key>trimMargin</key> |
|||
<uint>1</uint> |
|||
<key>trimMode</key> |
|||
<enum type="SpriteSettings::TrimMode">Trim</enum> |
|||
<key>tracerTolerance</key> |
|||
<int>200</int> |
|||
<key>heuristicMask</key> |
|||
<false/> |
|||
<key>defaultPivotPoint</key> |
|||
<point_f>0.5,0.5</point_f> |
|||
<key>writePivotPoints</key> |
|||
<false/> |
|||
</struct> |
|||
<key>individualSpriteSettings</key> |
|||
<map type="IndividualSpriteSettingsMap"> |
|||
<key type="filename">fruit-sprites/background.png</key> |
|||
<struct type="IndividualSpriteSettings"> |
|||
<key>pivotPoint</key> |
|||
<point_f>0.5,0.5</point_f> |
|||
<key>scale9Enabled</key> |
|||
<false/> |
|||
<key>scale9Borders</key> |
|||
<rect>300,240,600,480</rect> |
|||
<key>scale9Paddings</key> |
|||
<rect>300,240,600,480</rect> |
|||
<key>scale9FromFile</key> |
|||
<false/> |
|||
</struct> |
|||
<key type="filename">fruit-sprites/banana.png</key> |
|||
<key type="filename">fruit-sprites/cherries.png</key> |
|||
<key type="filename">fruit-sprites/crate.png</key> |
|||
<key type="filename">fruit-sprites/orange.png</key> |
|||
<struct type="IndividualSpriteSettings"> |
|||
<key>pivotPoint</key> |
|||
<point_f>0.5,0.5</point_f> |
|||
<key>scale9Enabled</key> |
|||
<false/> |
|||
<key>scale9Borders</key> |
|||
<rect>32,32,64,64</rect> |
|||
<key>scale9Paddings</key> |
|||
<rect>32,32,64,64</rect> |
|||
<key>scale9FromFile</key> |
|||
<false/> |
|||
</struct> |
|||
<key type="filename">fruit-sprites/ground.png</key> |
|||
<struct type="IndividualSpriteSettings"> |
|||
<key>pivotPoint</key> |
|||
<point_f>0.5,0.5</point_f> |
|||
<key>scale9Enabled</key> |
|||
<false/> |
|||
<key>scale9Borders</key> |
|||
<rect>300,157,600,313</rect> |
|||
<key>scale9Paddings</key> |
|||
<rect>300,157,600,313</rect> |
|||
<key>scale9FromFile</key> |
|||
<false/> |
|||
</struct> |
|||
</map> |
|||
<key>fileList</key> |
|||
<array> |
|||
<filename>fruit-sprites</filename> |
|||
</array> |
|||
<key>ignoreFileList</key> |
|||
<array/> |
|||
<key>replaceList</key> |
|||
<array/> |
|||
<key>ignoredWarnings</key> |
|||
<array> |
|||
<string>phaser3-exporter-beta</string> |
|||
</array> |
|||
<key>commonDivisorX</key> |
|||
<uint>1</uint> |
|||
<key>commonDivisorY</key> |
|||
<uint>1</uint> |
|||
<key>packNormalMaps</key> |
|||
<false/> |
|||
<key>autodetectNormalMaps</key> |
|||
<true/> |
|||
<key>normalMapFilter</key> |
|||
<string></string> |
|||
<key>normalMapSuffix</key> |
|||
<string></string> |
|||
<key>normalMapSheetFileName</key> |
|||
<filename></filename> |
|||
<key>exporterProperties</key> |
|||
<map type="ExporterProperties"> |
|||
<key>css::media-query-2x</key> |
|||
<struct type="ExporterProperty"> |
|||
<key>value</key> |
|||
<string>(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)</string> |
|||
</struct> |
|||
<key>css::sprite-prefix</key> |
|||
<struct type="ExporterProperty"> |
|||
<key>value</key> |
|||
<string></string> |
|||
</struct> |
|||
</map> |
|||
</struct> |
|||
</data> |