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

📄 tank.java~1~

📁 手机上一个坦克游戏
💻 JAVA~1~
📖 第 1 页 / 共 2 页
字号:
                    -battleCanvas.SCREEN_Y <=
                    battleCanvas.MAP_HEIGHT - battleCanvas.screen_h) {
                    battleCanvas.setTranslateY( -Math.min(temp -
                        tank_y,
                        battleCanvas.MAP_HEIGHT - battleCanvas.screen_h +
                        battleCanvas.SCREEN_Y));
                }
                tank_y = temp;
                if (tank_x <
                    -battleCanvas.SCREEN_X + battleCanvas.screen_w / 4 &&
                    battleCanvas.SCREEN_X < 0
                    ) {
                    battleCanvas.setTranslateX(1);
                }
                move--;
                battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
                                     battleCanvas.screen_w);
            }
        }
    }

//右边届判断,用来对坦克向右判断
    public void moveRight() {
        if (tank_x <= battleCanvas.MAP_WIDTH - TANK_HSCALE / 2) {
            int temp = battleCanvas.map.getTankY(this);
            //System.out.println("temp = " + temp);
            if (temp == -1) { // 不能移动
            }
            else {
                if (temp == -2) { // 坦克死亡
                    if (userName.equals(battleCanvas.userName)) { // 是轮到自己
                        tank_y = battleCanvas.screen_h;
                        tank_x = tank_x + TANK_HSCALE / 2;
                        battleCanvas.route.addElement(new Integer(tank_x));
                        battleCanvas.route.addElement(new Integer(tank_y));
                        battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
                                             battleCanvas.screen_w);
                        //System.out.println("F x = " + tank_x + " y = " + tank_y);
                        HttpClientHolder httpClientHolder = new
                            HttpClientHolder();
                        //System.out.println("move left send 37 to server:");
                        //System.out.println("tank_x = " + tank_x);
                        //System.out.println("tank_y = " + tank_y);
                        httpClientHolder.WriteInt(37);
                        /*用户移动路径长度 Int(包括原点)
                            [ x Int
                            y Int ]
                         */
                        httpClientHolder.WriteInt(battleCanvas.route.size());
                        for (int jj = 0; jj < battleCanvas.route.size(); jj++) {
                            int cordi;
                            if (jj % 2 == 0) {
                                cordi = ( (Integer) battleCanvas.route.
                                         elementAt(jj)).
                                    intValue(); // x
                            }
                            else {
                                cordi = ( (Integer) battleCanvas.route.
                                         elementAt(jj)).
                                    intValue() +
                                    battleCanvas.now.TANK_VSCALE / 2; // y
                            }
                            httpClientHolder.WriteInt(cordi);
                        }
                        battleCanvas.route.removeAllElements();
                        battleCanvas.mHttpConnection.addSendMessage(
                            httpClientHolder);
                    }

                    try {
                        Thread.sleep(20L);
                    }
                    catch (InterruptedException ex) {
                    }
                    life = 0;
                    battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
                                         battleCanvas.screen_w);
                    return;

                }
                //System.out.println("****** before judge ******************");
                //System.out.println("tank_x = " + tank_x);
                //System.out.println("tank_y = " + tank_y);
                if (temp > tank_y) {
                    tank_x = tank_x + TANK_HSCALE / 2;
                    //System.out.println("yes below , tank_x = " + tank_x);
                }
                else {
                    tank_x++;
                    //System.out.println("no overhead, tank_x++ = " + tank_x);
                }
                tank_y = temp;
                if (tank_x >
                    battleCanvas.screen_w * 3 / 4 - battleCanvas.SCREEN_X &&
                    -battleCanvas.SCREEN_X <=
                    battleCanvas.MAP_WIDTH - battleCanvas.screen_w
                    ) {
                    battleCanvas.setTranslateX( -1);
                }
                move--;
                battleCanvas.repaint(0, 0, battleCanvas.MAP_WIDTH,
                                     battleCanvas.screen_w);
            }
        }
        //}
    }

//是否对导弹的速度加速
    public void accelerate() {
        if (speed < 100) {
            speed++;
        }
        //battleCanvas.repaint(4, 4, 80, 40);
    }

//对导弹减速
    /*public void deaccelerate() {
        if (speed > 0) {
            speed--;
        }
        battleCanvas.repaint(4, 4, 80, 40);
         }*/

//这个函数用来判断时候与导弹碰撞
    public boolean isCollision(Missile e1) {
        //计算导弹的位置
        if (e1.m_x > tank_x - 5 && e1.m_x < tank_x + 5 &&
            e1.m_y > tank_y - 5 &&
            e1.m_y < tank_y + 5) { // 击中坦克
            //life -= e1.demage; // 生命减少
            return true;
        }
        else {
            return false;
        }
    }

    public void addProperties(String property) {
        properties.insertElementAt(property, 0);
        if (properties.size() > 4) {
            properties.setSize(4);
        }
    }

    public int getPropertyID(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 1);
            return Integer.parseInt(id);
        }
        else {
            return -1;
        }
    }

    public String getPropertyName(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 2);
            return id;
        }
        else {
            return null;
        }
    }

    public int getAttackDemage(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 3);
            return Integer.parseInt(id);
        }
        else {
            return 0;
        }
    }

    public int getMissilesNum(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 4);
            return Integer.parseInt(id);
        }
        else {
            return 0;
        }
    }

    public int getAttackArea(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 5);
            return Integer.parseInt(id);
        }
        else {
            return 0;
        }
    }

    public int getBlood(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 3);
            return Integer.parseInt(id);
        }
        else {
            return 0;
        }
    }

    public int getMove(int index) {
        if (index < properties.size() && index >= 0) {
            String id = getStringBetween(index, 4);
            return Integer.parseInt(id);
        }
        else {
            return 0;
        }
    }

    private String getStringBetween(int index, int start) {
        //携带的物品:导弹 0$物品的Id$物品的名字$攻击力$导弹个数$攻击范围$
        //物品 1$物品的Id$物品的名字$血$移动力$
        int temp = 0;
        String s = (String) properties.elementAt(index);
        //System.out.println("Start: " + start);
        for (int n = 1; n <= start; n++) {
            temp = s.indexOf("$", temp + 1);
            //System.out.println("temp: " + temp);
        }
        String result = s.substring(temp + 1, s.indexOf("$", temp + 1));
        //System.out.println("result: " + result);
        return result;
    }

    public boolean isMissile(int index) {
        String s = (String) properties.elementAt(index);
        return Integer.parseInt(s.substring(0, 1)) == 0;
    }

    /*调用爆炸效果
        public void exacuteCrash() {
            battleCanvas.repaint();
        }*/
    public int getInitLife() {
        return INIT_LIFE;
    }

}

⌨️ 快捷键说明

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