fiddle with bubbles
This commit is contained in:
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user