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

📄 feiji_canvas.java~462~

📁 JAVA的手机游戏
💻 JAVA~462~
📖 第 1 页 / 共 4 页
字号:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import java.util.Random;

public class feiji_Canvas extends Canvas implements Runnable{
    final int key_up = -1;
    final int key_down = -2;
    final int key_left = -3;
    final int key_right = -4;
    final int key_select = -5;
    final int key_lsoft = -6;
    final int key_rsoft = -7;
    final int up = 2, down = 3, left = 5, right = 7, stop = 1;

    int game_state=1;
    final int game_state_start=1;
    final int game_state_run=2;
    final int game_state_over=3;
    final int game_state_win=4;

    Random r = new Random();
    Thread t=new Thread(this);
    Image feiji_ziji_tu,zidan_tu,beijing_tu,npc_feiji_tu1,baozha,npc_feiji_tu4,npc_feiji_tu5;
    final int screen_W=176;
    final int screen_H=208;
    int feiji_ziji_x=70;//自己飞机的坐标
    int feiji_ziji_y=170;
    final int feiji_ziji_W=31;
    final int feiji_ziji_H=23;
    int feiji_ziji_yangzi=stop;
    int feiji_ziji_speed=4;//自己飞机的速度
    int feiji_ziji_hp=50;//飞机的生命值
    boolean feiji_ziji_cunzai=true;//飞机存在
    final int feiji_ziji_1=1;
    int feiji_ziji_zidan_x_speed=0;//子弹x的速度
    int feiji_ziji_zidan_y_speed=8;//子弹y的速度
    int feiji_ziji_zidan_x;
    int feiji_ziji_zidan_y;
    int feiji_ziji_lei=3;
    boolean fanglei=false;
    final int feiji_ziji_zidan_W=16;
    final int feiji_ziji_zidan_H=12;
    int feiji_ziji_zidan_geshu=0;//屏幕上子弹个数
    int feiji_ziji_zidan_weili=10;//子弹威力
    int[][] feiji_ziji_zidan_shuzu=new int[40][6];//0是x坐标,1是y坐标,2是x方向速度,3是y方向速度,4是威力,5是种类
    int feiji_ziji_zidan_paopao_time=6;//子弹攒泡泡需要的时间
    int feiji_ziji_zidan_paopao_shu=0;
    boolean feiji_ziji_zidan_paopao_queren=false;//按住确认
    boolean feiji_ziji_zidan_paopao_anzhu=false;//按住状态
    int feiji_ziji_zidan_paopao_anzhuweizhi=-1;//按住位置
    int feiji_ziji_zidan_paopao_zuijin;//最近的泡泡
    int[][] feiji_ziji_zidan_paopao_shuzu=new int[5][6];//0是x坐标,1是y坐标,2是x方向速度,3是y方向速度,4是威力,5是种类
    int feiji_ziji_zidan_paopao_W=23;
    int feiji_ziji_zidan_paopao_H=23;
    int feiji_ziji_zidan_paopao_geshu=0;//屏幕上子弹泡泡的个数
    int feiji_ziji_zidan_paopao_speed=6;
    int feiji_ziji_zidan_paopao_weili=100;
    boolean feiji_ziji_zidan_paopao_keyifashe=false;
    boolean win=false;

    int[][] daoju_shuzu=new int[10][7];//0是x坐标,1是y坐标,2是x方向速度,3是y方向速度,4是种类,5是宽,6是高

    int beijing=0;//背景
    int beijing_x=0;
    int beijing_speed=4;

    int[][] npc_feiji_shuzu=new int[40][12];//0是x坐标,1是y坐标,2是x方向速度,3是y方向速度,4是hp,5是种类(显示哪个图),6是动画桢(样子,飞行图片),7是状态(飞行方向),8是批次,9是记数器,10是宽,11是高
    final int npc_feiji_W=32;
    final int npc_feiji_H=32;
    final int npc_feiji_state_up=5;
    final int npc_feiji_state_down=1;
    final int npc_feiji_state_left=7;
    final int npc_feiji_state_right=3;
    final int npc_feiji_state_upleft=6;
    final int npc_feiji_state_upright=4;
    final int npc_feiji_state_downleft=8;
    final int npc_feiji_state_downright=2;

    int[][] npc_zidan_shuzu=new int[80][9];//0是x坐标,1是y坐标,2是x方向速度,3是y方向速度,4是威力,5是宽,6是高,7是方向,8是计数器

    long st,et;//起始时间,结束时间
    final long WT=70;//等待时间
    int jishuqi_time=0;

