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

📄 splash.java

📁 一款麻将游戏的J2me源代码
💻 JAVA
字号:
//////////////////////////////////
//开机界面/游戏主菜单
//     游戏主菜单
//功能:显示出游戏Logo,启动画面,开机画面,
//     启动的动画
//////////////////////////////////

import javax.microedition.lcdui.*;
import java.util.*;
import com.nokia.mid.ui.*;


/////////////////////////////////////////////////////////////
//播放启动的动画
 class startTime extends TimerTask
 {
 	Splash parent;
   	public startTime(Splash parent)
   	{
   	   this.parent = parent;
   	}
   		
   	public void run()
   	{ 
   	    //在启动的Logo延迟4秒钟后 正式启动游戏画面
	   	    if(parent.num ==1 || parent.num == 15) //1秒钟
	            {
	              parent.repaint();
	              parent.serviceRepaints();
		    }
		    if (parent.num == 35)	//可以在这个地方设置动画  
	   	    {
	   	      parent.isShow = true; 	
	   	      parent.parent.playSound();
	   	      parent.repaint();
	              parent.serviceRepaints();
	              this.cancel();
	            }
	            parent.num ++; 	
   	}	
 }
 
public class Splash extends FullCanvas 
{ 
  	MJ13MIDlet parent;     //游戏的主类
         
  	int num;                  //计数器
  	boolean isShow;           //是否启动开始画面
  	boolean Isopen;           //菜单是否打开 
  	boolean IsContext;        //是否显示游戏说明 
  	boolean IsChange;
  	boolean IsSetting;        //是否游戏设置栏
  	String[] MenuStr;         //游戏菜单字符串 
  	int MenuTop;              //菜单的位置
  	int MenuLeft;             //菜单的位置
  	int MenuWidth;            //菜单的宽度
  	int MenuFontHeight;       //菜单的项高度  
  	int selectid;             //选中的菜单项
  	boolean IsShowNoSave;     //显示没有存档
  	boolean started=false;
  	int ScreenWidth;  //屏幕尺寸
  	int ScreenHeight;
  	
  	int pageid;       //说明页面的编号 
  	int proid;        //进度条
  	String []SelMap;   //选择地图	
  	String []SelNandu; //选择游戏难度 
  	String []SelGameType;  //选择游戏模式
  	 
  	public boolean IsWaiting;   
  	int selectid2;     //当前选项 	 
  	String item[];   //选项菜单
  	  
  	boolean bool1;  
  	Image firstP;
  	boolean isend;
  	
  	public Splash(MJ13MIDlet parent)
	{   
	  	this.parent = parent;
	  	firstP = LoadImage("/firstP.png");
	  	//初始化界面
	  	num = 0;
	  	isShow = false;
	  	IsContext = false; //是否显示游戏的帮助
	  	IsChange  = false;
	  	IsSetting = false; //游戏的画面选关
	  	IsWaiting = false;    //是否显示等待的画面
	  	IsShowNoSave = false;
	  	//初始化菜单
	  	Isopen = false;
	  	MenuStr = new String[5];
	  	MenuStr[0] = "开始游戏";   //新的游戏
	  	MenuStr[1] = "继续游戏";   //新的游戏
	  	MenuStr[2] = "游戏帮助";   //读取进度
	  	MenuStr[3] = "关于游戏";   //游戏帮助 
	  	MenuStr[4] = "退出游戏";   //游戏帮助
	        MenuTop = 90; 
	  	MenuLeft = 2;
	  	MenuWidth = 73;
	  	MenuFontHeight = 22; 
	  	selectid = 0;
	  	isend = false;
	  	proid = 0;
	  	
	  	//得到屏幕尺寸
	  	ScreenWidth = getWidth();  
	  	ScreenHeight = getHeight();
	  	
	  	pageid = 0;  //初始化说明的页面
	    
  	        selectid2 = 0;
	       
	  	 bool1 = false;
	   //启动游戏动画
	        beginTime();
	}
        
        public void beginTime()
	{
	  Timer timer = new Timer();
          timer.schedule(new startTime(this),100,100);	
	}
         
