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

📄 enemy.java

📁 j2me游戏都市骑士的代码,是一款横版格斗的游戏.可以学习参考.
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 2005-11-26 11:40:38
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 

import java.util.*;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

class Enemy
    implements Constants
{

    public Enemy(short word0, short word1, byte byte0, Game game1)
    {
        action = 13;
        isWeapon = false;
        ehit = false;
        ebackAttack = false;
        emoving = false;
        emaxY = 176;
        ehitCtr = 0;
        ecrouchCtr = 0;
        eweaponPicked = false;
        ecrouchHit = false;
        playerHit = false;
        jpCtr = 0;
        e_lag = System.currentTimeMillis();
        echainJumpCtr = 0;
        eaxeJumpCtr = 0;
        delayCtr = 0;
        x = word0;
        y = word1;
        game = game1;
        weapon = byte0;
        health = 60;
        action = 13;
        face = 26;
        if(byte0 != 34 && byte0 != 35 && byte0 != 33)
            isWeapon = true;
        else
            isWeapon = false;
    }

    public void updateAI()
    {
        Dist = (short)Math.abs(x - game.me.x);
        if(y == emaxY && !isWeapon)
            if(x - game.me.x < 0)
                face = 27;
            else
                face = 26;
        enemyCtr++;
        if(enemyCtr == 50)
            enemyCtr = 0;
        if(y < emaxY)
        {
            if(!isWeapon)
                switch(jpCtr)
                {
                case 0: // '\0'
                    y -= 25;
                    jpCtr++;
                    break;

                case 1: // '\001'
                    y -= 20;
                    jpCtr++;
                    break;

                case 2: // '\002'
                    y -= 7;
                    jpCtr++;
                    break;

                case 3: // '\003'
                    y -= 5;
                    jpCtr++;
                    break;

                case 4: // '\004'
                    y -= 2;
                    jpCtr++;
                    break;

                case 5: // '\005'
                    y += 2;
                    jpCtr++;
                    break;

                case 6: // '\006'
                    y += 5;
                    jpCtr++;
                    break;

                case 7: // '\007'
                    y += 7;
                    jpCtr++;
                    break;

                case 8: // '\b'
                    y += 20;
                    jpCtr++;
                    break;

                case 9: // '\t'
                    y += 25;
                    jpCtr = 0;
                    action = 13;
                    break;
                }
            if(weapon == 39 && (action == 16 || action == 13))
                switch(eaxeJumpCtr)
                {
                case 0: // '\0'
                    y -= 25;
                    eaxeJumpCtr++;
                    break;

                case 1: // '\001'
                    y -= 20;
                    eaxeJumpCtr++;
                    break;

                case 2: // '\002'
                    y -= 7;
                    eaxeJumpCtr++;
                    break;

                case 3: // '\003'
                    y -= 5;
                    eaxeJumpCtr++;
                    break;

                case 4: // '\004'
                    y -= 2;
                    eaxeJumpCtr++;
                    break;

                case 5: // '\005'
                    y += 2;
                    eaxeJumpCtr++;
                    break;

                case 6: // '\006'
                    y += 5;
                    eaxeJumpCtr++;
                    break;

                case 7: // '\007'
                    y += 7;
                    eaxeJumpCtr++;
                    break;

                case 8: // '\b'
                    y += 20;
                    eaxeJumpCtr++;
                    break;

                case 9: // '\t'
                    y += 25;
                    eaxeJumpCtr = 0;
                    action = 13;
                    break;
                }
            if(weapon == 41 && action == 16)
                switch(echainJumpCtr)
                {
                case 0: // '\0'
                    y -= 15;
                    echainJumpCtr++;
                    break;

                case 1: // '\001'
                    y -= 10;
                    echainJumpCtr++;
                    break;

                case 2: // '\002'
                    y -= 3;
                    echainJumpCtr++;
                    break;

                case 3: // '\003'
                    y -= 2;
                    echainJumpCtr++;
                    break;

                case 4: // '\004'
                    y--;
                    echainJumpCtr++;
                    break;

                case 5: // '\005'
                    y++;
                    echainJumpCtr++;
                    break;

                case 6: // '\006'
                    y += 2;
                    echainJumpCtr++;
                    break;

                case 7: // '\007'
                    y += 3;
                    echainJumpCtr++;
                    break;

                case 8: // '\b'
                    y += 10;
                    echainJumpCtr++;
                    break;

                case 9: // '\t'
                    y += 15;
                    echainJumpCtr = 0;
                    action = 13;
                    break;
                }
        }
        if(action == 19)
        {
            fr++;
            if(fr > 5 || fr > 4)
                fr = 0;
        } else
        if(action == 13 && jpCtr == 0)
        {
            y = emaxY;
            if(!ebackAttack)
                fr = 0;
        } else
        if(action == 16)
        {
            if(jpCtr == 0 && y >= emaxY && !isWeapon)
            {
                y -= 25;
                jpCtr = 1;
                action = 13;
            }
            if(eaxeJumpCtr == 0 && y >= emaxY && weapon == 39)
            {
                y -= 25;
                eaxeJumpCtr = 1;
            }
            if(echainJumpCtr == 0 && y >= emaxY && weapon == 41)
            {
                y -= 15;
                echainJumpCtr = 1;
            }
        } else
        if(action == 14)
        {
            if(!isWeapon)
            {
                if(face == 26)
                    x -= 5;
                else
                    x += 5;
                fr++;
                if(fr > 1)
                {
                    fr = 0;
                    action = 13;
                }
            }
            if(weapon == 41)
            {
                if(face == 26)
                    x -= 5;
                else
                    x += 5;
                fr++;
                if(fr > 1)
                {
                    fr = 0;
                    action = 13;
                }
            }
            if(weapon == 39)
            {
                if(face == 26)
                    x -= 5;
                else
                    x += 5;
                fr++;
                if(fr > 1)
                {
                    fr = 0;
                    action = 13;
                }
            }
        } else
        if(action == 15)
        {
            y = emaxY;
            if(!isWeapon)
            {
                switch((game.rnd.nextInt() >> 1) % 3)
                {
                case 0: // '\0'
                    weapon = 34;
                    break;

                case 1: // '\001'
                    weapon = 35;
                    break;

                case 2: // '\002'
                    weapon = 33;
                    break;
                }
                isWeapon = false;
            }
            if(!isWeapon)
            {
                if(weapon == 35)
                {
                    if(System.currentTimeMillis() % 3L == 0L)
                    {
                        if(face == 26)
                            x -= 5;
                        else
                            x += 5;
                        action = 13;
                    }
                } else
                if(weapon == 34)
                {
                    if(System.currentTimeMillis() % 3L == 0L)
                    {
                        fr++;
                        if(face == 26)
                            x -= 5;
                        else
                            x += 5;
                    }
                    if(fr > 1)
                    {
                        fr = 0;
                        action = 13;
                    }
                } else
                if(weapon == 33 && System.currentTimeMillis() % 7L == 0L)
                    action = 13;
            } else
            {
                if(weapon == 41)
                {
                    if(enemyCtr % 2 == 0)
                        fr++;
                    if(fr > 4)
                    {
                        fr = 0;
                        action = 13;
                    }
                } else
                if(weapon == 39)
                {
                    if(enemyCtr % 3 == 0)
                        fr++;
                    if(fr > 2)
                    {
                        fr = 0;
                        action = 13;
                    }
                }
                if(weapon != 34 && weapon != 35 && weapon != 33)
                    isWeapon = true;
            }
        } else
        if(action == 17)
        {
            if(!isWeapon)
                action = 13;
            if(weapon == 41)
            {
                if(enemyCtr % 3 == 0)
                {
                    if(face == 26)
                        x += 4;
                    else
                        x -= 4;
                    fr++;
                }
                if(fr > 1)
                {
                    fr = 0;
                    action = 13;
                }
            } else
            if(weapon == 39)
            {
                if(enemyCtr % 3 == 0)
                {
                    if(face == 26)
                        x += 5;
                    else
                        x -= 5;
                    fr++;
                }
                if(fr > 2)
                {
                    fr = 0;
                    action = 13;
                }
            }
        }
        for(Enumeration enumeration = game.RoadArms.elements(); enumeration.hasMoreElements();)
        {
            Arms arms = (Arms)enumeration.nextElement();
            if(!eweaponPicked && !isWeapon && game.weapon2 != 127 && game.weapon2 != 35 && x + 5 >= arms.x && x - 5 <= arms.x && y == emaxY)
            {
                eweaponPicked = true;
                weapon = game.weapon2;
                action = 13;
                isWeapon = true;
                game.weapon2 = 127;
                game.RoadArms.removeElement(arms);
            }

⌨️ 快捷键说明

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