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

📄 gamescreen.java~6~

📁 Source code of J2ME game called Action Soccer. Great for used. Already configurations with JBuilder
💻 JAVA~6~
📖 第 1 页 / 共 5 页
字号:
                                int j3 = ((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2;
                                int l3 = -1;
                                int j4 = -1;
                                for(int j5 = 0; j5 < nearBallPositions.length; j5++)
                                    if(!aflag1[j5] && (j4 == -1 || l3 > users[j2].distance(l2 + nearBallPositions[j5][0], j3 + nearBallPositions[j5][1])))
                                    {
                                        j4 = j5;
                                        l3 = users[j2].distance(l2 + nearBallPositions[j5][0], j3 + nearBallPositions[j5][1]);
                                    }

                                if(j4 != -1)
                                {
                                    aflag1[j4] = true;
                                    if(users[j2].distance(l2 + nearBallPositions[j4][0], j3 + nearBallPositions[j4][1]) > users[j2].distanceAfterMove(l2 + nearBallPositions[j4][0], j3 + nearBallPositions[j4][1], l2 + nearBallPositions[j4][0], j3 + nearBallPositions[j4][1]))
                                        users[j2].moveTo(l2 + nearBallPositions[j4][0], j3 + nearBallPositions[j4][1], true);
                                    aflag[j2] = true;
                                }
                            }

                        int i3 = -1;
                        i = -1;
                        for(int k3 = 0; k3 < 7; k3++)
                            if(((Sprite) (comps[k3])).hasBall)
                                i = k3;

                        for(int i4 = 0; i4 < 7; i4++)
                            aflag[i4] = false;

                        if(i != -1)
                        {
                            if(((Sprite) (comps[i])).x - ((Sprite) (comps[i])).speed / 2 - 1 <= destXCurrent && destXCurrent <= ((Sprite) (comps[i])).x + ((Sprite) (comps[i])).speed / 2 + 1)
                                destXCurrent = 145 + Math.abs(r.nextInt()) % 60;
                            int k4 = destXCurrent;
                            char c = 'K';
                            if(compSide == 0)
                                c = '\u01DB';
                            int i6 = comps[i].steps(((Sprite) (ball)).x, ((Sprite) (ball)).y, k4, c);
                            if(i6 <= 1)
                            {
                                int i7 = ((Sprite) (comps[i])).direction;
                                if(compSide == 0 && (i7 > 5 || i7 < 3))
                                    i7 = 4;
                                if(compSide == 1 && i7 != 7 && i7 != 0 && i7 != 1)
                                    i7 = 0;
                                ball.kickBall(i7);
                                comps[i].hasBall = false;
                            } else
                            {
                                int j7 = -1;
                                int i8 = -1;
                                if(stepsDone >= 5)
                                {
                                    for(int i9 = 0; i9 < 8; i9++)
                                    {
                                        int i10 = ((Sprite) (ball)).x;
                                        int i11 = ((Sprite) (ball)).y;
                                        int k11 = 0;
                                        boolean flag3;
                                        for(flag3 = false; !flag3 && k11 < Ball.speeds.length + 5;)
                                        {
                                            if(k11 < Ball.speeds.length)
                                            {
                                                i10 += Ball.speeds[i9][k11][0];
                                                i11 += Ball.speeds[i9][k11][1];
                                            }
                                            k11++;
                                            for(int j12 = 0; j12 < 7; j12++)
                                            {
                                                if(comps[j12].steps(((Sprite) (comps[j12])).x, ((Sprite) (comps[j12])).y, i10, i11) > k11)
                                                    continue;
                                                flag3 = true;
                                                break;
                                            }

                                        }

                                        if(flag3 && (j7 == -1 || k11 + comps[0].steps(i10, i11, k4, c) < i8))
                                        {
                                            j7 = i9;
                                            i8 = k11 + comps[0].steps(i10, i11, k4, c);
                                        }
                                    }

                                }
                                if(i8 < i6 && i8 != -1)
                                {
                                    ball.kickBall(j7);
                                    comps[i].hasBall = false;
                                } else
                                {
                                    comps[i].moveTo(k4, c, true);
                                }
                                aflag[i] = true;
                            }
                        } else
                        {
                            int l4 = -1;
                            for(int k5 = 0; k5 < 7; k5++)
                                if(l4 == -1 || l4 > comps[k5].distance((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[k5])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[k5])).sH / 2))
                                    l4 = comps[k5].distance((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[k5])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[k5])).sH / 2);

                            for(int j6 = 0; j6 < 7; j6++)
                                if(l4 * 2 >= comps[j6].distance((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[j6])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[j6])).sH / 2))
                                {
                                    aflag[j6] = true;
                                    if(comps[j6].distanceAfterMove((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[j6])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[j6])).sH / 2, (((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[j6])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[j6])).sH / 2) < comps[j6].distance((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[j6])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[j6])).sH / 2))
                                    {
                                        comps[j6].moveTo((((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2) - ((Sprite) (comps[j6])).sW / 2, (((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2) - ((Sprite) (comps[j6])).sH / 2, false);
                                        i3 = -1;
                                    } else
                                    {
                                        i3 = j6;
                                    }
                                }

                        }
                        for(int i5 = 0; i5 < nearBallPositions.length; i5++)
                            aflag1[i5] = false;

                        for(int l5 = 0; l5 < 7; l5++)
                            if(!aflag[l5])
                            {
                                int k6 = ((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2;
                                int k7 = ((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2;
                                int j8 = -1;
                                int j9 = -1;
                                for(int j10 = 0; j10 < nearBallPositions.length; j10++)
                                    if(!aflag1[j10] && (j9 == -1 || j8 > comps[l5].distance(k6 + (nearBallPositions[j10][0] * 12) / 10, k7 + (nearBallPositions[j10][1] * 12) / 10)))
                                    {
                                        j9 = j10;
                                        j8 = comps[l5].distance(k6 + (nearBallPositions[j10][0] * 12) / 10, k7 + (nearBallPositions[j10][1] * 12) / 10);
                                    }

                                if(j9 != -1)
                                {
                                    aflag1[j9] = true;
                                    if(comps[l5].distance(k6 + (nearBallPositions[j9][0] * 12) / 10, k7 + (nearBallPositions[j9][1] * 12) / 10) > comps[l5].distanceAfterMove(k6 + (nearBallPositions[j9][0] * 12) / 10, k7 + nearBallPositions[j9][1], k6 + (nearBallPositions[j9][0] * 12) / 10, k7 + (nearBallPositions[j9][1] * 12) / 10))
                                        comps[l5].moveTo(k6 + (nearBallPositions[j9][0] * 12) / 10, k7 + (nearBallPositions[j9][1] * 12) / 10, true);
                                    aflag[l5] = true;
                                }
                            }

                        stepsDone++;
                        int l6 = ball.ballMove();
                        int l7 = 0;
                        if(Math.abs(((Sprite) (ball)).y - ((Sprite) (goalKeepers[1])).y) < Math.abs(((Sprite) (ball)).y - ((Sprite) (goalKeepers[0])).y))
                            l7 = 1;
                        if(l6 != 0 && ((Sprite) (ball)).x >= 140 && ((Sprite) (ball)).x <= 210)
                            if(((Sprite) (ball)).x >= ((Sprite) (goalKeepers[l7])).x && ((Sprite) (ball)).x < ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW)
                            {
                                if(((Sprite) (goalKeepers[l7])).y < 275)
                                {
                                    ball.x = ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW / 2;
                                    ball.y = ((Sprite) (goalKeepers[l7])).y;
                                    ball.kickBall(3 + rnd(3), -7);
                                } else
                                {
                                    ball.x = ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW / 2;
                                    ball.y = ((Sprite) (goalKeepers[l7])).y;
                                    int k8 = rnd(3);
                                    if(k8 == 2)
                                        k8 = 7;
                                    ball.kickBall(k8, -7);
                                }
                            } else
                            {
                                mode = 5;
                                SPlayer.play(2);
                                if(((Sprite) (goalKeepers[l7])).y < 275 && compSide == 0 || ((Sprite) (goalKeepers[l7])).y > 275 && compSide == 1)
                                {
                                    scoreUser++;
                                    kickOffTeam = 1;
                                } else
                                {
                                    scoreComp++;
                                    kickOffTeam = 0;
                                }
                                if(ball.ballSpeed < Ball.speeds[((Sprite) (ball)).direction].length && 140 <= ((Sprite) (ball)).x + Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][0] && ((Sprite) (ball)).x + ((Sprite) (ball)).sW + Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][0] <= 210 && (((Sprite) (ball)).y + Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][1] <= 30 || ((Sprite) (ball)).y + Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][1] >= 520))
                                {
                                    ball.x += Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][0];
                                    ball.y += Ball.speeds[((Sprite) (ball)).direction][ball.ballSpeed][1];
                                }
                                goalTime = 0;
                            }
                        if(ball.ballSpeed >= Ball.speeds.length && (((Sprite) (ball)).y <= 40 || ((Sprite) (ball)).y >= 510) && ((Sprite) (ball)).x >= ((Sprite) (goalKeepers[l7])).x && ((Sprite) (ball)).x <= ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW)
                        {
                            boolean flag2 = false;
                            for(int k9 = 0; k9 < 7; k9++)
                                flag2 = flag2 || ((Sprite) (users[k9])).hasBall || ((Sprite) (comps[k9])).hasBall;

                            if(!flag2)
                                if(((Sprite) (goalKeepers[l7])).y < 275)
                                {
                                    ball.x = ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW / 2;
                                    ball.y = ((Sprite) (goalKeepers[l7])).y;
                                    ball.kickBall(3 + rnd(3), -7);
                                } else
                                {
                                    ball.x = ((Sprite) (goalKeepers[l7])).x + ((Sprite) (goalKeepers[l7])).sW / 2;
                                    ball.y = ((Sprite) (goalKeepers[l7])).y;
                                    int k10 = rnd(3);
                                    if(k10 == 2)
                                        k10 = 7;
                                    ball.kickBall(k10, -7);
                                }
                        }
                        for(int l8 = 0; l8 < 2; l8++)
                        {
                            if(((Sprite) (goalKeepers[l8])).x + ((Sprite) (goalKeepers[l8])).sW / 2 < ((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2 && ((Sprite) (goalKeepers[l8])).x + ((Sprite) (goalKeepers[l8])).sW < 210)
                                goalKeepers[l8].x += (((Sprite) (goalKeepers[l8])).speed * (ball.ballSpeed >= Ball.speeds[0].length || ((Sprite) (ball)).direction % 2 != 1 ? 2 : 7 + rnd(4))) / 2;
                            if(((Sprite) (goalKeepers[l8])).x + ((Sprite) (goalKeepers[l8])).sW / 2 > ((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2 && ((Sprite) (goalKeepers[l8])).x > 140)
                                goalKeepers[l8].x -= (((Sprite) (goalKeepers[l8])).speed * (ball.ballSpeed >= Ball.speeds[0].length || ((Sprite) (ball)).direction % 2 != 1 ? 2 : 7 + rnd(4))) / 2;
                        }

                        int l9 = -1;
                        for(int l10 = 0; l10 < 7; l10++)
                        {
                            if(((Sprite) (users[l10])).hasBall)
                                l9 = l10;
                            if(((Sprite) (comps[l10])).hasBall)
                                l9 = 7 + l10;
                        }

                        int j11 = -1;
                        for(int l11 = 0; l11 < 7; l11++)
                        {
                            if((l9 >= 7 || l9 == -1) && ball.distance(users[l11]) < 50)
                                j11 = l11;
                            if((l9 < 7 || l9 == -1) && ball.distance(comps[l11]) < 50)
                                j11 = 7 + l11;
                        }

                        if(j11 != -1)
                        {
                            for(int i12 = 0; i12 < 7; i12++)
                            {
                                users[i12].hasBall = false;
                                comps[i12].hasBall = false;
                                if(i12 == j11)
                                    users[i12].setBallOwn();
                                if(i12 + 7 == j11)
                                    comps[i12].setBallOwn();
                            }

                        } else
                        if(i3 != -1)
                            comps[i3].setBallOwn();
                        if(l9 != -1 && j11 != -1)
                            if(j11 < 7 && (keyKick || rnd(10) == 0))
                            {
                                faultTeam = 0;
                                fault();
                            } else
                            if(j11 >= 7 && rnd(5) == 0)
                            {
                                faultTeam = 1;
                                fault();
                            }
                        keyKick = false;
                        if(mode == 1 && (((Sprite) (ball)).x <= 10 || ((Sprite) (ball)).x + ((Sprite) (ball)).sW / 2 >= 340 || ((Sprite) (ball)).y <= 30 || ((Sprite) (ball)).y + ((Sprite) (ball)).sH / 2 >= 520) && (((Sprite) (ball)).x < 140 || ((Sprite) (ball)).x > 210))
                            ballOutside();
                        if(timeToEnd - 2 <= 0 && firstTime)
                        {
                            timeToEnd = roundTime * 10;
                            firstTime = false;
                            mode = 13;
                            messageTime = 3000;
                            messageType = 16;
                        } else
                        if(timeToEnd > 0)
                            timeToEnd -= 2;
                        else
                        if(scoreComp == scoreUser && scoreComp == 0 && !additionTime && gameType == 1)
                        {
                            extraTime = (2 * roundTime * 10) / 2;
                            timeToEnd += (2 * roundTime * 10) / 2;
                            additionTime = true;
                        } else
                        {
                            messageTime = 6000;
                            if(gameType == 0 || gameType == 1 && round < 3)
                            {
                                if(scoreComp > scoreUser)
                                    messageType = 5;
                                else
                                if(scoreComp == scoreUser)
                                    messageType = 8;
                                else
                                if(scoreComp < scoreUser)
                                    messageType = 6;
                            } else
                            if(scoreComp > scoreUser)
                                messageType = 5;
                            else
                            if(scoreComp == scoreUser)
                                messageType = 8;
                            else
                            if(scoreComp < scoreUser)
                                messageType = 7;
                            mode = 6;
                        }
                    }
                    setCenterPoint(((Sprite) (ball)).x, ((Sprite) (ball)).y);
                    repaint();
                    if(mode == 4 || mode == 8)
                    {
                        if(messageTime > 0)
                            messageTime -= 40;
                        lastReleased += 4;
                        GameScreen _tmp1 = this;
                        Thread.sleep(20L);
                    } else
                    {

⌨️ 快捷键说明

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