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

📄 mycanvas.java

📁 这是j2me开发的一款新潮的益智类小游戏。开发环境是CLDC1.0 MIDP1.0
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
	
	
	
	
	/*////////          添加的总绘制方法,其中有9个参数	     ////////////////

	依次是 (((图片名称, 画笔, 绘制的起始坐标x, y, 图片宽w, 高h, 小图在大图的坐标dx,dy,是否翻转Change_Image))) 	
	*/
		public void paintImage(Image img,Graphics g,int x,int y,int w ,int h,int dx ,int dy,int Change_Image)
		{
			switch(Change_Image)
			{
			case 0://不反转
				g.setClip(x,y,w,h);
				g.drawImage(img,x-dx,y-dy,0);
				
				break;
			case 4://水平反转  左右镜像
				for(int i=0;i<w;i++)
				{
					g.setClip(x+i,y,1,h);
					g.drawImage(img,x-dx-w+1+2*i,y-dy,0);
				}
				break;
			case 1://垂直反转  上下镜像
		       for(int i = 0;i<h;i++)
		        {
		        	g.setClip(x,y + i,w,1);
		        	g.drawImage(img,x-dx,y-h+2*i-dy,0);
		        }
		       break;
			case 2://90度旋转
				  for (int i=0;i<h;i++) 
				  { 
		                for (int j=0;j<w;j++) 
		                { 
		                    g.setClip(i+x, j+y, 1, 1); 
		                    g.drawImage(img, i-j-dx+x, i+j-h-dy+y,0); 
		                } 

		            } 

			   break;
			   
			case 3://270度旋转
				  for (int i=0;i<h;i++) 
				  { 
		                for (int j=0;j<w;j++) 
		                { 
		                    g.setClip(i+x, j+y, 1, 1); 
		                    g.drawImage(img, i-j-dx+x, j-i-dy+y,0); 
		                } 

		            } 

			   break;  
		       
			}		
			g.setClip(0,0,GAME_W,GAME_H);		
		}
		
		
	/*////////          添加的boolean型碰撞方法,其中有8个参数	     ////////////////		 
	依次是 (((物体1的起始坐标x1, site, 物体1的宽高w1, h1,  物体2的起始坐标x2, y2, 物体2的宽高w2, h2))) 	
	*/			
		boolean butt(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2)
		{
			boolean b=false;
			if(x1+w1>x2&&x1<x2+w2&&y1+h1>y2&&y1<y2+h2)
			{
				b=true;
			}
			return b;
		}	

		
		


