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

📄 player.java

📁 格斗类型的游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

import com.nokia.mid.ui.DirectGraphics;
import com.nokia.mid.ui.DirectUtils;
import javax.microedition.lcdui.*;

public class Player {
    private GameCanvas GC = null;
    //游戏角色图片
    private Image playerPhoto = null;
    private Image skill = null;
    private byte palyer = 0;
    //角色行为状态控制
    private byte H;
    //角色攻击状态控制
    private byte t;
    //选择的角色
    private byte y;
    private int I;
    //行为控制
    private byte A;
    //控制角色绝技
    private byte skillNum;
    //取得角色图片
    private int playerInt;
    private int G;
    //游戏角色坐标控制
    private int w;
    private int v;
    private int f;
    private int K;

    private boolean P;
    //游戏角色是否处于控制状态
    private boolean PS;
    //角色的血量
    private int e;
//    private int fistImage;
    private int g;
    //坐标定位
    private int F;
    //角色坐标
    private int playerbyte;
    private int q;
    private int D;
    private int b;
    //判断角色发绝技状态
    private boolean skillState;

    //游戏中执行的时间
    private int gTime;
    private boolean a;
    private static final byte Num[] = {
        4, 4, 5, 5, 6, 6, 10, 10
    };
    //角色图片名
    private static final String ename[] = {
        "mike", "kane", "von", "dio", "fang", "crack", "yamakawa", "padof"
    };
    private static final int coorSet[] = {
        26, 0, 15, 30, 22, 28, 12, 19
    };
    //角色图片定位数组
    private static final int playerWidth[][][] = {
        {
            {
                0, 19, 40, 56, 83, 107, 136, 169, 184, 201,223, 252
            },
            {
                19, 21, 16, 27, 24, 29, 33, 15, 17, 22,29, 13
            }
        }, {
            {
                0, 19, 34, 49, 79, 101, 128, 154, 172, 188,209, 226
            }, {
                19, 15, 15, 30, 22, 27, 26, 18, 16, 21,17, 13
            }
        }, {
            {
                0, 19, 39, 56, 83, 106, 136, 167, 183, 199,216, 234
            }, {
                19, 17, 17, 27, 23, 30, 31, 16, 16, 17,18, 17
            }
        }, {
            {
                0, 28, 53, 73, 101, 128, 161, 189, 211, 228,249, 274
            }, {
                28, 25, 20, 28, 27, 33, 28, 22, 17, 21,25, 13
            }
        }, {
            {
                0, 18, 36, 55, 84, 107, 136, 162, 180, 194,214, 236
            }, {
                18, 18, 19, 29, 23, 29, 26, 18, 14, 20,22, 13
            }
        }, {
            {
                0, 24, 52, 72, 104, 137, 172, 203, 228, 247,271, 293
            }, {
                24, 28, 20, 32, 33, 35, 31, 25, 19, 24,22, 19
            }
        }, {
            {
                0, 25, 52, 78, 113, 146, 179, 213, 236, 257,279, 300
            }, {
                25, 27, 26, 35, 33, 33, 34, 23, 21, 22,21, 20
            }
        }, {
            {
                0, 27, 58, 83, 117, 149, 177, 207, 227, 246,269, 298
            }, {
                27, 31, 25, 34, 32, 28, 30, 20, 19, 23, 29, 20
            }
        }
    };
    //距离设定
    private static final int playerD[] = {
        34, 68, 34, 34, 36, 40, 16, 38
    };
    //血量设定
    private static final int eSet[][] = {
        {
            8, 8, 15, 15, 8, 26, 20, 20
        }, {
            5, 5, 10, 10, 5, 22, 15, 15
        }, {
            20, 20, 17, 17, 26, 8, 10, 10
        }, {
            15, 15, 14, 14, 22, 5, 7, 7
        }
    };
    //玩家角色去掉的血量
    private static final int eReduce[][] = {
        {
            15, 15, 17, 17, 15, 25, 25, 25
        }, {
            10, 10, 15, 15, 10, 20, 20, 20
        }, {
            25, 25, 20, 20, 30, 15, 18, 18
        }, {
            20, 20, 16, 16, 25, 10, 13, 13
        }
    };
    private static final byte playerS[] = {
        5, 5, 4, 4, 4, 3, 3, 3
    };
    //角色行为状态数组
    private static final byte playerCordi[][] = {
        {
            3, 3, 3, 3, 3, 3, 4, 4
        }, {
            3, 3, 3, 3, 4, 4, 4, 4
        }, {
            3, 3, 4, 4, 4, 4, 4, 4
        }, {
            4, 4, 4, 4, 4, 4, 4, 4
        }, {
            5, 5, 5, 5, 5, 5, 5, 5
        }, {
            5, 5, 6, 5, 6, 5, 5, 5
        }, {
            6, 6, 6, 6, 6, 6, 6, 5
        }, {
            6, 6, 7, 7, 7, 7, 6, 5
        }, {
            7, 7, 7, 7, 7, 7, 6, 6
        }, {
            7, 7, 8, 7, 8, 7, 6, 7
        }, {
            8, 8, 8, 8, 8, 8, 7, 7
        }, {
            8, 8, 8, 8, 8, 8, 7, 7
        }, {
            8, 8, 8, 8, 7, 0, 0, 0
        }, {
            7, 7, 8, 0, 0, 0, 0, 0
        }, {
            0, 0, 0, 0, 0, 0, 0, 0
        }, {
            0, 0, 0, 0, 0, 0, 0, 0
        }
    };
    //坐标增量
    private static final byte increCoor[] = {
        5, 5, 5, 5, 4, 4, 4, 4
    };
    //绝技的去血量
    private static final byte eSkill[] = {
        25, 25, 25, 25, 20, 20, 20, 20
    };

