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

📄 canvas1.java~351~

📁 这个是最早期的一个飞行射击游戏 简单实现了地图滚动 子弹碰撞 与 UI等
💻 JAVA~351~
📖 第 1 页 / 共 2 页
字号:

            hero.move(); //英雄移動

            this.heroShot(); //發射子彈
            enemy_count++;
            if (enemy_count == 100) {
                enemy = new Enemy(this, 1); //生成敵人
                enemy.setPosition(80, 0);
            } //生成敵人
            if (enemy != null) {
                enemy.move(); //敵人移動
                for (int i = 0; i < this.bullets1.length; i++) {
                    if (tool.inRect(enemy.x, enemy.y, 39, 30, bullets1[i].x,
                                    bullets1[i].y, 15, 24)) {
                        bullets1[i].setVisble(false);
                        blast.setPosition( bullets1[i].x, bullets1[i].y);
                        this.blast.move();//动//////////////////////////////////////////////
                        enemy.hp -= 1;
                        if (enemy.hp <= 0) {
                            enemy.y = 1000;

                        }
                    }

                }
            }

            break;
        }
    }


////////////////////////////////////////////////////////////////////////////////
    //打印
    public void paintLogo1(Graphics g) {
        g.setColor(0xfff);
        g.drawImage(img_Logo1, 2, 0, g.TOP | g.LEFT);

    }

    public void paintMenu(Graphics g) {

        g.drawImage(img_Menu, 2, 0, g.TOP | g.LEFT);
        g.setColor(0xffffff);
        switch (iSel_Menu) {
        case 0:
            g.fillRect(2, 60, img_Logo1.getWidth(), 18);
            break;
        case 1:
            g.fillRect(2, 88, img_Logo1.getWidth(), 18); ;
            break;
        case 2:
            g.fillRect(2, 116, img_Logo1.getWidth(), 18);
            break;
        case 3:
            g.fillRect(2, 144, img_Logo1.getWidth(), 18);
            break;
        }
        g.setColor(0x0);
        g.setFont(font);
        g.drawString("开始游戏", 22, 60, g.LEFT | g.TOP);
        g.drawString("音乐: 開", 22, 88, g.LEFT | g.TOP);
        g.drawString("帮助", 22, 116, g.LEFT | g.TOP);
        g.drawString("退出游戏", 22, 144, g.LEFT | g.TOP);
    }

    public void paintChoice(Graphics g) {
        g.drawImage(img_Menu, 2, 0, g.LEFT | g.TOP);
        switch (Hero.type) {
//3種飛機
        case 0:
            g.setColor(0xffffff);
            g.setFont(font);
            g.drawImage(img_plane1, planeX, 80, g.LEFT | g.TOP);
            g.drawString("<-  獵虎戰机  ->", 40, 165, g.LEFT | g.TOP);
            break;
        case 1:
            g.setColor(0xffffff);
            g.setFont(font);
            g.drawImage(img_plane2, planeX, 80, g.LEFT | g.TOP);
            g.drawString("<-  幻影戰机   ->", 40, 165, g.LEFT | g.TOP);

            break;
        case 2:
            g.setColor(0xffffff);
            g.setFont(font);
            g.drawImage(img_plane3, planeX, 70, g.LEFT | g.TOP);
            g.drawString("<-  天堂戰机   ->", 40, 165, g.LEFT | g.TOP);

            break;
        }
    }

    public void paintBullets(Graphics g) {
        switch (bullet_type) {
        case 1:
            for (int i = 0; i < this.bullets1.length; i++) {
                this.bullets1[i].move();
                this.bullets1[i].paint(g);
            }
            break;
        case 2:
            for (int i = 0; i < this.bullets1.length; i++) {
                this.bullets1[i].move();
                this.bullets1[i].paint(g);
                this.bullets2[i].move();
                this.bullets2[i].paint(g);
                this.bullets3[i].move();
                this.bullets3[i].paint(g);
            }

            break;
        case 3:
            for (int i = 0; i < this.bullets1.length; i++) {
                this.bullets1[i].move();
                this.bullets1[i].paint(g);
            }

            break;

        }

    }

    public void paintMap1(Graphics g) {

        try {
            map1.paintMap(g);
        } catch (Exception e) {}
        hero.paint(g);
    }

    public void setWindows() { //地圖滾動
        this.viewY -= 2;
        if (this.viewY < 0) {
            viewY = 0;
        }
    }