/***********************************************************************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@                @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 *****************************   所有的按键控制   ***********************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@                @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ************************************************************************************
 */	
		
		
		
		

		public void keyTime()//按键的响应时间
		{
			if(UP)
			{
				UP1++;
				if(UP1>=10)
				{
					UP=false;
					UP1=0;
					if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
					{
						if(score>0)
						score-=5;
						ArrowTemp[0]=5;
					}
				}
			}
			if(DOWN)
			{
				DOWN1++;
				if(DOWN1>=10)
				{
					DOWN=false;
					DOWN1=0;
					if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
					{
						if(score>0)
						score-=5;
						ArrowTemp[3]=5;
					}
				}
			}
			if(LEFT)
			{
				LEFT1++;
				if(LEFT1>=10)
				{
					LEFT=false;
					LEFT1=0;
					if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
					{
						if(score>0)
						score-=5;
						ArrowTemp[1]=5;
					}
				}
			}
			if(RIGHT)
			{
				RIGHT1++;
				if(RIGHT1>=10)
				{
					RIGHT=false;
					RIGHT1=0;
					if(score-scoreTemp<=0&&wait_time/15>5&&canvasIndex==15)
					{
						if(score>0)
						score-=5;
						ArrowTemp[2]=5;
					}
				}
			}
		}
				
				
		protected void keyPressed(int k)//检测按键按下
		{
			scoreTemp=score;
			switch(canvasIndex)
			{
			
			case 6://///////~~~~~~~~~~菜单界面~~~~~~~~~~~按键
				if(sound==0||sound==1)
				{
					try {/////////音乐开始播放
						player002.start();
					} catch (MediaException e) {
						// TODO 自动生成 catch 块
						e.printStackTrace();
					}
					
				}
				switch(k)
				{
				case -1:
					switch(Cursor)
					{
					case 0:					
					Cursor=1;
					break;
					
					case 2:						
					Cursor=3;
					break;
					
					case 4:						
					Cursor=1;
					break;	
					
					case 5:					
					Cursor=0;
					break;
					}
				break;
				
				case -2:
					switch(Cursor)
					{
					case 0:					
					Cursor=5;
					break;
					
					case 1:						
					Cursor=0;
					break;
					
					case 3:						
					Cursor=2;
					break;	
					
					case 4:						
					Cursor=5;
					break;	
					}

				break;
				
				case -3:
					switch(Cursor)
					{
					case 0:					
					Cursor=4;
					break;
					
					case 1:						
					Cursor=4;
					break;
					
					case 2:						
					Cursor=5;
					break;

					case 3:						
					Cursor=0;
					break;	
					
					case 5:						
					Cursor=4;
					break;
					}
				break;
				
				case -4:
					switch(Cursor)
					{
					case 0:					
					Cursor=2;
					break;
					
					case 1:						
					Cursor=3;
					break;
					
					case 4:						
					Cursor=0;
					break;
					
					case 5:						
					Cursor=2;
					break;
					
					}
				break;
				case -5:
					try {/////////音乐停止播放
						player001.stop();
					} catch (MediaException e) {
						// TODO 自动生成 catch 块
						e.printStackTrace();
					}
					switch(Cursor)
					{
					
					case 0:	///////////////////////////****练舞场****
						wait_time=0;
						pt=0;
						canvasIndex=0;
						break;					
					case 1:	///////////////////////////******马戏团******
						wait_time=0;
						pt=0;
						canvasIndex=0;
						break;					
					case 2:	//////////////////////////******幸运小屋******
						wait_time=0;
						pt=0;
						canvasIndex=0;						
						break;					
					case 3:	//////////////////////////******宠物店*****
						wait_time=0;
						pt=0;
						canvasIndex=0;
						break;					
					case 4:	/////////////////////////~~~~~~~游戏设置~~~~~~~			
						site=0;
						wait_time=0;
						canvasIndex=18;							
						break;					
					case 5://///////////////////////~~~~~~~游戏介绍~~~~~~~
						wait_time=0;
						canvasIndex=19;
						break;
						
					}
										
					break;
				case -7:case -6:case 48:
				mid.exit();
					try {/////////音乐停止播放
						player001.stop();
					} catch (MediaException e) {
						// TODO 自动生成 catch 块
						e.printStackTrace();
					}
					break;
				}
				break;
			
				
			case 7://**********(((((((((测试界面))))))))))**********
				switch(k)
				{
				case 49:
					canvasIndex=13;
					talk_a=false;
					talk_i=7;
					break;
				
				case 50:
					talk_a=false;
					talk_i=-1;
					score=0;
					space=0;
					wait_time=0;
					for(int i=0;i<array_Arrow.length-1;i++)
					{
						for(int j=0;j<array_Arrow[0].length;j++)
						{
							array_Arrow[i][j]=0;
						}
					}
					canvasIndex=14;
	
					break;
				}
			break;
			case 12:////////////////《《★★★★马戏团★★★★》》~~~~~~~界面~~~~~~~按键
				switch(k)
				{
				case -1:
					if(talk_i>26&&wait_time>60&&LEFT==false)
					{
						if(fettle_lion!=1&&y_lion>-1)
						{
							UP=true;					
							speed=-7;
							fettle_lion=1;	
						}
					}

//		//			pt=0;		
					break;
				case -3:
					if(talk_i>26&&wait_time>60)
					{
					LEFT=true;	
					fettle_lion=3;
					if(origin<0)
					origin+=2;

					}
					break;
				case -4:
					if(talk_i>26&&wait_time>60)
					{
					RIGHT=true;
					fettle_lion=2;
					if(y_lion<0)
					origin-=6;
					else
						origin-=4;
					
					}
					break;
				case -5:
					talk_a=true;
					talk_i++;
					if(talk_i>26)
					{
						talk_a=false;
						talk_i=28;
						if(wait_time>=61)
						canvasIndex=29;//切换到暂停界面	
					}
					
					break;
				case -7:
					try {/////////音乐停止播放
						player200.stop();
					} catch (MediaException e) {
						// TODO 自动生成 catch 块
						e.printStackTrace();
					}
					origin=0;
					Cursor=1;
					pt=0;
					site=0;
					speed=0;
					wait_time=0;
					talk_a=false;
					talk_i=0;
					score=0;
					canvasIndex=6;	
					break;
				
				case 48:///////////////////帮助界面
					if(talk_i<26)
					wait_time=0;	
					canvasIndex=22;
					break;
				case (Canvas.KEY_STAR):
					try {/////////音乐停止播放
						player200.stop();
					} catch (MediaException e) {
						// TODO 自动生成 catch 块
						e.printStackTrace();
					}
					origin=0;
					Cursor=1;
					pt=0;
					speed=0;
					wait_time=0;
					talk_a=false;
					talk_i=0;
					score=0;
					canvasIndex=6;	
					break;
						
				}

			break;
			
			
			case 13://《《★★★★幸运转盘★★★★》》~~~~~~~界面~~~~~~~按键				
				if(sound==0||sound==1)
				{
					try {/////////音乐开始播

⌨️ 快捷键说明

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