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

📄 mycanvas.java

📁 这是j2me开发的一款新潮的益智类小游戏。开发环境是CLDC1.0 MIDP1.0
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;

public class myCanvas extends Canvas implements Runnable 
{
	
	
/***********************************************************************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@                       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 *****************************   定义所有常量,变量,数组   ***************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@    merryHomestead     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ***********************************************************************************
 */	

	private final int WAITETIME=50;//休眠时间
	private final int GAME_W=getWidth(),GAME_H=getHeight();//游戏屏幕宽高	
	
	private boolean UP,DOWN,LEFT,RIGHT,FIRE;///检测连续按键 
	private boolean talk_a;//判断是否对话
	
	private long st,et;//用于获得系统时间
	
	private int score;//游戏得分
	private int r_Arrow;// 随机箭头方向
	private int wait_time;//游戏等待时间
	private int scoreTemp;//按键按下时,记录当前分数的临时变量,用作判断按键松开时,分数是否增加
	private int Fire_x;/////火闪动的频率   幸运小屋 NPC随机的说话内容
	private int speed;//幸运转盘速度  狮子上跳速度
	private int origin;/////幸运转盘每块颜色的起始角度   马戏团地图绘制点
	
	private short talk_i;//对话时该说的内容   -1
	private short site;////////火圈移动的位置   幸运小屋选筐的位置
	private short y_lion;////////马戏团狮子跳跃的高度
	
	private byte canvasIndex=2;//切屏幕控制
	private byte UP1,DOWN1,LEFT1,RIGHT1;//控制按键响应时间
	private byte sound;//控制所有音乐,音效的开关
	private byte space;//生箭头的频率	
	private byte place_Arrow[]={0,0,0,0};//四个绿色箭头x方向偏移
	private byte Dancer_number;//跳舞MM图片编号	
	private byte Change_Image;//图片翻转,0表示不翻转
	private byte Cursor;//主菜单光标
	private byte fettle_lion;//马戏团狮子的状态
	private byte pt;///////pt控制文字闪动,马戏团狮子的动画指针	
	
	
	Random r=new Random();//获得随机数的一个对象r
	
	
	String talk[];///////////////////////保存所有对话内容的数组
	private int ArrowTemp[]={0,0,0,0};//按键按错时,红圆的显示时间
	private int ps[]={0,0,0,0,0};///////狮子动画序列
	private int array_Arrow[][]=new int[20][5];//是否存在,坐标x,y,方向,下落速度
	private final int array_lion[][]={/////////////保存狮子图片信息的数组
								
											{0,0,61,25,-30,-25},
											{61,0,59,25,-30,-25},
											{120,0,62,25,-31,-25},
											{182,0,68,25,-34,-25}
										};
		
	Image Logo1=null;//Logo图片1
	Image Logo2=null;//Logo图片2
	Image Logo3=null;//Logo图片3
	Image Logo_text=null;//Logo文字图片
	Image Text_1=null;//游戏介绍文字图片
	Image Title=null;//npc图片
	Image Npc=null;//npc图片
	Image Dancer=null;//跳舞MM图片
	Image Arrow=null;//跳舞箭头图片
	Image Text=null;//游戏文字
	Image Text1=null;//菜单文字
	Image map11=null;//跳舞场背景
	Image map=null;//游戏主地图
	Image map01=null;//主地图发光建筑
	Image Npc1=null;//主地图发光NPC
	Image map21=null;//马戏团主地图
	Image Lion=null;//马戏团动物
	Image Fire01=null;//马戏团火盆/火圈 
	Image Pet=null;//宠物店宠物
	
	Player player001;//主界面播放器
	Player player002;//按键音播放器
	Player player100;//跳舞场播放器
	Player player200;//马戏团播放器
	Player player300;//幸运小屋播放器
	Player player301;//幸运小屋提示音播放器
	
