zoukankan      html  css  js  c++  java
  • java游戏制作之水果忍者

    水果忍者的原理很简单,主要就是采用随机的方式是画面上面出现水果。

    package Fruitninja;
    
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.util.Random;
    
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class Backpicture extends JPanel{
        private int x=1,y=1;
        private int line = 100;
        private int[] ti = new int[3];
        private int[] pi = new int[6];
        private int i=0;
        Random ran = new Random();
        private int value;
        ThreadPicture tp = new ThreadPicture(800);
        AddListener al = new AddListener(this);
        ImageIcon background = new ImageIcon(this.getClass().getResource("水果忍者.jpg"));
        ImageIcon apple = new ImageIcon(this.getClass().getResource("apple.png"));
        ImageIcon lemon = new ImageIcon(this.getClass().getResource("lemon.png"));
        ImageIcon orange = new ImageIcon(this.getClass().getResource("orange.png"));
        ImageIcon purple = new ImageIcon(this.getClass().getResource("purple.png"));
        ImageIcon strawberry = new ImageIcon(this.getClass().getResource("strawberry.png"));
        ImageIcon watermelon = new ImageIcon(this.getClass().getResource("watermelon.png"));
        ImageIcon apple1 = new ImageIcon(this.getClass().getResource("apple-1.png"));
        ImageIcon lemon1 = new ImageIcon(this.getClass().getResource("lemon-1.png"));
        ImageIcon orange1 = new ImageIcon(this.getClass().getResource("orange-1.png"));
        ImageIcon purple1 = new ImageIcon(this.getClass().getResource("purple-1.png"));
        ImageIcon strawberry1 = new ImageIcon(this.getClass().getResource("strawberry-1.png"));
        ImageIcon watermelon1 = new ImageIcon(this.getClass().getResource("watermelon-1.png"));
        public static void main(String[] args) {
            Backpicture bp = new Backpicture();
            bp.initUI();
        }
        public Backpicture(){
            ti = tp.setTi();
        }
        public void initUI(){
            JFrame jf = new JFrame();
            jf.setDefaultCloseOperation(3);
            jf.setSize(new Dimension(1500,1000));
            jf.setLocationRelativeTo(null);
            jf.setTitle("Fruit ninja");
            jf.add(this);
            this.setSize(new Dimension(500,600));
            jf.addMouseListener(al);
            al.setThreadPicture(tp);
            ranValue();
            tp.getAl(al);tp.getTi(ti);
            jf.setVisible(true);
            
            Thread t = new Thread(al);
            t.start();
            
            
            
        }
        
        
        public void paint(Graphics g){
            super.paint(g);
            g.drawImage(background.getImage(), 0, 0, 1500, 1000, null);
            for(int i=0;i<3;i++){
                al.Cut();
                if(ti[i]==1){
                    g.drawImage(apple.getImage(), ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==2){
                    g.drawImage(lemon.getImage(),ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==3){
                    g.drawImage(orange.getImage(), ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==4){
                    g.drawImage(purple.getImage(), ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==5){
                    g.drawImage(strawberry.getImage(),ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==6){
                    g.drawImage(watermelon.getImage(),ti[i]*line+ti[i]*100, tp.getY(), 150, 150, null);
                }
                if(ti[i]==7){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(apple1.getImage(), (ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
                if(ti[i]==8){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(lemon1.getImage(), (ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
                if(ti[i]==9){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(orange1.getImage(), (ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
                if(ti[i]==10){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(purple1.getImage(), (ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
                if(ti[i]==11){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(strawberry1.getImage(),(ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
                if(ti[i]==12){
                    System.out.println("ti[i]"+ti[i]);
                    g.drawImage(watermelon1.getImage(), (ti[i]-6)*line+(ti[i]-6)*100, tp.getY(), 150, 150, null);
                    
                }
            }
            //System.out.println("al.Cut()="+al.Cut());
    //        if(al.Cut()!=0){
    //        
    //            if(al.Cut()==1){
    //                g.drawImage(apple1.getImage(), al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //                
    //            }
    //            if(al.Cut()==2){
    //                g.drawImage(lemon1.getImage(),al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //            }
    //            if(al.Cut()==3){
    //                g.drawImage(orange1.getImage(), al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //            }
    //            if(al.Cut()==4){
    //                g.drawImage(purple1.getImage(), al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //            }
    //            if(al.Cut()==5){
    //                g.drawImage(strawberry1.getImage(),al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //            }
    //            if(al.Cut()==6){
    //                g.drawImage(watermelon1.getImage(),al.Cut()*line+al.Cut()*100, tp.getY(), 150, 150, null);
    //            }
    //        }
            
            }
            
    
    public void ranValue(){
        int pi[] = {1,2,3,4,5,6};
    //    for(int t=3;t > 0;t--)
    //            { 
    //            value = ran.nextInt(6)+1;
    //            ti[t-1]=value;
    //            }
    //             al.getValue(ti);
    //             //al.Cut();
        
            while(i<3){
            value = ran.nextInt(6);ti[i]=0;
            if(pi[value]!=0){
                ti[i]=pi[value];pi[value]=0;
                i++;
            }
            al.getValue(ti);
        }
                 }
    
    
    }
    package Fruitninja;
    
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.Random;
    
    import javax.swing.JPanel;
    
    public class AddListener extends MouseAdapter implements Runnable{
        private int x1,y1,x2,y2; 
        private JPanel JPanel;
        private ThreadPicture tp;
        private int value;
        private int[] pi = new int[6];
        private int i=0;
        private int j;
        private int[] ti = new int[3];
        private int line = 100;
        public AddListener(JPanel JPanel){
            this.JPanel = JPanel;
            
        }
        public void mousePressed(MouseEvent e) {
             x1 = e.getX();
             y1 = e.getY();
             System.out.println("x1: "+x1+"y1: "+y1);
         }
         public void mouseReleased(MouseEvent e) {
             x2 = e.getX();
             y2 = e.getY();
    //         System.out.println("x2: "+x2+"y2:" +y2);
         }
         public void setThreadPicture(ThreadPicture tp){
             this.tp = tp;
         }
         public void run(){
                while(true){
                    tp.move();
                    //Cut();
                    JPanel.repaint();
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
         public void getValue(int[] ti){
            
             this.ti = ti;
             
         }
         public void  Cut(){
             for(int g=3;g>0;g--){
             if(ti[g-1]*line+ti[g-1]*100>=x1&&tp.getY()>=y1&&(ti[g-1]*line+ti[g-1]*100+150)<=x2&&(tp.getY()+150)<=y2) 
                 {ti[g-1]=ti[g-1]+6;
                 x1=0;x2=0;y1=0;y2=0;}
             else {ti[g-1]=ti[g-1];x1=0;x2=0;y1=0;y2=0;}
             }
             
         }
         
        
    
    }
    package Fruitninja;
    
    import java.util.Random;
    
    public class ThreadPicture {
        private int y;
        private int[] ti = new int[3];
        private AddListener al;
        private int[] pi = new int[6];
        private int i=0;
        Random ran = new Random();
        private int value;
        private int count=1;
        public ThreadPicture(int y){
            this.y = y;
        }
        public void move(){
            y-=20;
            if(y<=100){
                y=800;
    //            for(int t=3;t > 0;t--)
    //            { 
    //            value = ran.nextInt(5)+1;
    //            ti[t-1]=value;
    //            }
    //             al.getValue(ti);
    //             //al.Cut();
                int pi[] = {1,2,3,4,5,6};i=0;
                while(i<3){
                    value = ran.nextInt(6);ti[i]=0;
                    if(pi[value]!=0){
                        ti[i]=pi[value];pi[value]=0;
                        i++;
                    }
                    al.getValue(ti);
                }
            }
            }
        public int getY(){
            return y;
        }
        public void getTi(int[] ti){
            this.ti = ti;
        }
        public void getAl(AddListener al){
            this.al = al;
        
        }
        public int[] setTi(){
            return ti;
            }
    
    }

  • 相关阅读:
    iOS开发中常见错误总结(1)
    iOS开发——OC篇&纯代码退出键盘
    获取下拉框
    @RequestBody 注解
    form 表单提交
    数据库excel导出
    状态模式
    图书网上商城实现(一)
    MongoDB(一)—— 搭建环境和启动服务
    MySQL开发遇到的问题
  • 原文地址:https://www.cnblogs.com/chang1203/p/5918302.html
Copyright © 2011-2022 走看看