MCPcopy
hub / github.com/phaserjs/phaser / FitToRegion

Function FitToRegion

src/actions/FitToRegion.js:45–95  ·  view source on GitHub ↗
(items, scaleMode, region, itemCoverage)

Source from the content-addressed store, hash-verified

43 * @return {Phaser.GameObjects.GameObject[]} - The items that were fitted.
44 */
45var FitToRegion = function (items, scaleMode, region, itemCoverage)
46{
47 if (!Array.isArray(items)) { items = [ items ]; }
48 if (scaleMode === undefined) { scaleMode = 0; }
49 if (!region)
50 {
51 var scene = items[0].scene;
52 region = new Rectangle(0, 0, scene.scale.width, scene.scale.height);
53 }
54 if (!itemCoverage) { itemCoverage = {}; }
55
56 for (var i = 0; i < items.length; i++)
57 {
58 var item = items[i];
59 var itemWidth = GetFastValue(itemCoverage, 'width', GetFastValue(item, 'width', 1));
60 var itemHeight = GetFastValue(itemCoverage, 'height', GetFastValue(item, 'height', 1));
61 var itemOriginX = GetFastValue(itemCoverage, 'originX', GetFastValue(item, 'originX', 0.5));
62 var itemOriginY = GetFastValue(itemCoverage, 'originY', GetFastValue(item, 'originY', 0.5));
63
64 // Reposition item.
65 item.x = region.x + region.width * itemOriginX;
66 item.y = region.y + region.height * itemOriginY;
67
68 // Compute relative scales.
69 var itemScaleXToRegion = region.width / itemWidth;
70 var itemScaleYToRegion = region.height / itemHeight;
71 switch (scaleMode)
72 {
73 case -1:
74 {
75 // Scale to fit the inside of the region.
76 item.setScale(Math.min(itemScaleXToRegion, itemScaleYToRegion));
77 break;
78 }
79 case 0:
80 {
81 // Scale both axes independently to match the region.
82 item.setScale(itemScaleXToRegion, itemScaleYToRegion);
83 break;
84 }
85 case 1:
86 {
87 // Scale to envelop the outside of the region.
88 item.setScale(Math.max(itemScaleXToRegion, itemScaleYToRegion));
89 break;
90 }
91 }
92 }
93
94 return item;
95};
96
97module.exports = FitToRegion;

Callers 2

AddMaskShapeFunction · 0.85

Calls 2

GetFastValueFunction · 0.85
setScaleMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…