	myMID  mid;//获得myMID类的一个对象mid	
	public myCanvas(myMID m)//构造函数初始化所有图片,音乐,数组
	{
      mid=m;
      
		try {
			array_Arrow[19][0]=15;//第一个绿色箭头x方向偏移
			array_Arrow[19][1]=60;//第二个绿色箭头x方向偏移
			array_Arrow[19][2]=105;//第三个绿色箭头x方向偏移
			array_Arrow[19][3]=150;//第四个绿色箭头x方向偏移
			
			 talk=new String []//玩家与NPC对话数组
			                          {
										"你好!我是舞贝拉,是这", 
										"里的舞蹈教练,有什",
										"么可以帮到你的么?",
										"你好 ! 我是小美,进",
										"这个练舞场需要什",
										"么条件呢?",
										"进我们这个练舞需要",
										"10个金币,交了金币,",
										"你就可以随便玩了!",
										"哦 ! 好的 ! 这是10",
										"个金币,可以让",
										"我进去了吧?   ",
										"当然可以 ! 如果你想了",
										"解本游戏的说明,可以",
										"按“0”键查看。",
										"哦 !  好的 !",
										"谢谢了 !  ",
										"  ",
										"不用谢 ! 祝你玩",
										"得高兴 ! ",
										"  ",
										"  ",
										"  ",
										"  ",
										"欢迎你来到《幸运",
										"小屋》!有兴趣",
										"试试运气吗?",
										"好呀!那你说",
										"说你这个怎么",
										"玩吧?",
										"玩这个游戏很简",
										"单,有筹码就",
										"行! ",
										"啊!我现在没",
										"有筹码,就不",
										"能玩了吗?",
										"你可以用1个金币",
										"换取1000个筹码!",
										"10个筹码玩一次!",
										"具体怎么操",
										"作呢?",
										" ",
										"如果你想了解详",
										"细操作,请按",
										"“0”键!",
										"哦!好的,我",
										"知道了!开始",
										"吧!",
										"那好!希望我的",
										"八彩转盘能给",
										"你带来好运!",
										" ",
										" ",
										" ",
										"小美,我们马戏",
										"团又增添了新项",
										"目有兴趣玩吗?",
										"什么新项目?",
										" ",
										" ",
										"你可以选一个动",
										"物和其他人的",
										"动物比赛! ",
										"比赛?赢了有",
										"奖励么? ",
										" ",
										"当然有!赢了奖",
										"励金币!",
										" ",
										"比赛的具体规",
										"则呢?",
										" ",
										"具体规则你可以",
										"按“0”键查看本",
										"马戏团的海报!",
										"OK!了解了!",
										" ",
										" ",
										"那好!比赛",
										" 开始!",
										" ",
										" ",
										" ",
										" ",
										" ",
										" ",
										" ",
										"咦!店里怎么",
										"没人呢?",
										" ",
										"有什么事吗?",
										"姐姐!",
										" ",
										"你爸爸呢?我",
										"想买宠物!",
										" ",								
										"哦!不好意思!",
										"我爸爸出去",
										"了!",								
										"啊!又出去了!",
										"那我明天再",
										"来买吧!",
										" ",
										" ",
										" ",
										"恭喜你!中奖了!",
										"运气真好!中奖了!",
										"运气不错!继续!",
										"你运气太好了!",
										"加油!大奖等着你!",
										"真可惜!没能选中!",
										"希望你下次能中!",
										"努力!相信你能中!",
										"上帝会保佑你的!",
										"再接再厉吧!",
										"可惜!可惜!没中!",
										"加油吧!会成功的!",
									  };
			
			
			Logo2=Image.createImage("/logo2.png");//导入LOGO图片 Text_1.png
			Logo_text=Image.createImage("/logo_text.png");//导入LOGO文字图片
			Text_1=Image.createImage("/text_1.png");//导入游戏介绍文字图片
			Title=Image.createImage("/title.png");//导入游戏标题图片
			Npc=Image.createImage("/people.png");//导入npc图片
			Dancer=Image.createImage("/Dancer0.png");//导入MM图片
			Arrow=Image.createImage("/Arrow0.png");//导入箭头图片			
			Text=Image.createImage("/text.png");//导入游戏文字图片
			Text1=Image.createImage("/text0.png");//导入游戏文字图片
			map11=Image.createImage("/map11.png");//导入跳舞场背景图片
			map=Image.createImage("/map.png");//导入游戏主地图
			map01=Image.createImage("/map01.png");//导入主地图发光建筑
			map21=Image.createImage("/map21.png");//导入马戏团主地图							
			Npc1=Image.createImage("/npc.png");//导入npc图片
			Lion=Image.createImage("/lion.png");//导入马戏团狮子图片
			Fire01=Image.createImage("/fire01.png");//导入马戏团火盆/火圈图片
			Pet=Image.createImage("/pet.png");//导入宠物店宠物图片
			
		 } catch (IOException e) {			
		e.printStackTrace();
	}
		 initMusic();//调用音频资源,并初始化
	(new Thread(this)).start();//线程启动
//	st_game=System.currentTimeMillis();
      
	}

	

/////////////////////////导入并所有音频资源,在构造函数中调用并初始化	music.wav 001.mid
	
