Revision 63ebcf3a
Added by Leszek Koltunski 10 months ago
| src/main/java/org/distorted/helpers/MovesController.java | ||
|---|---|---|
| 17 | 17 |
import android.widget.LinearLayout; |
| 18 | 18 |
|
| 19 | 19 |
import org.distorted.objectlib.helpers.MovesFinished; |
| 20 |
import org.distorted.objectlib.helpers.ObjectMove; |
|
| 20 | 21 |
import org.distorted.objectlib.main.ObjectControl; |
| 21 | 22 |
|
| 22 | 23 |
import org.distorted.main.R; |
| ... | ... | |
| 28 | 29 |
private static final int MOVES_PLACE_0 = 100; |
| 29 | 30 |
private static final int MILLIS_PER_DEGREE = 6; |
| 30 | 31 |
|
| 31 |
private static class Move |
|
| 32 |
{
|
|
| 33 |
private final int mAxis, mRow, mAngle; |
|
| 34 |
|
|
| 35 |
Move(int axis, int row, int angle) |
|
| 36 |
{
|
|
| 37 |
mAxis = axis; |
|
| 38 |
mRow = row; |
|
| 39 |
mAngle= angle; |
|
| 40 |
} |
|
| 41 |
} |
|
| 42 |
|
|
| 43 |
private final ArrayList<Move> mMoves; |
|
| 32 |
private final ArrayList<ObjectMove> mMoves; |
|
| 44 | 33 |
private boolean mCanPrevMove; |
| 45 | 34 |
private ObjectControl mControl; |
| 46 | 35 |
private TransparentImageButton mPrevButton; |
| ... | ... | |
| 71 | 60 |
|
| 72 | 61 |
if( numMoves>0 ) |
| 73 | 62 |
{
|
| 74 |
Move move = mMoves.remove(numMoves-1); |
|
| 75 |
int axis = move.mAxis; |
|
| 76 |
int angle = move.mAngle; |
|
| 63 |
ObjectMove move = mMoves.remove(numMoves-1); |
|
| 64 |
int angle = move.getAngle(); |
|
| 77 | 65 |
|
| 78 | 66 |
if( angle!=0 ) |
| 79 | 67 |
{
|
| 80 | 68 |
mCanPrevMove = false; |
| 81 | 69 |
mControl = control; |
| 82 | 70 |
mControl.blockTouch(MOVES_PLACE_0); |
| 83 |
mControl.addRotation(this, axis, (1<<move.mRow), -angle, MILLIS_PER_DEGREE);
|
|
| 71 |
mControl.addBackwardRotation(this, move, MILLIS_PER_DEGREE);
|
|
| 84 | 72 |
} |
| 85 | 73 |
else |
| 86 | 74 |
{
|
| ... | ... | |
| 112 | 100 |
public void addMove(Activity act, int axis, int row, int angle) |
| 113 | 101 |
{
|
| 114 | 102 |
if( mMoves.isEmpty() ) changeBackMove(act,true); |
| 115 |
mMoves.add(new Move(axis,row,angle));
|
|
| 103 |
mMoves.add(new ObjectMove(axis,1<<row,angle));
|
|
| 116 | 104 |
} |
| 117 | 105 |
|
| 118 | 106 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 165 | 153 |
|
| 166 | 154 |
for(int m=0; m<numMoves; m++) |
| 167 | 155 |
{
|
| 168 |
Move move = mMoves.get(m); |
|
| 156 |
ObjectMove move = mMoves.get(m);
|
|
| 169 | 157 |
|
| 170 | 158 |
if( m>0 ) moves.append(' ');
|
| 171 |
moves.append(move.mAxis);
|
|
| 159 |
moves.append(move.getAxis());
|
|
| 172 | 160 |
moves.append(' ');
|
| 173 |
moves.append(move.mRow);
|
|
| 161 |
moves.append(move.getRow());
|
|
| 174 | 162 |
moves.append(' ');
|
| 175 |
moves.append(move.mAngle);
|
|
| 163 |
moves.append(move.getAngle());
|
|
| 176 | 164 |
} |
| 177 | 165 |
|
| 178 | 166 |
editor.putString( key, moves.toString() ); |
| src/main/java/org/distorted/solvers/ScreenSolutionMultiphased.java | ||
|---|---|---|
| 445 | 445 |
ObjectMove move = mMoves[mCurrPhase][--mCurrMove]; |
| 446 | 446 |
ObjectControl control = act.getControl(); |
| 447 | 447 |
control.blockTouch(MOVES_PLACE_0); |
| 448 |
control.addRotation(this, move.getAxis(), move.getRowBitmap(), -move.getAngle(), MILLIS_PER_DEGREE);
|
|
| 448 |
control.addBackwardRotation(this, move, MILLIS_PER_DEGREE);
|
|
| 449 | 449 |
} |
| 450 | 450 |
else if( mCurrPhase>0 ) |
| 451 | 451 |
{
|
| ... | ... | |
| 483 | 483 |
ObjectMove move = mMoves[mCurrPhase][mCurrMove++]; |
| 484 | 484 |
ObjectControl control = act.getControl(); |
| 485 | 485 |
control.blockTouch(MOVES_PLACE_1); |
| 486 |
control.addRotation(this, move.getAxis(), move.getRowBitmap(), move.getAngle(), MILLIS_PER_DEGREE);
|
|
| 486 |
control.addForwardRotation(this, move, MILLIS_PER_DEGREE);
|
|
| 487 | 487 |
if( mCurrMove==mNumMoves && mCurrPhase==mNumPhases-1 ) glowCubits(mCubitsNotInvolved[mCurrPhase]); |
| 488 | 488 |
} |
| 489 | 489 |
else if( mCurrPhase<mNumPhases-1 ) |
| src/main/java/org/distorted/solvers/ScreenSolutionSinglephased.java | ||
|---|---|---|
| 191 | 191 |
} |
| 192 | 192 |
else |
| 193 | 193 |
{
|
| 194 |
int axis = mMoves[mCurrMove-1].getAxis(); |
|
| 195 |
int rowBitmap = mMoves[mCurrMove-1].getRowBitmap(); |
|
| 196 |
int bareAngle = mMoves[mCurrMove-1].getAngle(); |
|
| 194 |
int bareAngle = mMoves[mCurrMove-1].getAngle(); |
|
| 197 | 195 |
|
| 198 | 196 |
if( bareAngle!=0 ) |
| 199 | 197 |
{
|
| 200 | 198 |
mCanRotate = false; |
| 201 |
control.addRotation(this, axis, rowBitmap, bareAngle, MILLIS_PER_DEGREE);
|
|
| 199 |
control.addForwardRotation(this, mMoves[mCurrMove-1], MILLIS_PER_DEGREE);
|
|
| 202 | 200 |
} |
| 203 | 201 |
else |
| 204 | 202 |
{
|
| ... | ... | |
| 227 | 225 |
} |
| 228 | 226 |
else |
| 229 | 227 |
{
|
| 230 |
int axis = mMoves[mCurrMove].getAxis(); |
|
| 231 |
int rowBitmap = mMoves[mCurrMove].getRowBitmap(); |
|
| 232 |
int bareAngle = mMoves[mCurrMove].getAngle(); |
|
| 228 |
int bareAngle = mMoves[mCurrMove].getAngle(); |
|
| 233 | 229 |
|
| 234 | 230 |
if( bareAngle!=0 ) |
| 235 | 231 |
{
|
| 236 | 232 |
mCanRotate = false; |
| 237 |
control.addRotation(this, axis, rowBitmap, -bareAngle, MILLIS_PER_DEGREE);
|
|
| 233 |
control.addBackwardRotation(this, mMoves[mCurrMove], MILLIS_PER_DEGREE);
|
|
| 238 | 234 |
} |
| 239 | 235 |
else |
| 240 | 236 |
{
|
Also available in: Unified diff
progress