当前位置: 代码迷 >> Eclipse >> 跟大家分享一下自己写的源码。该如何处理
  详细解决方案

跟大家分享一下自己写的源码。该如何处理

热度:20   发布时间:2016-04-23 14:13:31.0
跟大家分享一下自己写的源码。
学习了半个学期的JAVA实训总要做点什么,就写了个小游戏,在这里跟大家分享一下。希望大家多多指点一下小弟。
在这里也感谢CSDN的朋友们的帮忙。
Java code
package dandan;import java.util.*;import  javax.swing.JOptionPane;public class dandanModel extends Observable implements Runnable{         private int i=0;    private int i2=100;    private Node nodeArray;//i是用来计数炸弹共落下去了多少次,然后用它来判断是否要落下炸弹。i2是用来控制sleep()了多少//秒的,通过它可以改变关数。nodeArray是QQ头像的标记体。    private Node nodeFood;    private Node nodeFood1;    private Node nodeFood2;    private Node nodeplane1;    private Node nodeplane2;    private Node nodeplane3;   //nodeFood是用来表示炸弹nodeplane1是用来表示飞机             private boolean running=true;       //标记是在运行当中         public dandanModel()    {    reset();     }//构造函数    public void reset()//定义了炸弹,飞机和QQ头像的初始位置     {    nodeArray=new Node(300,200);    nodeFood=new Node(15,300);nodeFood1=new Node(300,15);    nodeFood2=new Node(440,15);        nodeplane1=new Node(10,300);    nodeplane2=new Node(300,10);        nodeplane3=new Node(440,10);    }         public void changeDirection(int maX,int maY)    {    nodeArray=new Node(maX,maY);    }//创建新的QQ头像位置    public Node getCreat()//通过这个函数来让外部调用炸弹    {    return nodeFood;    }    public Node getCreat1()    {    return nodeFood1;}    public Node getCreat2()    {    return nodeFood2;}    public Node getplane1()    {    return nodeplane1;    }    public Node getplane2()    {    return nodeplane2; }    public Node getplane3()    {    return nodeplane3; }    public boolean moveOn()//这个函数是用来判断是否QQ被炸,进入下一关    {    moveFood();//通过判断坐标范围来判断QQ头像是否被子炸        boolean b1=((nodeArray.x<=nodeFood.x&&nodeFood.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood.x+10&&nodeFood.x+10<=nodeArray.x+20));        boolean b2=((nodeArray.y<=nodeFood.y&&nodeFood.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood.y+10&&nodeFood.y+10<=nodeArray.y+20));        boolean b3=((nodeArray.x<=nodeFood1.x&&nodeFood1.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood1.x+10&&nodeFood1.x+10<=nodeArray.x+20));        boolean b4=((nodeArray.y<=nodeFood1.y&&nodeFood1.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood1.y+10&&nodeFood1.y+10<=nodeArray.y+20));        boolean b5=((nodeArray.x<=nodeFood2.x&&nodeFood2.x<=nodeArray.x+20)||(nodeArray.x<=nodeFood2.x+10&&nodeFood2.x+10<=nodeArray.x+20));        boolean b6=((nodeArray.y<=nodeFood2.y&&nodeFood2.y<=nodeArray.y+20)||(nodeArray.y<=nodeFood2.y+10&&nodeFood2.y+10<=nodeArray.y+20));        if(b1==true&&b2==true)        {    new zhadanMusic();            JOptionPane.showMessageDialog(null,"continue the game?","Game over",JOptionPane.INFORMATION_MESSAGE);                return false;}        if(b3==true&&b4==true)        {    new zhadanMusic();            JOptionPane.showMessageDialog(null,"continue the game?","Game over",JOptionPane.INFORMATION_MESSAGE);                return false;}         if(b5==true&&b6==true)        {   new zhadanMusic();           JOptionPane.showMessageDialog(null,"continue thegame?","Gameover",JOptionPane.INFORMATION_MESSAGE);    return false; }         return true;    }//这个函数是用来改变飞机,炸弹的坐标位置    private void moveFood( )    {        if(i2==0)        {JOptionPane.showMessageDialog(null,"已经通关","恭喜",JOptionPane.INFORMATION_MESSAGE);            i2=100;    }        if(i%150==0&&i>1)        {JOptionPane.showMessageDialog(null,"进入下一关?","恭喜",JOptionPane.INFORMATION_MESSAGE);            i2-=20;    }                try    {Thread.sleep(i2);}catch(Exception e)    {}            if(i%30==0)   nodeFood1.x+=40;                 if(nodeFood1.x>=440)      nodeFood1.x=15;             nodeplane2.x=nodeFood1.x;            nodeFood1.y+=20;        if(nodeFood1.y>=430)        nodeFood1.y=15;                 if(nodeFood2.x<=10)        nodeFood2.x=440;                   nodeFood2.x-=20; nodeplane3.x=nodeFood2.x;    nodeFood2.y+=20;        if(nodeFood2.y>=440)      nodeFood2.y=15;                 if(i%30==0)        nodeFood2.y+=40;                 if(i%20==0)        { nodeFood1.y+=40;    nodeplane1.y+=20;  nodeFood.y+=20;}        if(nodeFood.y>=430)        nodeFood.y=10;                 nodeFood.x+=10; nodeplane1.y=nodeFood.y;  if(nodeFood.x>=430) nodeFood.x=15; ++i;            }//函数来实现与view的通信,以便即时更新数据         public void run()    {  while(running)        { try{  Thread.sleep(100);}catch(Exception e){    break;}                       if(moveOn()){ setChanged();  notifyObservers(); }                     }    }        public Node getNodeArray()    { return this.nodeArray;     }    }//返回Node类型物体的坐标位置class Node{    int x;int y;    Node(int x,int y)    {    this.x=x;    this.y=y;    }}
  相关解决方案