fiddle with bubbles
This commit is contained in:
@@ -100,7 +100,7 @@
|
|||||||
graphicHeight rewardSprite.pixels.height
|
graphicHeight rewardSprite.pixels.height
|
||||||
pieceAssetWidth (Std.int (/ graphicWidth PUZZLE_WIDTH))
|
pieceAssetWidth (Std.int (/ graphicWidth PUZZLE_WIDTH))
|
||||||
pieceAssetHeight (Std.int (/ graphicHeight PUZZLE_HEIGHT))
|
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
|
PIECE_WIDTH
|
||||||
(/ rewardSprite.width PUZZLE_WIDTH)
|
(/ rewardSprite.width PUZZLE_WIDTH)
|
||||||
PIECE_HEIGHT
|
PIECE_HEIGHT
|
||||||
|
@@ -23,6 +23,7 @@ class JigsawPiece{
|
|||||||
public function new( xy_: Vec2
|
public function new( xy_: Vec2
|
||||||
, row: Int
|
, row: Int
|
||||||
, col: Int
|
, col: Int
|
||||||
|
, bubbleSize: Float
|
||||||
, lt: Vec2, rt: Vec2, rb: Vec2, lb: Vec2
|
, lt: Vec2, rt: Vec2, rb: Vec2, lb: Vec2
|
||||||
, sideData_: JigsawPieceData
|
, sideData_: JigsawPieceData
|
||||||
){
|
){
|
||||||
@@ -33,16 +34,16 @@ class JigsawPiece{
|
|||||||
stepAngle = JigsawMagicNumbers.stepSize*Math.PI/180;
|
stepAngle = JigsawMagicNumbers.stepSize*Math.PI/180;
|
||||||
first = lt;
|
first = lt;
|
||||||
// NORTH side
|
// 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 );
|
points.push( rt );
|
||||||
// EAST side
|
// 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 );
|
points.push( rb );
|
||||||
// SOUTH side
|
// 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 );
|
points.push( lb );
|
||||||
// WEST side
|
// 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 );
|
points.push( lt );
|
||||||
|
|
||||||
var maxX = 0.0;
|
var maxX = 0.0;
|
||||||
@@ -63,28 +64,32 @@ class JigsawPiece{
|
|||||||
}
|
}
|
||||||
private function createVertSide( A: Vec2
|
private function createVertSide( A: Vec2
|
||||||
, B: Vec2
|
, B: Vec2
|
||||||
|
, bubbleSize: Float
|
||||||
, side: JigsawSideData
|
, side: JigsawSideData
|
||||||
, compass: Compass
|
, compass: Compass
|
||||||
){
|
){
|
||||||
drawSide( A.x + ( B.x - A.x )/2 + JigsawMagicNumbers.dMore/2 - side.squew*( JigsawMagicNumbers.dMore )
|
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 )
|
, A.y + ( B.y - A.y )/2 + JigsawMagicNumbers.dinout/2 - side.inout*( JigsawMagicNumbers.dinout )
|
||||||
|
, bubbleSize
|
||||||
, side
|
, side
|
||||||
, compass
|
, compass
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
private function createHoriSide ( A: Vec2
|
private function createHoriSide ( A: Vec2
|
||||||
, B: Vec2
|
, B: Vec2
|
||||||
|
, bubbleSize: Float
|
||||||
, side: JigsawSideData
|
, side: JigsawSideData
|
||||||
, compass: Compass
|
, compass: Compass
|
||||||
){
|
){
|
||||||
|
|
||||||
drawSide( A.x + ( B.x - A.x )/2 + JigsawMagicNumbers.dinout/2 - side.inout*( JigsawMagicNumbers.dinout )
|
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 )
|
, A.y + ( B.y - A.y )/2 + JigsawMagicNumbers.dMore/2 - side.squew*( JigsawMagicNumbers.dMore )
|
||||||
|
, bubbleSize
|
||||||
, side
|
, side
|
||||||
, compass
|
, 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 halfPI = Math.PI/2;
|
||||||
var dimensions = new Vec2();
|
var dimensions = new Vec2();
|
||||||
var offsetCentre = new Vec2();
|
var offsetCentre = new Vec2();
|
||||||
@@ -92,10 +97,10 @@ class JigsawPiece{
|
|||||||
centre =
|
centre =
|
||||||
switch( compass )
|
switch( compass )
|
||||||
{
|
{
|
||||||
case NORTH: new Vec2( dx, dy + 6*switch bubble{ case IN: 1; case OUT: -1; } );
|
case NORTH: new Vec2( dx, dy + bubbleSize*switch bubble{ case IN: 1; case OUT: -1; } );
|
||||||
case EAST: new Vec2( dx - 6*switch bubble{ case IN: 1; case OUT: -1; }, dy );
|
case EAST: new Vec2( dx - bubbleSize*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 SOUTH: new Vec2( dx, dy - bubbleSize*switch bubble{ case IN: 1; case OUT: -1; } );
|
||||||
case WEST: new Vec2( dx + 6*switch bubble{ case IN: 1; case OUT: -1; }, dy );
|
case WEST: new Vec2( dx + bubbleSize*switch bubble{ case IN: 1; case OUT: -1; }, dy );
|
||||||
}
|
}
|
||||||
curveBuilder = new OpenEllipse();
|
curveBuilder = new OpenEllipse();
|
||||||
curveBuilder.centre = centre;
|
curveBuilder.centre = centre;
|
||||||
|
@@ -20,6 +20,7 @@ class Jigsawx {
|
|||||||
public function new( pieceWidth: Float
|
public function new( pieceWidth: Float
|
||||||
, pieceHeight: Float
|
, pieceHeight: Float
|
||||||
, edgeLeeway: Float
|
, edgeLeeway: Float
|
||||||
|
, bubbleSize: Float
|
||||||
, rows_: Int
|
, rows_: Int
|
||||||
, cols_: Int
|
, cols_: Int
|
||||||
, r: FlxRandom) {
|
, r: FlxRandom) {
|
||||||
@@ -63,7 +64,7 @@ class Jigsawx {
|
|||||||
for( row in 0...rows ){
|
for( row in 0...rows ){
|
||||||
pieces.push( new Array() );
|
pieces.push( new Array() );
|
||||||
for( col in 0...cols ){
|
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;
|
pieces[ row ][ col ] = jig;
|
||||||
jigs.push( jig );
|
jigs.push( jig );
|
||||||
xy.x += dx;
|
xy.x += dx;
|
||||||
|
Reference in New Issue
Block a user