//////////////////////////////////////////////////////////////////////////////////
    //按鍵操作
    public void key_play() {

        switch (key) {
        case KEY_NUM2:
        case UP:
            key2 = true;
            break;
        case KEY_NUM4:
        case LEFT:
            key4 = true;
            break;
        case KEY_NUM6:
        case RIGHT:
            key6 = true;
            break;
        case KEY_NUM8:
        case DOWN:
            key8 = true;
            break;
        case FIRE:
            break;
        }

    }

    public void key_menu() {

        switch (key) {
        case UP:
            if (iSel_Menu != 0) {
                iSel_Menu--;
            }
            break;
        case DOWN:
            if (iSel_Menu != 3) {
                iSel_Menu++;
            }

            break;
        case FIRE:

            switch (this.iSel_Menu) {
            case 0: //游戲開始
                this.chageMission(GAME_CHOICE);

                break;
            case 1: //音樂開關

                break;
            case 2: //音樂開關

                break;
            case 3: //退出游戏

                break;

            }
            break;
        }

    }

    public void key_choice() {
        switch (key) {
        case LEFT:
            if (choice_RIGHT == false) {
                choice_LEFT = true;
            }
            ;
            break;
        case RIGHT:
            if (choice_LEFT == false) {
                choice_RIGHT = true;
            }
            ;
            break;
        case FIRE:
            hero = new Hero(this, Hero.type); //生成飛機
            this.bullet_construct(); //生成子弹

            this.chageMission(GAME_PLAY);
            break;
        }

    }

    protected void keyPressed(int keyCode) {
        //標題畫面操作
        key = keyCode;

        switch (mission) {

        case GAME_LOGO1:
            break;
        case GAME_MENU:
            key_menu();
            break;
        case GAME_CHOICE:
            key_choice();
            break;
        case GAME_PLAY:
            key_play();
            break;
        case GAME_HELP:
            break;
        }
    }

    protected void keyReleased(int keyCode) {
        switch (keyCode) {
        case KEY_NUM2:
        case UP:
            key2 = false;
            key = 0;
            break;
        case KEY_NUM4:
        case LEFT:
            key4 = false;
            key = 0;
            break;
        case KEY_NUM6:
        case RIGHT:
            key6 = false;
            key = 0;
            break;
        case KEY_NUM8:
        case DOWN:
            key8 = false;
            key = 0;
            break;
        }
    }

    protected void paint(Graphics g) {
        Graphics gg = g;
        g = Dg;
        switch (mission) {

        case GAME_LOGO1:
            paintLogo1(g);
            break;
        case GAME_HELP:
            break;
        case GAME_MENU:
            paintMenu(g);

            break;
        case GAME_CHOICE:
            paintChoice(g);
            break;
        case GAME_PLAY:

            paintMap1(g);
            this.paintBullets(g);
            if (enemy != null) {
                enemy.paint(g);
            }
            blast.paint(g);
            break;
        }
        g = gg;
        g.drawImage(img_buffer, 0, 0, g.TOP | g.LEFT);
    }

    public void run() {

        while (title) {

            long start = System.currentTimeMillis();
            try {
                this.logic();
                this.repaint();
                this.serviceRepaints();
            } catch (Exception e) {
                e.printStackTrace();
            }
            ;
            long end = System.currentTimeMillis();
            if ((70 - (end - start)) > 0) {
                try {
                    thread1.sleep(70 - (end - start));
                } catch (InterruptedException ex) {
                }
            }
        }
    }

    private void jbInit() throws Exception {
    }
}

⌨️ 快捷键说明

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