    void paint_bejing(Graphics g){
        g.setClip(0,0,screen_W,screen_H);
        if(feiji_ziji_x<=10&&feiji_ziji_yangzi%left==0)beijing_x-=5;
        if(feiji_ziji_x+10+23>=166&&feiji_ziji_yangzi%right==0)beijing_x+=5;
        beijing%=320;
        if(beijing_x<=0)beijing_x=0;
        if(beijing_x>=481-screen_W)beijing_x=481-screen_W;
        g.drawImage(beijing_tu,0-beijing_x,0+beijing,0);
        g.drawImage(beijing_tu,0-beijing_x,0+beijing-320,0);
    }

    void paint_cls(Graphics g){
        g.setClip(0,0,500,500);
        g.setColor(0x0000ff);
        g.fillRect(0,0,500,500);
        g.setClip(0,0,500,500);
        g.setColor(0x000000);
        g.fillRect(0,0,screen_W,screen_H);
    }

    Image getImage(String s) { //传图片的方法
        Image img = null;
        try {
            img = Image.createImage(s);
        } catch (Exception e) {}
        return img;
    }

    protected feiji_Canvas() {
        this.setFullScreenMode(true);
        feiji_ziji_tu=getImage("/player.png");
        zidan_tu=getImage("/playerZidan.png");
        beijing_tu=getImage("/1.png");
        npc_feiji_tu1=getImage("/npc1.png");
        baozha=getImage("/bao.png");
        npc_feiji_tu4=getImage("/npc4.png");
        npc_feiji_tu5=getImage("/npc5.png");
        t.start();
    }

    void kaishi_chushihua(){
        feiji_ziji_x=70;
        feiji_ziji_y=170;
        feiji_ziji_yangzi=stop;
        feiji_ziji_hp=50;
        feiji_ziji_lei=3;
        feiji_ziji_zidan_weili=10;
        for(int i=0;i<feiji_ziji_zidan_shuzu.length;i++){
            feiji_ziji_zidan_shuzu[i][5]=0;
        }
        for(int i=0;i<feiji_ziji_zidan_paopao_shuzu.length;i++){
            feiji_ziji_zidan_shuzu[i][5]=0;
        }
        for(int i=0;i<daoju_shuzu.length;i++){
            daoju_shuzu[i][4]=0;
        }

        for(int i=0;i<npc_feiji_shuzu.length;i++){
            npc_feiji_shuzu[i][5]=0;
        }
        for(int i=0;i<npc_zidan_shuzu.length;i++){
            npc_zidan_shuzu[i][4]=0;
        }
        feiji_ziji_zidan_paopao_keyifashe=false;
        win=false;
        jishuqi_time=0;
    }

    protected void keyPressed(int code) {
        switch(game_state){
        case game_state_start:
            switch(code){
            case key_lsoft:
                kaishi_chushihua();
                game_state=game_state_run;
                break;
            }
            break;
        case game_state_win:
            switch(code){
            case key_lsoft:
                game_state=game_state_start;
                break;
            }
            break;
        case game_state_over:
            switch(code){
            case key_lsoft:
                game_state=game_state_start;
                feiji_ziji_cunzai=true;
                break;
            }
        break;
        case game_state_run:
            switch(code){
            case key_lsoft:
                if(feiji_ziji_lei>0){
                    fanglei=true;
                }
                break;
            case key_up:
                feiji_ziji_yangzi*=up;
                break;
            case key_down:
                feiji_ziji_yangzi*=down;
                break;
            case key_left:
                feiji_ziji_yangzi*=left;
                break;
            case key_right:
                feiji_ziji_yangzi*=right;
                break;
            case key_select:
                feiji_ziji_zidan_paopao_queren=true;
                feiji_ziji_zidan_paopao_anzhu=true;
                for(int i=0;i<feiji_ziji_zidan_paopao_shuzu.length;i++){
                    if(feiji_ziji_zidan_paopao_shuzu[i][5]==0){
                        feiji_ziji_zidan_paopao_anzhuweizhi=i;
                        break;
                    }
                }
                break;
            }
            break;
        }
    }