        //绘制游戏的启动封面
        public void drawEnd(Graphics g)
        {
        	 g.setColor(0,0,0);	
	         g.fillRect(0,0,ScreenWidth,ScreenHeight);
	  	 g.setColor(255,255,255);	
	         g.drawString("感谢使用当途摩宝产品,",10,50,0); 
	         g.drawString("更多精彩游戏过来看.. ",10,70,0);
	         g.drawString(" http://mbox.wapmz.com",10,90,0);  
        
        } 
        
	public void paint(Graphics g)
	{
                if(!isShow)
	  	{	  	
                  g.setColor(255,255,255);	
	          g.fillRect(0,0,ScreenWidth,ScreenHeight);
                  if(num <  15)
		  {
	  	  g.drawImage(LoadImage("/P1.png"),0,0,g.TOP|g.LEFT);
	  	  }
	  	  if(num == 15)
		  {
	  	  g.drawImage(LoadImage("/P2.png"),20,20,g.TOP|g.LEFT);
	  	  }
	        }
	        else 
	        {
    	////System.out.println(Runtime.getRuntime().freeMemory());	          
	          //System.gc();
	           drawStart(g);
	           if(isend)
	           drawEnd(g);
	        }
        }
        
        //绘制游戏的启动封面
        public void drawStart(Graphics g)
        {
        	 // g.setColor(0,0,0);	
	         // g.fillRect(0,0,ScreenWidth,ScreenHeight);
	  	  //绘制启动画面
	  	  g.drawImage(firstP,0,0,g.TOP|g.LEFT);
	 	  	  if(Isopen) drawMainMenu(g);
	  	  
        }
        
        //绘制游戏的主菜单
        public void drawMainMenu(Graphics g)
        { 
              drawMenu(g,MenuStr, MenuTop, MenuLeft, MenuWidth , MenuFontHeight, selectid);
        }
        