	void initMusic()
	{
		

		try {////////导入主界面背景音乐
			
			InputStream is=getClass().getResourceAsStream("/001.mid");
			player001=Manager.createPlayer(is,"audio/midi");///////////确认背景音乐格式
			player001.setLoopCount(-1);////////设置音乐播放次数  -1表示无限循环

		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}
		
		try {////////导入按键音乐
			
			InputStream is=getClass().getResourceAsStream("/002.wav");
			player002=Manager.createPlayer(is,"audio/x-wav");///////////确认背景音乐格式
			player002.setLoopCount(1);////////设置音乐播放次数  
			
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}
		
		try {////////导入舞蹈背景音乐
			
			InputStream is=getClass().getResourceAsStream("/100.mid");
			player100=Manager.createPlayer(is,"audio/midi");///////////确认背景音乐格式
			player100.setLoopCount(-1);////////设置音乐播放次数  -1表示无限循环
			
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}
		

		try {////////导入马戏团背景音乐
			
			InputStream is=getClass().getResourceAsStream("/200.mid");
			player200=Manager.createPlayer(is,"audio/midi");///////////确认背景音乐格式
			player200.setLoopCount(-1);////////设置音乐播放次数  -1表示无限循环
			
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}
		
		
		try {////////导入幸运小屋背景音乐
			
			InputStream is=getClass().getResourceAsStream("/300.mid");
			player300=Manager.createPlayer(is,"audio/midi");///////////确认背景音乐格式
			player300.setLoopCount(-1);////////设置音乐播放次数  -1表示无限循环
			
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}
		
		try {////////导入幸运小屋提示音乐
			
			InputStream is=getClass().getResourceAsStream("/301.mid");
			player301=Manager.createPlayer(is,"audio/midi");///////////确认背景音乐格式
			player301.setLoopCount(1);////////设置音乐播放次数  
			
		} catch (IOException e) {
			
			e.printStackTrace();
		} catch (MediaException e) {
			
			e.printStackTrace();
		}		
		
	}
	

/***********************************************************************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ********************************  所有的绘制  *************************************
 * @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 ************************************************************************************
 */	
	
		
////////////////////////////系统生成的总绘制方法	
	protected void paint(Graphics g) 
	{
//		g.setColor(0xffffff);//获得白色
//		g.fillRect(0,0,this.getWidth(),this.getHeight());//清理全屏	
		switch(canvasIndex)//每个屏幕绘制不同内容
		{
		
		case 0://///////////屏幕切换时初始数据的等待界面
			g.setColor(0x000000);
			g.fillRect(0,0,GAME_W,GAME_H);//清理全屏	
			g.setColor(0xb4f654);			
			g.setFont(Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN,Font.SIZE_LARGE));
			g.drawString("游戏资源正在载入……",30,30,0);
			g.fillRoundRect(20,50,wait_time,8,10,10);
			g.drawString((100*wait_time/(GAME_W/2+GAME_W/4))+"%",GAME_W/2-20,60,0);
//			g.drawString(" "+pt,GAME_W/2-20,90,0);
			switch(Cursor)
			{
			case 0://////////////////////初始化****舞蹈室****数据,资源
				talk_a=false;
				talk_i=-1;
				score=0;
				space=0;
				r_Arrow=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;
					}
				}
				if(pt>12)
				{
					wait_time=0;
					canvasIndex=14;	
				}
				break;
			case 1://////////////////////初始化****马戏团****数据,资源
				talk_a=false;
				talk_i=17;
				speed=0;
				origin=0;
				site=0;
				score=0;
				fettle_lion=0;
				r_Arrow=100;
				if(pt>10)
				{
					canvasIndex=12;	
					pt=0;
					wait_time=0;
				}
				break;
			case 2://////////////////////初始化****幸运小屋****数据,资源
				talk_a=false;
				origin=0;
				score=1000;
				talk_i=7;
				speed=0;
				site=0;
				Fire_x=0;
				if(pt>12)
				canvasIndex=13;
				break;
			case 3://////////////////////初始化****宠物店****数据,资源
				talk_a=false;
				talk_i=28;
				score=0;
				if(pt>12)
				{			
					canvasIndex=20;
					wait_time=0;
				}
				break;
			case 4://////////////////////还原****马戏团****从新开始的游戏界面的所有数据
				talk_a=false;
				talk_i=27;
//				wait_time=0;
				speed=0;
				origin=0;
				site=0;
				score=0;
				fettle_lion=0;
				y_lion=0;
				r_Arrow=100;

⌨️ 快捷键说明

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