    /**
     * 游戏角色类构造函数
     * @param d1 GameCanvas,游戏主画面类对象
     * @param flag boolean,游戏角色状态标志
     */
    public Player(GameCanvas d1, boolean flag)
    {
        GC = d1;
        PS = flag;
//System.out.println("now time jugdeGameNum " + System.currentTimeMillis());
    }

    /**
     * 清空图片
     */
     public void SetNull() {
        playerPhoto = null;
        skill = null;
        //System.gc();
    }

    /**
     * 设定游戏角色
     * @param byte0 byte,游戏角色状态
     */
    public void setPlayer(byte byte0)
    {
        palyer = byte0;
        System.gc();
        try
        {
            playerPhoto = Image.createImage(String.valueOf(String.valueOf((new StringBuffer("/")).append(ename[byte0]).append(".png"))));
            skill = Image.createImage(String.valueOf(String.valueOf((new StringBuffer("/")).append(ename[byte0]).append("_s.png"))));
        } catch(Exception exception) {
//            System.out.println("image error");
        }
        //System.gc();
        resetPlayer();
    }

    /**
     * 重新设定游戏角色1和角色2
     */
    public void resetPlayer()
    {
        playerInt = 0;
        v = 0;
        f = 18;
        K = 0;
        H = 0;
        t = 0;
        y = 0;
        G = 0;
        e = DragonSoul.eNum[getPlayer()];
        //fistImage = 0;
        g = 0;
        skillNum = 0;
        skillState = false;
        resetForceTime();
        if(PS)
            setPlayer1Cor();
        else
            setPlayer2Cor();
    }

    /**
     * 设定电脑角色初始坐标
     */
    public void setPlayer2Cor()
    {
        w = -50;
        P = true;
        G = 0;
    }

    /**
     * 设定玩家角色初始坐标
     */
    public void setPlayer1Cor()
    {
        w = 50;
        P = false;
        G = 8192;
    }

    /**
     * 重新设定蓄力初始时间
     */
    public void resetForceTime()
    {
        gTime = GC.getA();
    }

    /**
     * 获得蓄力初始时间
     * @return gTime int,蓄力初始时间
     */
    public int getForceTime()
    {
        return gTime;
    }

    /**
     * 判断蓄力时间是否大于20秒
     * @return 蓄力时间判断
     */
    public boolean judgeForceTime()
    {
        return GC.getA() - gTime > 20;
    }

    /**
     * 获得的游戏角色
     * @return player int,游戏角色
     */
    public int getPlayer()
    {
        return palyer;
    }

    /**
     * 设定角色的血量
     * @param i1 int,角色的血量
     */
    public void setE(int i1)
    {
        e = i1;
    }

    /**
     * 获得角色的血量
     * @return getPlayerCor int,角色的血量
     */
    public int getE()
    {
        return e;
    }

//    public int showLogoCanvas()
//    {
//        return fistImage;
//    }

    /**
     * 获得角色的状态
     * @return k int,角色的状态值
     */
    public int getState()
    {
        return K;
    }

    /**
     * 控制游戏角色做相应的动作
     * @param i1 int,动作类型
     */
    public void playerAction(int i1)
    {
        if(i1 == 11)
        {
            K = i1;
            A = 4;
            return;
        }
        if(H > 0)
            return;
        if(t > 0)
            return;
        if(y > 0)
            return;
        if(A > 0)
            return;
        if(skillNum > 0)
            return;
        if(K == 3)
        {
            if(i1 == 3 || i1 == 4)
                return;
            if(i1 == 1 && I == 0)
            {
                i1 = 9;
                y = playerS[getPlayer()];
                I++;
            } else
            if(i1 == 2 && I == 0)
            {
                i1 = 10;
                y = playerS[getPlayer()];
                I++;
            } else
            if(i1 != 0)
                setPlayerCor(8 * (P ? 1 : -1));
        }
        K = i1;
        if(i1 == 5)
            GC.start(0);
        else
        if(i1 == 6)
            GC.start(1);
        else
        if(i1 == 7)
            GC.start(2);
        else
        if(i1 == 8)
            GC.start(3);
        if(i1 == 3)
        {
            f = 18;
            I = 0;
        }
        if(i1 == 11)
            A = 4;
    }

    /**
     * 通过游戏角色的坐标设定角色行为
     */
    public void setAction()
    {
        Player b1 = GC.getPlayer1();
        if(!GC.getP().getGameRank() && judgeSkill())
            return;
        if(Math.abs(b1.getPlayerCor() - getPlayerCor()) >= (playerPhoto.getWidth() * 2) / 12)
        {
            if(GC.t.nextInt() % Num[getPlayer()] == 0 && (K == 0 || K == 1 || K == 2))
            {
                playerAction(0);
                playerAction(3);
            } else
            if(K == 0)

⌨️ 快捷键说明

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