        //绘制菜单
    public void drawMenu(Graphics g,String[] MenuStr, int MenuTop,int MenuLeft, int MenuWidth ,int MenuFontHeight, int selectid)
    {
      //MJ13MIDlet.showTable=false;
      g.setColor(0,0,0);//菜单的背景	
      g.fillRect(MenuLeft,MenuTop,MenuWidth,MenuStr.length*MenuFontHeight+5);		
      g.setColor(0,0,255);      //菜单的边框
      g.drawRect(MenuLeft,MenuTop,MenuWidth,MenuStr.length*MenuFontHeight+5);
      g.setColor(255,255,255);
      g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN ,Font.SIZE_SMALL));
      for(int i=0;i<MenuStr.length;i++)
      {
	g.drawString(MenuStr[i],MenuLeft +5 ,i*MenuFontHeight + MenuTop+6,0);
      }
      g.setColor(0,0,128);    //填充菜单项
      g.fillRect(MenuLeft +3,selectid*MenuFontHeight + MenuTop+4,MenuWidth-7,MenuFontHeight-2);
      g.setColor(0,0,255);    //填充菜单项
      g.drawRect(MenuLeft +3,selectid*MenuFontHeight + MenuTop+4,MenuWidth-7,MenuFontHeight-2);
      g.setColor(255,255,255);     
      g.drawString(MenuStr[selectid],MenuLeft +5,selectid*MenuFontHeight + MenuTop+6,0);		
    }
        
        
        private void help()
    {
        Form form = new Form("游戏帮助");
    	form.append("这款美少女情趣麻将需要你去挑战八位美女麻将高手。当然,在与她们进行比赛的过程中,用你的聪明才智以及高超的牌技赢得她们的芳心也是很可能发生的事情哦。闲暇时间,拿出手机搓上几圈,真是其乐无穷。\n操作说明:\n主菜单操作:\n方向键上:向上选择\n方向键下:向下选择\n左软键:确定;右软键:返回\n选取角色画面操作:\n方向键上:将选取框向上移动\n方向键左:将选取框向左移动\n方向键下:将选取框向下移动\n方向键右:将选取框向右移动\n左软键:确定\n");
        form.append("比赛开始后操作:\n方向键左/数字键4:向左选择麻将牌,在进入吃碰杠模式,遇到多种吃法时,选择吃碰杠牌\n方向键右/数字键6:向右选择麻将牌,在进入吃碰杠模式,遇到多种吃法时,选择吃碰杠牌。\n方向键上/数字键2:当可以吃碰杠的时候,进入吃碰杠模式\n方向键下/数字键8:从吃碰杠模式中离开\nOK键/数字键5:摸牌/出牌/继续游戏\n左软键:暂停\n游戏规则:本游戏为二人版,因为只有两家在打牌,所以就没有只能吃碰上一家牌的限制。游戏中可以选择8个虚拟美女,双方各有40000分,和牌方会扣掉对方的分数加在自己的分数上,根据和牌种类不同,所得分数也会不同。游戏中轮流坐庄过程中按"东南西北"的顺序变化;待游戏可以吃碰杠的时候,会有向上的小箭头提示,按方向键上或数字键2可以进入吃碰杠模式,也可以按OK键或5键继续摸牌,当玩家和牌时,会有奖杯标志的提示。");
        form.addCommand(new Command("返回", 2, 0));
        form.setCommandListener(new CommandListener() {

            public void commandAction(Command command, Displayable displayable)
            {
                Display.getDisplay(parent).setCurrent(Splash.this);
            }

        });
        Display.getDisplay(parent).setCurrent(form);
    }
    
    private void about()
    {
        Form form = new Form("游戏关于");
        form.append("美少女情趣麻将\n版本号:V1.0.0\n北京当途摩宝科技发展有限公司发行\nwww.down2mobile.com\n客服电话:010-84832907\nEmail:khfw@down2mobile.com\n内容提供:浙江广视信息科技有限公司\n开发:欢乐动动指\nwww.00muzhi.com");
    
        form.addCommand(new Command("返回", 2, 0));
        form.setCommandListener(new CommandListener() {

            public void commandAction(Command command, Displayable displayable)
            {
                Display.getDisplay(parent).setCurrent(Splash.this);
            }

        });
        Display.getDisplay(parent).setCurrent(form);
    }
    
    private void startNewGame()
    {
        MJ13MIDlet.showTable=true;
        //parent.showTableCanvas();
        parent.enterCharacterChooser();
        //System.gc();
    }

    private void continueGame()
    {
        parent.continueGame();
        //System.gc();
    }
 
        //按键事件响应
        public void keyPressed(int keyCode)
        { 
           if(isend)
            parent.endApp();
           
           if ( isShow == false)
	  { 
   	    isShow = true;	
   	    repaint();
            serviceRepaints();	  	 
	  }
	  else
	  {
           //System.out.println("key = "+  keyCode);
           
	            if (keyCode == -2)
	            {   selectid ++;  
	           	if (selectid == 5)
	           	 selectid = 0;  }
	            if (keyCode == -1)
	            {   selectid --;	            
	           	if (selectid == -1)
	           	 selectid = 4;	 }    
	            if (keyCode ==  -6)
	            {   if (Isopen == false)
	          	{  Isopen = true;//打开菜单
	          	   selectid = 0; }
	          	else
	          	{  doEvent();//选择菜单项
	        	   Isopen = false; }     
	            }
		     if (keyCode ==  -5)
	            {if(Isopen) doEvent();
	            }
	            if (keyCode ==  -7)//关闭菜单
	            { Isopen = false; }       
	      
            repaint(0,80,80,180);
	    serviceRepaints();
	    return;
	    }
        }
        
        //打开相关的菜单
        public void doEvent()
        {
          switch (selectid)
          {
	     case 0: // '\001'
                startNewGame();
                started=true;    
                break;
            case 1: // '\003'
               if(parent.isgamerun)
               {  
                 parent.backGame();
               }
                break;
            case 2: // '\003'
                help();
                break; 
            case 3: // '\004'
                about();
                break; 
            case 4: // '\004'
                 isend = true;
                 repaint();
	         serviceRepaints();
                break;      
	  }
        }
        
         //加载图片
    public Image LoadImage(String path)
    {
      Image Imagetemp;
      try
      {
        Imagetemp = Image.createImage(path); 	
        return Imagetemp;
      }
      catch(Exception e)
      {//System.out.println("No pic " + path);
       return null;
      }
    }
}
 

⌨️ 快捷键说明

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