Revision c622889d
Added by Leszek Koltunski over 6 years ago
| src/main/java/org/distorted/effect/AppearEffectMove.java | ||
|---|---|---|
| 32 | 32 |
{
|
| 33 | 33 |
public int createEffects(int duration) |
| 34 | 34 |
{
|
| 35 |
mCubeEffectPosition = new int[] {2};
|
|
| 35 |
mCubeEffectPosition = new int[] {6};
|
|
| 36 | 36 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
| 37 | 37 |
|
| 38 | 38 |
Dynamic3D oldCube0 = new Dynamic3D(duration, 0.5f); |
| src/main/java/org/distorted/effect/AppearEffectRound.java | ||
|---|---|---|
| 33 | 33 |
{
|
| 34 | 34 |
public int createEffects(int duration) |
| 35 | 35 |
{
|
| 36 |
mCubeEffectPosition = new int[] {2, 2};
|
|
| 37 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
|
| 38 |
|
|
| 39 |
Dynamic3D oldCube0 = new Dynamic3D(duration/2, 0.5f); |
|
| 40 |
oldCube0.add(new Static3D(-TEXTURE_SIZE,0,0)); |
|
| 41 |
oldCube0.add(new Static3D( 0,0,0)); |
|
| 42 |
mCubeEffects[0] = new MatrixEffectMove(oldCube0); |
|
| 36 |
float X = TEXTURE_SIZE; |
|
| 43 | 37 |
|
| 44 |
Dynamic3D oldCube1 = new Dynamic3D(duration/2, 0.5f); |
|
| 45 |
oldCube1.add(new Static3D(0.01f, 0.01f, 0.01f)); |
|
| 46 |
oldCube1.add(new Static3D(1.00f, 1.00f, 1.00f)); |
|
| 47 |
mCubeEffects[1] = new MatrixEffectScale(oldCube1); |
|
| 38 |
mCubeEffectPosition = new int[] {6};
|
|
| 39 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
|
| 40 |
/* |
|
| 41 |
Dynamic3D d0 = new Dynamic3D(duration, 0.5f); |
|
| 42 |
d0.add(new Static3D( 0.01f, 0.01f, 0.01f)); |
|
| 43 |
d0.add(new Static3D( 1.00f, 1.00f, 1.00f)); |
|
| 44 |
mCubeEffects[0] = new MatrixEffectScale(d0); |
|
| 45 |
*/ |
|
| 46 |
Dynamic3D d1 = new Dynamic3D(duration, 0.5f); |
|
| 47 |
d1.add(new Static3D( 0, 0, 0)); |
|
| 48 |
d1.add(new Static3D(-X, 0, 0)); |
|
| 49 |
d1.add(new Static3D( 0, 0, 0)); |
|
| 50 |
mCubeEffects[0] = new MatrixEffectMove(d1); |
|
| 48 | 51 |
|
| 49 |
return 2;
|
|
| 52 |
return 1;
|
|
| 50 | 53 |
} |
| 51 | 54 |
|
| 52 | 55 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/effect/AppearEffectScale.java | ||
|---|---|---|
| 30 | 30 |
{
|
| 31 | 31 |
public int createEffects(int duration) |
| 32 | 32 |
{
|
| 33 |
mCubeEffectPosition = new int[] {5};
|
|
| 33 |
mCubeEffectPosition = new int[] {6};
|
|
| 34 | 34 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
| 35 | 35 |
|
| 36 | 36 |
Dynamic3D oldCube0 = new Dynamic3D(duration, 0.5f); |
| src/main/java/org/distorted/effect/DisappearEffectMove.java | ||
|---|---|---|
| 32 | 32 |
{
|
| 33 | 33 |
public int createEffects(int duration) |
| 34 | 34 |
{
|
| 35 |
mCubeEffectPosition = new int[] {2};
|
|
| 35 |
mCubeEffectPosition = new int[] {6};
|
|
| 36 | 36 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
| 37 | 37 |
|
| 38 | 38 |
Dynamic3D oldCube0 = new Dynamic3D(duration, 0.5f); |
| src/main/java/org/distorted/effect/DisappearEffectRound.java | ||
|---|---|---|
| 33 | 33 |
{
|
| 34 | 34 |
public int createEffects(int duration) |
| 35 | 35 |
{
|
| 36 |
mCubeEffectPosition = new int[] {2, 2};
|
|
| 37 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
|
| 38 |
|
|
| 39 |
Dynamic3D oldCube0 = new Dynamic3D(duration/2, 0.5f); |
|
| 40 |
oldCube0.add(new Static3D( 0,0,0)); |
|
| 41 |
oldCube0.add(new Static3D(TEXTURE_SIZE,0,0)); |
|
| 42 |
mCubeEffects[0] = new MatrixEffectMove(oldCube0); |
|
| 36 |
float X = TEXTURE_SIZE; |
|
| 43 | 37 |
|
| 44 |
Dynamic3D oldCube1 = new Dynamic3D(duration/2, 0.5f); |
|
| 45 |
oldCube1.add(new Static3D(1.0f, 1.0f, 1.0f)); |
|
| 46 |
oldCube1.add(new Static3D(0.01f, 0.01f, 0.01f)); |
|
| 47 |
mCubeEffects[1] = new MatrixEffectScale(oldCube1); |
|
| 38 |
mCubeEffectPosition = new int[] {6};
|
|
| 39 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
|
| 40 |
/* |
|
| 41 |
Dynamic3D d0 = new Dynamic3D(duration, 0.5f); |
|
| 42 |
d0.add(new Static3D( 1.00f, 1.00f, 1.00f)); |
|
| 43 |
d0.add(new Static3D( 0.01f, 0.01f, 0.01f)); |
|
| 44 |
mCubeEffects[0] = new MatrixEffectScale(d0); |
|
| 45 |
*/ |
|
| 46 |
Dynamic3D d1 = new Dynamic3D(duration, 0.5f); |
|
| 47 |
d1.add(new Static3D( 0, 0, 0)); |
|
| 48 |
d1.add(new Static3D(+X, 0, 0)); |
|
| 49 |
d1.add(new Static3D( 0, 0, 0)); |
|
| 50 |
mCubeEffects[0] = new MatrixEffectMove(d1); |
|
| 48 | 51 |
|
| 49 |
return 2;
|
|
| 52 |
return 1;
|
|
| 50 | 53 |
} |
| 51 | 54 |
|
| 52 | 55 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/effect/DisappearEffectScale.java | ||
|---|---|---|
| 30 | 30 |
{
|
| 31 | 31 |
public int createEffects(int duration) |
| 32 | 32 |
{
|
| 33 |
mCubeEffectPosition = new int[] {5};
|
|
| 33 |
mCubeEffectPosition = new int[] {6};
|
|
| 34 | 34 |
mCubeEffects = new Effect[mCubeEffectPosition.length]; |
| 35 | 35 |
|
| 36 | 36 |
Dynamic3D oldCube0 = new Dynamic3D(duration, 0.5f); |
| src/main/java/org/distorted/magic/RubikCube.java | ||
|---|---|---|
| 102 | 102 |
|
| 103 | 103 |
Static3D[][][] cubeVectors = new Static3D[mSize][mSize][mSize]; |
| 104 | 104 |
|
| 105 |
Static3D center = new Static3D(TEXTURE_SIZE*0.5f, TEXTURE_SIZE*0.5f, TEXTURE_SIZE*0.5f); |
|
| 105 |
Static3D sinkCenter = new Static3D(TEXTURE_SIZE*0.5f, TEXTURE_SIZE*0.5f, TEXTURE_SIZE*0.5f); |
|
| 106 |
Static3D matrCenter = new Static3D(0,0,0); |
|
| 106 | 107 |
Static4D region = new Static4D(0,0,0, TEXTURE_SIZE*0.72f); |
| 107 | 108 |
|
| 108 |
VertexEffectSink sinkEffect = new VertexEffectSink( new Static1D(getSinkStrength()), center, region );
|
|
| 109 |
VertexEffectSink sinkEffect = new VertexEffectSink( new Static1D(getSinkStrength()), sinkCenter, region );
|
|
| 109 | 110 |
MatrixEffectMove moveEffect = new MatrixEffectMove(mMove); |
| 110 | 111 |
MatrixEffectScale scaleEffect = new MatrixEffectScale(mScale); |
| 111 |
MatrixEffectQuaternion quatCEffect = new MatrixEffectQuaternion(quatC, center);
|
|
| 112 |
MatrixEffectQuaternion quatAEffect = new MatrixEffectQuaternion(quatA, center);
|
|
| 112 |
MatrixEffectQuaternion quatCEffect = new MatrixEffectQuaternion(quatC, matrCenter);
|
|
| 113 |
MatrixEffectQuaternion quatAEffect = new MatrixEffectQuaternion(quatA, matrCenter);
|
|
| 113 | 114 |
|
| 114 | 115 |
MatrixEffectMove nodeMoveEffect = new MatrixEffectMove(mNodeMove); |
| 115 | 116 |
MatrixEffectScale nodeScaleEffect = new MatrixEffectScale(mNodeScale); |
| 116 | 117 |
|
| 117 |
effects.apply(nodeMoveEffect); |
|
| 118 | 118 |
effects.apply(nodeScaleEffect); |
| 119 |
effects.apply(nodeMoveEffect); |
|
| 119 | 120 |
|
| 120 | 121 |
// 3x2 bitmap = 6 squares: |
| 121 | 122 |
// |
| ... | ... | |
| 138 | 139 |
final Static4D mapBlack = new Static4D(ze,ze, ze+of,ze+of); |
| 139 | 140 |
|
| 140 | 141 |
Static4D tmpFront, tmpBack, tmpLeft, tmpRight, tmpTop, tmpBottom; |
| 141 |
float nc = 0.5f*(mSize-1);
|
|
| 142 |
float nc = 0.5f*mSize;
|
|
| 142 | 143 |
int vertices = (int)(24.0f/mSize + 2.0f); |
| 143 | 144 |
|
| 144 | 145 |
for(int x = 0; x< mSize; x++) |
| ... | ... | |
| 160 | 161 |
mRotationAngle[x][y][z] = new Dynamic1D(); |
| 161 | 162 |
mRotationAxis[x][y][z] = new Static3D(1,0,0); |
| 162 | 163 |
mCurrentPosition[x][y][z] = new Static3D(x,y,z); |
| 163 |
mRotateEffect[x][y][z] = new MatrixEffectRotate(mRotationAngle[x][y][z], mRotationAxis[x][y][z], center);
|
|
| 164 |
mRotateEffect[x][y][z] = new MatrixEffectRotate(mRotationAngle[x][y][z], mRotationAxis[x][y][z], matrCenter);
|
|
| 164 | 165 |
|
| 165 | 166 |
mEffects[x][y][z] = new DistortedEffects(); |
| 166 | 167 |
mEffects[x][y][z].apply(sinkEffect); |
| 167 |
mEffects[x][y][z].apply(moveEffect); |
|
| 168 |
mEffects[x][y][z].apply(scaleEffect); |
|
| 169 |
mEffects[x][y][z].apply(quatCEffect); |
|
| 170 |
mEffects[x][y][z].apply(quatAEffect); |
|
| 171 |
mEffects[x][y][z].apply(mRotateEffect[x][y][z]); |
|
| 172 |
mEffects[x][y][z].apply( new MatrixEffectQuaternion(mQuatScramble[x][y][z], center)); |
|
| 173 | 168 |
mEffects[x][y][z].apply( new MatrixEffectMove(cubeVectors[x][y][z]) ); |
| 169 |
mEffects[x][y][z].apply( new MatrixEffectQuaternion(mQuatScramble[x][y][z], matrCenter)); |
|
| 170 |
mEffects[x][y][z].apply(mRotateEffect[x][y][z]); |
|
| 171 |
mEffects[x][y][z].apply(quatAEffect); |
|
| 172 |
mEffects[x][y][z].apply(quatCEffect); |
|
| 173 |
mEffects[x][y][z].apply(scaleEffect); |
|
| 174 |
mEffects[x][y][z].apply(moveEffect); |
|
| 174 | 175 |
|
| 175 | 176 |
mNodes[x][y][z] = new DistortedNode(mTexture,mEffects[x][y][z],mCubes[x][y][z]); |
| 176 | 177 |
|
| ... | ... | |
| 481 | 482 |
|
| 482 | 483 |
float scaleFactor = (size/(TEXTURE_SIZE*mSize)) * (float)texW/(screenWidth>screenHeight ? screenHeight:screenWidth); |
| 483 | 484 |
|
| 484 |
mMove.set( (texW-scaleFactor*TEXTURE_SIZE)/2 , (texH-scaleFactor*TEXTURE_SIZE)/2 , -scaleFactor*TEXTURE_SIZE/2 );
|
|
| 485 |
mMove.set( texW*0.5f , texH*0.5f , 0.0f );
|
|
| 485 | 486 |
mScale.set(scaleFactor,scaleFactor,scaleFactor); |
| 486 | 487 |
} |
| 487 | 488 |
|
Also available in: Unified diff
Invert the order of Matrix Effects. Now, just as in the other queues, the first matrix effect is actually the first to act on the object - not the other way around!