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

📄 worm.java

📁 thq 发布的《worms》 motorola 源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    }
                    catch(Exception exception) { }
//                    DeviceControl.getDefaultDeviceControl().setDeviceActive(4, false);//yue add 1
                }*/
                if(active)
                    game.endTurn(true);
            }
            return false;
        }
        boolean flag = true;
        if(Worms.getTime() - healthCountStartTime < 1000L)
            flag = false;
        if(health <= 0 && landscape.circle_complete[0] && landscape.circle_complete[1] && landscape.circle_complete[2] && landscape.circle_complete[3] && landscape.circle_complete[4])
        {
        	if(Menu.soundEnabled()) {
            	//Game.sound.close();
            	Game.sound.getPlayer(3);
            	Game.sound.start();
//            	try
//                {
//                    Thread.sleep(500L);
//                }
//                catch(Exception exception) { }
            	//Game.sound.close();
            	//Game.sound.getPlayer(2);
                /*try
                {
                    Game.sound_BYEBYE.start();
                }
                catch(MediaException mediaexception) { }*/
            }
            /*if(Menu.vibratorEnabled())
            {
//                DeviceControl.getDefaultDeviceControl().setDeviceActive(4, true);//yue add 1
                try
                {
                    Thread.sleep(500L);
                }
                catch(Exception exception1) { }
//                DeviceControl.getDefaultDeviceControl().setDeviceActive(4, false);//yue add 1
            }*/
            state = 8;
            landscape.drawEntity(positionX - rip.width / 2, positionY + rip.height / 2 + 8, rip, 0, false);
            Landscape _tmp = landscape;
            landscape.add_boundingRectangle(positionX - rip.width / 2, 150 - (positionY + rip.height / 2 + 8), 14, 20);
            healthCountDown = 0;
            health = 0;
        }
        if(healthCountDown > 0 && !falling && flag && state != 8)
        {
            healthCountDown--;
            health--;
            healthCountDownLastTime = Worms.getTime();
            if(health <= 0 && landscape.circle_complete[0] && landscape.circle_complete[1] && landscape.circle_complete[2] && landscape.circle_complete[3] && landscape.circle_complete[4])
            {
            	if(Menu.soundEnabled()) {
                	//Game.sound.close();
                	Game.sound.getPlayer(3);
                	Game.sound.start();
//                	try
//                    {
//                        Thread.sleep(500L);
//                    }
//                    catch(Exception exception) { }
                	//Game.sound.close();
                	//Game.sound.getPlayer(2);
                    /*try
                    {
                        Game.sound_BYEBYE.start();
                    }
                    catch(MediaException mediaexception) { }*/
                }
               /* if(Menu.vibratorEnabled())
                {
//                    DeviceControl.getDefaultDeviceControl().setDeviceActive(4, true);//yue add 1
                    try
                    {
                        Thread.sleep(500L);
                    }
                    catch(Exception exception2) { }
//                    DeviceControl.getDefaultDeviceControl().setDeviceActive(4, false);//yue add 1
                }*/
                state = 8;
                landscape.drawEntity(positionX - rip.width / 2, positionY + rip.height / 2 + 8, rip, 0, false);
                Landscape _tmp1 = landscape;
                landscape.add_boundingRectangle(positionX - rip.width / 2, 150 - (positionY + rip.height / 2 + 8), 14, 20);
                healthCountDown = 0;
                health = 0;
            }
        }
        if(!landed && !falling)
        {
            setIdle();
            landed = true;
        }
        if(!active)
            return false;
        if(!Weapon.isActive())
        {
        	//System.out.println("=====worm====391===");
            game.timeLeft = 30 - (int)(Worms.getTime() - turnStartTime) / 1000;
            //System.out.println("=====worm====Worms.getTime()==="+Worms.getTime());
            //System.out.println("=====worm====turnStartTime==="+turnStartTime);
            //System.out.println("=====worm===减==="+(Worms.getTime() - turnStartTime));
            if(game.timeLeft <= 0)
            {
            	//System.out.println("=====worm====timeLeft==1="+game.timeLeft);
                active = false;
                turnStartTime = Worms.getTime();
                game.timeLeft = 30;
                endTurn();
                game.endTurn(false);
                return false;
            } else {
            	//System.out.println("=====worm====timeLeft=2=="+game.timeLeft);
            }
        }
        if(state == 6 && calcVelocity() == 100)
            fire();
        if(pointerActive)
            if(pointerDir == 0)
            {
                pointerPos += 2;
                if(pointerPos > 10)
                    pointerDir ^= 0x1;
            } else
            {
                pointerPos -= 2;
                if(pointerPos < 0)
                    pointerDir ^= 0x1;
            }
        if(state == 4 && adjustCrosshair)
            angle += 3;
        if(state == 5 && adjustCrosshair)
            angle -= 3;
        if(angle < 0)
            angle += 360;
        if(!computer)
            if(direction == 0)
            {
                if(angle <= 90)
                    angle = 91;
                if(angle >= 270)
                    angle = 269;
            } else
            if(angle >= 0 && angle <= 95)
            {
                if(angle < 0)
                    angle = 1;
                if(angle >= 89)
                    angle = 89;
            } else
            {
                if(angle < 271)
                    angle = 271;
                if(angle >= 359)
                    angle = 1;
            }
        if(state == 4 || state == 5)
            if(direction == 0)
            {
                if(angle == 90)
                    angle = 91;
                if(angle == 269)
                    angle = 268;
            } else
            {
                if(angle == 90)
                    angle = 89;
                if(angle == 270)
                    angle = 271;
            }
        if(state == 2)
        {
            wormObstructed = false;
            positionX--;
            landscape.center(positionX, positionY);
            if(areaBlocked(-5))
            {
                wormObstructed = true;
                positionX++;
            }
            if(positionX >= 0)
                positionY = 150 - landscape.get_currentHeight(positionX, positionY) - 11;
        }
        if(state == 3)
        {
            wormObstructed = false;
            positionX++;
            if(areaBlocked(5))
            {
                wormObstructed = true;
                positionX--;
            }
            if(positionX < 300)
                positionY = 150 - landscape.get_currentHeight(positionX, positionY) - 11;
            landscape.center(positionX, positionY);
        }
        return true;
    }

    public boolean healthCountDownOK()
    {
        if(healthCountDownLastTime == -1L)
            return true;
        else
            return Worms.getTime() - healthCountDownLastTime > 1500L;
    }

    public boolean isDead()
    {
        return state == 8;
    }

    private void drawSelectedWeapon(Graphics g)
    {
//    	System.out.println("===activeWeapon====="+activeWeapon);
//    	System.out.println("===ammunitionCurrent[activeWeapon]====="+ammunitionCurrent[activeWeapon]);
        Game.currentWormActiveWeapon = activeWeapon;
        Game.currentWormAmmoCount = ammunitionCurrent[activeWeapon];
    }

    public void paint(Graphics g)
    {
        if(state == 8)
            return;
        drawSelectedWeapon(g);
        walk.setFrame(0);
        if(state == 1)
            walk.setDrawState(1);
        if(state == 0)
            walk.setDrawState(0);
        if(state == 2 || state == 0)
        {
            walk.setDrawState(0);
            if(state == 2)
                walk.setFrame((Game.curFrame / 2 & 0x1) + 1);
            else
            if(state == 0)
                walk.setFrame(0);
        }
        if(state == 3 || state == 1)
        {
            walk.setDrawState(1);
            if(state == 3)
                walk.setFrame((Game.curFrame / 2 & 0x1) + 1);
            else
            if(state == 1)
                walk.setFrame(0);
        }
        if(state == 2 || state == 0)
        {
            walk.setPosition((positionX + Landscape.levelX) - walk.width / 2, (positionY + Landscape.levelY) - walk.height / 2);
            walk.paint(g);
        }
        if(state == 3 || state == 1)
        {
            walk.setPosition((positionX + Landscape.levelX) - walk.width / 2, (positionY + Landscape.levelY) - walk.height / 2);
            walk.paint(g);
        }
        if(state == 5 || state == 4 || state == 7 || state == 6)
        {
            bazooka.setPosition((positionX + Landscape.levelX) - bazooka.width / 2, (positionY + Landscape.levelY) - bazooka.height / 2);
            if(angle >= 90 && angle <= 270)
                bazooka.setFrame(((180 - (angle - 90)) * 8) / 180);
            else
            if(angle < 90)
                bazooka.setFrame(4 + (angle * 8) / 180);
            else
                bazooka.setFrame(-4 + ((angle - 180) * 8) / 180);
            if(angle <= 90 || angle >= 270)
                bazooka.setDrawState(1);
            else
                bazooka.setDrawState(0);
            bazooka.paint(g);
            if(state == 6)
            {
                int j1 = calcVelocity();
                for(int k1 = 0; k1 < j1 / 8; k1++)
                {
                    int i = Game.table[(angle + 90) % 360] * (k1 * 3 + 5) >> 8;
                    int l = Game.table[(angle + 180) % 360] * (k1 * 3 + 5) >> 8;
                    char c = '\377';
                    int l1 = k1 * 25;
                    int i2 = 0;
                    if(c < 0)
                        c = '\0';
                    if(c > '\377')
                        c = '\377';
                    if(l1 < 0)
                        l1 = 0;
                    if(l1 > 255)
                        l1 = 255;
                    if(i2 < 0)
                        i2 = 0;
                    if(i2 > 255)
                        i2 = 255;
                    g.setColor(c, l1, i2);
                    g.fillArc((positionX + Landscape.levelX + i) - k1 / 2, (positionY + Landscape.levelY + l) - k1 / 2, k1 + 5, k1 + 5, 0, 360);
                }

            }
            if(state != 7)
            {
                int j = Game.table[(angle + 90) % 360] * 40 >> 8;
                int i1 = Game.table[(angle + 180) % 360] * 40 >> 8;
                if(!redTeam)
                {
                    crosshair.setPosition((positionX - crosshair.width / 2) + j + Landscape.levelX + 2, (positionY - crosshair.height / 2) + i1 + Landscape.levelY + 2);
                    crosshair.setFrame(1);
                } else
                {
                    crosshair.setPosition((positionX - crosshair.width / 2) + j + Landscape.levelX, (positionY - crosshair.height / 2) + i1 + Landscape.levelY);
                    crosshair.setFrame(0);
                }
                crosshair.paint(g);
            }
        }
        if(pointerActive && pointerVisible)
        {
            if(redTeam)
                arrow.setFrame(0);
            else
                arrow.setFrame(1);
            arrow.setPosition((positionX - arrow.width / 2) + Landscape.levelX, (positionY - arrow.height - 43) + pointerPos + Landscape.levelY);
            arrow.paint(g);
        }
        if(pointerActive || healthCountDown >= 0 && !falling)
        {
            int k = ((7 + positionX) - FontRender.stringWidth("" + health) / 2) + Landscape.levelX;
            if(health >= 0)
                FontRender.writeString(g, "" + health, k, (positionY + Landscape.levelY) - 25);
            medic.setPosition(k - 13, (positionY + Landscape.levelY) - 24);
            medic.paint(g);
        }
    }
}

⌨️ 快捷键说明

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