    protected void keyReleased(int code) {
        switch(game_state){
        case game_state_run:
            switch(code){
            case key_up:
                feiji_ziji_yangzi/=up;
                break;
            case key_down:
                feiji_ziji_yangzi/=down;
                break;
            case key_left:
                feiji_ziji_yangzi/=left;
                break;
            case key_right:
                feiji_ziji_yangzi/=right;
                break;
            case key_select:
                feiji_ziji_zidan_paopao_anzhu=false;
                feiji_ziji_zidan_paopao_anzhuweizhi=-1;
                if(!panduan_paopao()){
                    for(int i=0;i<feiji_ziji_zidan_shuzu.length;i++){
                        if(feiji_ziji_zidan_shuzu[i][5]==0){//种类为0
                            switch(feiji_ziji_zidan_weili){
                            case 10:
                                feiji_ziji_zidan_shuzu[i][0]=feiji_ziji_x+7;
                                feiji_ziji_zidan_shuzu[i][1]=feiji_ziji_y;
                                feiji_ziji_zidan_shuzu[i][3]=feiji_ziji_zidan_y_speed;
                                feiji_ziji_zidan_shuzu[i][4]=10;
                                feiji_ziji_zidan_shuzu[i][5]=feiji_ziji_1;
                                feiji_ziji_zidan_geshu++;
                                break;
                            case 20:
                                feiji_ziji_zidan_shuzu[i][0]=feiji_ziji_x;
                                feiji_ziji_zidan_shuzu[i][1]=feiji_ziji_y;
                                feiji_ziji_zidan_shuzu[i][3]=feiji_ziji_zidan_y_speed;
                                feiji_ziji_zidan_shuzu[i][4]=10;
                                feiji_ziji_zidan_shuzu[i][5]=feiji_ziji_1;
                                feiji_ziji_zidan_geshu++;
                                for(int j=0;j<feiji_ziji_zidan_shuzu.length;j++){
                                    if(feiji_ziji_zidan_shuzu[j][5]==0){
                                        feiji_ziji_zidan_shuzu[j][0]=feiji_ziji_x+16;
                                        feiji_ziji_zidan_shuzu[j][1]=feiji_ziji_y;
                                        feiji_ziji_zidan_shuzu[j][3]=feiji_ziji_zidan_y_speed;
                                        feiji_ziji_zidan_shuzu[j][4]=10;
                                        feiji_ziji_zidan_shuzu[j][5]=feiji_ziji_1;
                                        feiji_ziji_zidan_geshu++;
                                        break;
                                    }
                                }
                                break;
                            }
                            break;
                        }
                    }
                }
                if(feiji_ziji_zidan_paopao_geshu>0){
                    feiji_ziji_zidan_paopao_keyifashe=true;
                }
                else{
                    feiji_ziji_zidan_paopao_queren = false;
                    feiji_ziji_zidan_paopao_shu=0;
                    feiji_ziji_zidan_paopao_geshu=0;
                    feiji_ziji_zidan_paopao_keyifashe=false;
                }
                break;
            }
            break;
        }
    }

    boolean panduan_paopao(){//判断泡泡是否就在飞机上面
        for(int i=0;i<feiji_ziji_zidan_paopao_shuzu.length;i++){
            if(feiji_ziji_zidan_paopao_shuzu[i][5]!=0){
                if(feiji_ziji_zidan_paopao_shuzu[i][1]>=feiji_ziji_y-23){//说明离的近
                    return true;
                }
            }
        }
        return false;
    }

    void next_feiji_ziji_movp(){//主角移动的方法
        if(feiji_ziji_yangzi%up==0){
            if(feiji_ziji_y-feiji_ziji_speed>=0){
                feiji_ziji_y -= feiji_ziji_speed;
            }else feiji_ziji_y=0;
        }
        if(feiji_ziji_yangzi%down==0){
            if (feiji_ziji_y + feiji_ziji_speed <= screen_H - feiji_ziji_H) {
                feiji_ziji_y += feiji_ziji_speed;
            }else
                feiji_ziji_y = screen_H - feiji_ziji_H;
        }
        if(feiji_ziji_yangzi%left==0){
            if (feiji_ziji_x - feiji_ziji_speed >= 0) {
                feiji_ziji_x -= feiji_ziji_speed;
            }else
                feiji_ziji_x = 0;
        }
        if(feiji_ziji_yangzi%right==0){
            if (feiji_ziji_x + feiji_ziji_speed <= screen_W - feiji_ziji_W) {
                feiji_ziji_x += feiji_ziji_speed;
            }else
                feiji_ziji_x = screen_W - feiji_ziji_W;
        }
    }

    void next_feiji_ziji_zidan_movp(){////主角子弹移动的方法
        if(feiji_ziji_zidan_geshu>0){
            for(int i=0;i<feiji_ziji_zidan_shuzu.length;i++){
                if(feiji_ziji_zidan_shuzu[i][5]!=0){
                    if(feiji_ziji_zidan_shuzu[i][0]-feiji_ziji_zidan_shuzu[i][2]>=0-feiji_ziji_zidan_W//左边出去

⌨️ 快捷键说明

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