Revision a034956d
Added by Leszek Koltunski over 3 years ago
src/main/java/org/distorted/control/RubikControlWhole.java | ||
---|---|---|
501 | 501 |
mDynMoveShad1.add(mPosition1); |
502 | 502 |
mDynMoveHand2.add(mPosition2); |
503 | 503 |
mDynMoveShad2.add(mPosition2); |
504 |
|
|
505 |
float x1 = point1s.get0() + mWidth*0.5f; |
|
506 |
float y1 = mHeight*0.5f - point1s.get1(); |
|
507 |
float x2 = point2s.get0() + mWidth*0.5f; |
|
508 |
float y2 = mHeight*0.5f - point2s.get1(); |
|
509 |
|
|
510 |
RubikSurfaceView view = mControl.getSurfaceView(); |
|
511 |
view.prepareDown(); |
|
512 |
view.prepareDown2(); |
|
513 |
view.actionDown(x1,y1); |
|
514 |
view.actionDown2(x1,y1,x2,y2); |
|
504 | 515 |
} |
505 | 516 |
|
506 | 517 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
786 | 797 |
s001 = mWidth*0.0001f; |
787 | 798 |
s014 = mWidth*0.14f; |
788 | 799 |
s033 = mWidth*0.33f; |
789 |
F = 0.60f;
|
|
800 |
F = 0.70f;
|
|
790 | 801 |
} |
791 | 802 |
|
792 | 803 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
898 | 909 |
if( mCurrentStage==3 ) |
899 | 910 |
{ |
900 | 911 |
RubikSurfaceView view = mControl.getSurfaceView(); |
901 |
float x = tmpBuffer[0]+mWidth*0.5f; |
|
902 |
float y = mHeight*0.5f-tmpBuffer[1]; |
|
903 |
view.actionMove(x,y);
|
|
912 |
float x1 = tmpBuffer[0]+mWidth*0.5f;
|
|
913 |
float y1 = mHeight*0.5f-tmpBuffer[1];
|
|
914 |
view.actionMove(x1,y1,0,0);
|
|
904 | 915 |
} |
905 | 916 |
|
906 | 917 |
if( finished1 ) |
... | ... | |
919 | 930 |
boolean finished2_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
920 | 931 |
mPosition1.set(tmpBuffer[0], tmpBuffer[1], tmpBuffer[2]); |
921 | 932 |
mPosition2.set(tmpBuffer[3], tmpBuffer[4], tmpBuffer[5]); |
922 |
if( finished2_1 && finished2_2 ) stageFinished(mCurrentStage); |
|
933 |
|
|
934 |
if( mCurrentStage==9 || mCurrentStage==10 || mCurrentStage==11 ) |
|
935 |
{ |
|
936 |
RubikSurfaceView view = mControl.getSurfaceView(); |
|
937 |
float x1 = tmpBuffer[0]+mWidth*0.5f; |
|
938 |
float y1 = mHeight*0.5f-tmpBuffer[1]; |
|
939 |
float x2 = tmpBuffer[3]+mWidth*0.5f; |
|
940 |
float y2 = mHeight*0.5f-tmpBuffer[4]; |
|
941 |
view.prepareMove(x1,y1,x2,y2); |
|
942 |
view.actionMove(x1,y1,x2,y2); |
|
943 |
} |
|
944 |
|
|
945 |
if( finished2_1 && finished2_2 ) |
|
946 |
{ |
|
947 |
if( mCurrentStage==11 ) |
|
948 |
{ |
|
949 |
RubikSurfaceView view = mControl.getSurfaceView(); |
|
950 |
view.prepareUp(); |
|
951 |
view.actionUp2(true,0,0,false,0,0); |
|
952 |
view.actionUp(); |
|
953 |
} |
|
954 |
|
|
955 |
stageFinished(mCurrentStage); |
|
956 |
} |
|
923 | 957 |
break; |
924 | 958 |
case 4: boolean finished4_1 = mDyn1.get( tmpBuffer,0, time, mDiffTime); |
925 | 959 |
boolean finished4_2 = mDyn2.get( tmpBuffer,3, time, mDiffTime); |
src/main/java/org/distorted/main/RubikSurfaceView.java | ||
---|---|---|
633 | 633 |
mPointer2 = INVALID_POINTER_ID; |
634 | 634 |
} |
635 | 635 |
|
636 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
637 |
|
|
638 |
public void prepareDown2() |
|
639 |
{ |
|
640 |
mPointer2 = 0; |
|
641 |
} |
|
642 |
|
|
643 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
644 |
|
|
645 |
public void prepareMove(float x1, float y1, float x2, float y2) |
|
646 |
{ |
|
647 |
mX1 = x1; |
|
648 |
mY1 = y1; |
|
649 |
mX2 = x2; |
|
650 |
mY2 = y2; |
|
651 |
} |
|
652 |
|
|
636 | 653 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
637 | 654 |
|
638 | 655 |
public void prepareUp() |
... | ... | |
644 | 661 |
|
645 | 662 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
646 | 663 |
|
647 |
public void actionMove(float pX, float pY)
|
|
664 |
public void actionMove(float x1, float y1, float x2, float y2)
|
|
648 | 665 |
{ |
649 |
//android.util.Log.e("D", "ACTION MOVE x="+pX+" y="+pY+" mDragging="+mDragging); |
|
666 |
float pX = mPointer1 != INVALID_POINTER_ID ? x1 : x2; |
|
667 |
float pY = mPointer1 != INVALID_POINTER_ID ? y1 : y2; |
|
650 | 668 |
|
651 | 669 |
float x = (pX - mScreenWidth*0.5f)/mScreenMin; |
652 | 670 |
float y = (mScreenHeight*0.5f -pY)/mScreenMin; |
... | ... | |
676 | 694 |
|
677 | 695 |
public void actionDown(float x, float y) |
678 | 696 |
{ |
679 |
//android.util.Log.e("D", "ACTION DOWN x="+x+" y="+y); |
|
680 |
|
|
681 | 697 |
mX = (x - mScreenWidth*0.5f)/mScreenMin; |
682 | 698 |
mY = (mScreenHeight*0.5f - y)/mScreenMin; |
683 | 699 |
|
... | ... | |
688 | 704 |
|
689 | 705 |
public void actionUp() |
690 | 706 |
{ |
691 |
//android.util.Log.e("D", "ACTION UP"); |
|
692 |
|
|
693 | 707 |
if( mContinuingRotation ) |
694 | 708 |
{ |
695 | 709 |
finishRotation(); |
... | ... | |
753 | 767 |
actionDown(mX1, mY1); |
754 | 768 |
break; |
755 | 769 |
case MotionEvent.ACTION_MOVE : prepareMove(event); |
756 |
float x = mPointer1 != INVALID_POINTER_ID ? mX1 : mX2; |
|
757 |
float y = mPointer1 != INVALID_POINTER_ID ? mY1 : mY2; |
|
758 |
actionMove(x,y); |
|
770 |
actionMove(mX1, mY1, mX2, mY2); |
|
759 | 771 |
break; |
760 | 772 |
case MotionEvent.ACTION_UP : prepareUp(event); |
761 | 773 |
actionUp(); |
Also available in: Unified diff
RubikControl: rotate the cube 2.