diff --git a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss index f5dc2a3a..7e56fcfd 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss +++ b/projects/flixel-desktop-habit-puzzle-game/source/HabitState.kiss @@ -100,7 +100,7 @@ graphicHeight rewardSprite.pixels.height pieceAssetWidth (Std.int (/ graphicWidth PUZZLE_WIDTH)) pieceAssetHeight (Std.int (/ graphicHeight PUZZLE_HEIGHT)) - j (new Jigsawx pieceAssetWidth pieceAssetHeight EDGE_LEEWAY PUZZLE_HEIGHT PUZZLE_WIDTH r) + j (new Jigsawx pieceAssetWidth pieceAssetHeight EDGE_LEEWAY BUBBLE_SIZE PUZZLE_HEIGHT PUZZLE_WIDTH r) PIECE_WIDTH (/ rewardSprite.width PUZZLE_WIDTH) PIECE_HEIGHT diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx b/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx index 36d93ccc..8772ee65 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx +++ b/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/JigsawPiece.hx @@ -23,6 +23,7 @@ class JigsawPiece{ public function new( xy_: Vec2 , row: Int , col: Int + , bubbleSize: Float , lt: Vec2, rt: Vec2, rb: Vec2, lb: Vec2 , sideData_: JigsawPieceData ){ @@ -33,16 +34,16 @@ class JigsawPiece{ stepAngle = JigsawMagicNumbers.stepSize*Math.PI/180; first = lt; // NORTH side - if( sideData.north != null ) createVertSide( lt, rt, sideData.north, NORTH ); + if( sideData.north != null ) createVertSide( lt, rt, bubbleSize, sideData.north, NORTH ); points.push( rt ); // EAST side - if( sideData.east != null ) createHoriSide( rt, rb, sideData.east, EAST ); + if( sideData.east != null ) createHoriSide( rt, rb, bubbleSize, sideData.east, EAST ); points.push( rb ); // SOUTH side - if( sideData.south != null ) createVertSide( rb, lb, sideData.south, SOUTH ); + if( sideData.south != null ) createVertSide( rb, lb, bubbleSize, sideData.south, SOUTH ); points.push( lb ); // WEST side - if( sideData.west != null ) createHoriSide( lb, lt, sideData.west, WEST ); + if( sideData.west != null ) createHoriSide( lb, lt, bubbleSize, sideData.west, WEST ); points.push( lt ); var maxX = 0.0; @@ -63,28 +64,32 @@ class JigsawPiece{ } private function createVertSide( A: Vec2 , B: Vec2 + , bubbleSize: Float , side: JigsawSideData , compass: Compass ){ drawSide( A.x + ( B.x - A.x )/2 + JigsawMagicNumbers.dMore/2 - side.squew*( JigsawMagicNumbers.dMore ) , A.y + ( B.y - A.y )/2 + JigsawMagicNumbers.dinout/2 - side.inout*( JigsawMagicNumbers.dinout ) + , bubbleSize , side , compass ); } private function createHoriSide ( A: Vec2 , B: Vec2 + , bubbleSize: Float , side: JigsawSideData , compass: Compass ){ drawSide( A.x + ( B.x - A.x )/2 + JigsawMagicNumbers.dinout/2 - side.inout*( JigsawMagicNumbers.dinout ) , A.y + ( B.y - A.y )/2 + JigsawMagicNumbers.dMore/2 - side.squew*( JigsawMagicNumbers.dMore ) + , bubbleSize , side , compass ); } - private function drawSide( dx: Float, dy: Float, sideData: JigsawSideData, compass: Compass ){ + private function drawSide( dx: Float, dy: Float, bubbleSize:Float, sideData: JigsawSideData, compass: Compass ){ var halfPI = Math.PI/2; var dimensions = new Vec2(); var offsetCentre = new Vec2(); @@ -92,10 +97,10 @@ class JigsawPiece{ centre = switch( compass ) { - case NORTH: new Vec2( dx, dy + 6*switch bubble{ case IN: 1; case OUT: -1; } ); - case EAST: new Vec2( dx - 6*switch bubble{ case IN: 1; case OUT: -1; }, dy ); - case SOUTH: new Vec2( dx, dy - 6*switch bubble{ case IN: 1; case OUT: -1; } ); - case WEST: new Vec2( dx + 6*switch bubble{ case IN: 1; case OUT: -1; }, dy ); + case NORTH: new Vec2( dx, dy + bubbleSize*switch bubble{ case IN: 1; case OUT: -1; } ); + case EAST: new Vec2( dx - bubbleSize*switch bubble{ case IN: 1; case OUT: -1; }, dy ); + case SOUTH: new Vec2( dx, dy - bubbleSize*switch bubble{ case IN: 1; case OUT: -1; } ); + case WEST: new Vec2( dx + bubbleSize*switch bubble{ case IN: 1; case OUT: -1; }, dy ); } curveBuilder = new OpenEllipse(); curveBuilder.centre = centre; diff --git a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx b/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx index 7adbc0f6..d0f556b4 100644 --- a/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx +++ b/projects/flixel-desktop-habit-puzzle-game/source/jigsawx/Jigsawx.hx @@ -20,6 +20,7 @@ class Jigsawx { public function new( pieceWidth: Float , pieceHeight: Float , edgeLeeway: Float + , bubbleSize: Float , rows_: Int , cols_: Int , r: FlxRandom) { @@ -63,7 +64,7 @@ class Jigsawx { for( row in 0...rows ){ pieces.push( new Array() ); for( col in 0...cols ){ - jig = new JigsawPiece( xy, row, col, lt, rt, rb, lb, sides[ row ][ col ] ); + jig = new JigsawPiece( xy, row, col, bubbleSize, lt, rt, rb, lb, sides[ row ][ col ] ); pieces[ row ][ col ] = jig; jigs.push( jig ); xy.x += dx;