⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roundcanvas.java

📁 DoCoMo 手机Java源码 -- Game For Cricket
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    		prevCursor();
    	}
    }
    
    private boolean nextCursor() {
    	int newPos = getNextPosition( 1 );
    	if ( curPosY == newPos )
    		return false;
    	
    	clearCursor(pmData.isLeft(), curPosY);
    	drawCursor(pmData.isLeft(), newPos);
    	curPosY = newPos;

    	return true;
    }

    private boolean prevCursor() {
    	int newPos = getNextPosition( -1 );
    	if ( curPosY == newPos )
    		return false;
    	
    	clearCursor(pmData.isLeft(), curPosY);
    	drawCursor(pmData.isLeft(), newPos);
    	curPosY = newPos;

    	return true;
    }

    private int getNextPosition(int plus) {
    	int result = curPosY;
    	int value  = curPosY;
    	
    	if ( plus > 0 ){
	    	while ( 0 <= value && value < TConst.SUB_CURSOR-1 ) {
	    		value += plus;
	    		if ( closePos[value] == -1 ) {
	    			result = value;
	    			break;
	    		}
	    	}
    	} else {
	    	while ( 0 < value && value <= TConst.SUB_CURSOR-1 ) {
	    		value += plus;
	    		if ( closePos[value] == -1 ) {
	    			result = value;
	    			break;
	    		}
	    	}
    	}
    	
    	return result;
    }
    
    private boolean isGameOverByClose() {
    	for (int i = 0; i < closePos.length; i++) {
			if ( closePos[i] < 0 ) {
				return false;
			}
		}
    	
    	return true;
    }
    
    private void drawClosedAll() {
    	for (int i = 0; i < closePos.length; i++) {
			drawClosed(i);
		}
    }
    
    private void drawClosed( int pos ) {
		if ( pos < 0 || pos >= TConst.SUB_CURSOR || closePos[pos] < 0 ) {
			return;
		}
		
        if ( TConst.DRAW_MARK ) {
            g.setColor(TConst.CLOSECOLOR);
            g.fillArc(rectLeftCursor[pos].x, rectLeftCursor[pos].y, rectLeftCursor[pos].width, rectLeftCursor[pos].height, 0, 360);
            g.fillArc(rectRightCursor[pos].x, rectRightCursor[pos].y, rectRightCursor[pos].width, rectRightCursor[pos].height, 0, 360);
            g.setColor(TConst.BACKGROUND);
            g.fillArc(rectLeftCursor[pos].x+3, rectLeftCursor[pos].y+3, rectLeftCursor[pos].width-6, rectLeftCursor[pos].height-6, 0, 360);
            g.fillArc(rectRightCursor[pos].x+3, rectRightCursor[pos].y+3, rectRightCursor[pos].width-6, rectRightCursor[pos].height-6, 0, 360);
            g.setColor(TConst.CLOSECOLOR);
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectLeftCursor[pos].x + rectLeftCursor[pos].width/2 +i,
                           rectLeftCursor[pos].y + 2,
                           rectLeftCursor[pos].x + rectLeftCursor[pos].width/2 +i,
                           rectLeftCursor[pos].height + rectLeftCursor[pos].y - 2 );
            }
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectRightCursor[pos].x + rectRightCursor[pos].width/2 +i,
                           rectRightCursor[pos].y + 2,
                           rectRightCursor[pos].x + rectRightCursor[pos].width/2 +i,
                           rectRightCursor[pos].height + rectRightCursor[pos].y - 2 );
            }
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectLeftCursor[pos].x + 2,
                           rectLeftCursor[pos].y + rectLeftCursor[pos].height/2 +i,
                           rectLeftCursor[pos].x + rectLeftCursor[pos].width -2,
                           rectLeftCursor[pos].y + rectLeftCursor[pos].height/2 +i );
            }
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectRightCursor[pos].x + 2,
                           rectRightCursor[pos].y + rectRightCursor[pos].height/2 +i,
                           rectRightCursor[pos].x + rectRightCursor[pos].width -2,
                           rectRightCursor[pos].y + rectRightCursor[pos].height/2 +i );
            }
        } else {
            g.setColor(TConst.CLOSECOLOR);
            String str = "亊";
            g.drawString(str, (rectBody[1].width-ft_default.getBBoxWidth(str))/2, rectLeftCursor[pos].y + ft_default.getAscent() );
            g.drawString(str, rectBody[2].x+(rectBody[2].width-ft_default.getBBoxWidth(str))/2, rectRightCursor[pos].y + ft_default.getAscent() );
            str = "仜";
            g.drawString(str, (rectBody[1].width-ft_default.getBBoxWidth(str))/2, rectLeftCursor[pos].y + ft_default.getAscent() );
            g.drawString(str, rectBody[2].x+(rectBody[2].width-ft_default.getBBoxWidth(str))/2, rectRightCursor[pos].y + ft_default.getAscent() );
        }
        int addy = rectLeftCursor[pos].height / 3;
        int maxx = rectRightCursor[pos].x + rectRightCursor[pos].width;
        for ( int i=-1 ; i<1 ; i++){
        	g.drawLine( rectLeftCursor[pos].x, rectLeftCursor[pos].y + addy+i, maxx, rectLeftCursor[pos].y + addy+i );
        	g.drawLine( rectLeftCursor[pos].x, rectLeftCursor[pos].y + addy+addy+i, maxx, rectLeftCursor[pos].y + addy+addy+i );
        }
    }
    
    private void drawCursor(boolean left, int pos){
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            g.setColor(TConst.CURSORCOLOR);
            g.drawRect(rectLeftCursor[pos].x, rectLeftCursor[pos].y, rectLeftCursor[pos].width, rectLeftCursor[pos].height);
        } else {
            g.setColor(TConst.CURSORCOLOR);
            g.drawRect(rectRightCursor[pos].x, rectRightCursor[pos].y, rectRightCursor[pos].width, rectRightCursor[pos].height);
        }
    }

    private void clearCursor(boolean left, int pos){
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            g.setColor(TConst.BACKGROUND);
            g.drawRect(rectLeftCursor[pos].x, rectLeftCursor[pos].y, rectLeftCursor[pos].width, rectLeftCursor[pos].height);
        } else {
            g.setColor(TConst.BACKGROUND);
            g.drawRect(rectRightCursor[pos].x, rectRightCursor[pos].y, rectRightCursor[pos].width, rectRightCursor[pos].height);
        }
    }
    
    private void drawLeftStyleAll(){
    	for (int i = 0; i < TConst.SUB_CURSOR; i++) {
			int style = scoreMgr.getMarkStyle(pmData.leftUser, i);
			markStyle(style, true, i);
		}
    }
    private void drawRightStyleAll(){
    	for (int i = 0; i < TConst.SUB_CURSOR; i++) {
			int style = scoreMgr.getMarkStyle(pmData.rightUser, i);
			markStyle(style, false, i);
		}
    }
    
    private void markStyle(int style, boolean left, int pos) {
		if ( style == 1 ) {
			markOne(left, pos);
		} else if ( style == 2 ) {
			markTwo(left, pos);
		} else if ( style >= 3 ) {
			markThree(left, pos);
		}
    }
    
    private void markOne(boolean left, int pos){
        clearMark(left, pos);
        if ( TConst.DRAW_MARK ) {
            drawMarkA(left, pos);
        } else {
            textMarkA(left, pos);
        }
        clearCursor(left, pos);
    }

    private void markTwo(boolean left, int pos){
        clearMark(left, pos);
        if ( TConst.DRAW_MARK ) {
            drawMarkA(left, pos);
            drawMarkB(left, pos);
        } else {
            textMarkB(left, pos);
        }
        clearCursor(left, pos);
    }

    private void markThree(boolean left, int pos){
        clearMark(left, pos);
        if ( TConst.DRAW_MARK ) {
            drawCircle(left, pos);
            drawMarkA(left, pos);
            drawMarkB(left, pos);
        } else {
            textMarkB(left, pos);
            textCircle(left, pos);
        }
        clearCursor(left, pos);
    }

    private void clearMark(boolean left, int pos){
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;
        
        if ( left ) {
            g.setColor(TConst.BACKGROUND);
            g.fillRect( rectLeftCursor[pos].x, rectLeftCursor[pos].y, rectLeftCursor[pos].width, rectLeftCursor[pos].height );
        } else {
            g.setColor(TConst.BACKGROUND);
            g.fillRect( rectRightCursor[pos].x, rectRightCursor[pos].y, rectRightCursor[pos].width, rectRightCursor[pos].height );
        }
    }

    private void textCircle(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;
        
        if ( left ) {
            String str = "仜";
            g.setColor(getLeftColor());
            g.drawString(str, (rectBody[1].width-ft_default.getBBoxWidth(str))/2, rectLeftCursor[pos].y + ft_default.getAscent() );
        } else {
            String str = "仜";
            g.setColor(getRightColor());
            g.drawString(str, rectBody[2].x+(rectBody[2].width-ft_default.getBBoxWidth(str))/2, rectRightCursor[pos].y + ft_default.getAscent() );
        }
    }
    private void textMarkA(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            String str = "乛";
            g.setColor(getLeftColor());
            g.drawString(str, (rectBody[1].width-ft_default.getBBoxWidth(str))/2, rectLeftCursor[pos].y + ft_default.getAscent() );
        } else {
            String str = "乛";
            g.setColor(getRightColor());
            g.drawString(str, rectBody[2].x+(rectBody[2].width-ft_default.getBBoxWidth(str))/2, rectRightCursor[pos].y + ft_default.getAscent() );
        }
    }
    private void textMarkB(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            String str = "亊";
            g.setColor(getLeftColor());
            g.drawString(str, (rectBody[1].width-ft_default.getBBoxWidth(str))/2, rectLeftCursor[pos].y + ft_default.getAscent() );
        } else {
            String str = "亊";
            g.setColor(getRightColor());
            g.drawString(str, rectBody[2].x+(rectBody[2].width-ft_default.getBBoxWidth(str))/2, rectRightCursor[pos].y + ft_default.getAscent() );
        }
    }
    
    private void drawCircle(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;
        
        if ( left ) {
            g.setColor(getLeftColor());
            g.fillArc(rectLeftCursor[pos].x, rectLeftCursor[pos].y, rectLeftCursor[pos].width, rectLeftCursor[pos].height, 0, 360);
            g.setColor(TConst.BACKGROUND);
            g.fillArc(rectLeftCursor[pos].x+3, rectLeftCursor[pos].y+3, rectLeftCursor[pos].width-6, rectLeftCursor[pos].height-6, 0, 360);
        } else {
            g.setColor(getRightColor());
            g.fillArc(rectRightCursor[pos].x, rectRightCursor[pos].y, rectRightCursor[pos].width, rectRightCursor[pos].height, 0, 360);
            g.setColor(TConst.BACKGROUND);
            g.fillArc(rectRightCursor[pos].x+3, rectRightCursor[pos].y+3, rectRightCursor[pos].width-6, rectRightCursor[pos].height-6, 0, 360);
        }
    }
    private void drawMarkA(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            g.setColor(getLeftColor());
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectLeftCursor[pos].x + rectLeftCursor[pos].width/2 +i,
                           rectLeftCursor[pos].y + 2,
                           rectLeftCursor[pos].x + rectLeftCursor[pos].width/2 +i,
                           rectLeftCursor[pos].height + rectLeftCursor[pos].y - 2 );
            }
        } else {
            g.setColor(getRightColor());
            for ( int i= -1 ; i<2 ; i++){
                g.drawLine(rectRightCursor[pos].x + rectRightCursor[pos].width/2 +i,
                           rectRightCursor[pos].y + 2,
                           rectRightCursor[pos].x + rectRightCursor[pos].width/2 +i,
                           rectRightCursor[pos].height + rectRightCursor[pos].y - 2 );
            }
        }
    }
    private void drawMarkB(boolean left, int pos) {
        if ( pos < 0 || pos >= TConst.SUB_CURSOR ) 
            return ;

        if ( left ) {
            g.setColor(getLeftColor());
            for ( int i= -1 ; i<2 ; i++){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -