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

📄 mycanvas.java

📁 有一些还没做好请谅解不支持midp1.0
💻 JAVA
字号:
import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.TiledLayer;

public class MyCanvas extends Canvas implements Runnable {
	MyMIDlet mm;
	//游戏状态
	static int games = Tools.GAME_LOGO;
	int mx=-144,my=-112;
	//线程计数器
	int con=0;
	//播放音效
	PSound psound;
	int soundid=10;
	//场景切换	
	static int move ;
	GameTools gts;
	//LOGO图片
	Image logoimg;
	//菜单图片
	Image menuimg[];
	Menu menu;
	//进度条图片
	Image loadimg;
	int loadw;
	//地图
	Map1 map;
	TiledLayer t1, t2,t3;
	int m1[][];
	int m2[][];
	int m3[][];	
	Image mapimg;
	//英雄
	Image roleimg;
	Role role;
	int rx=160,ry=88;
	int index=4;
	public MyCanvas(MyMIDlet mm) {
		this.mm = mm;
		//设置全屏模式
		this.setFullScreenMode(true);
		map=new Map1();
		m1=map.map61;
		m2=map.map62;
		m3=map.map63;
		//音效
		psound=new PSound();
		psound.InitSound(11);	
		gts=new GameTools();
		//LOGO图片
		try {
			logoimg=Image.createImage("/name.hfl");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//菜单图片
		menuimg=new Image[4];
		try {
			for(int i=0;i<4;i++){
				menuimg[i]=Image.createImage("/menu/"+i+".hfl");
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		menu=new Menu(menuimg);
		//进度条图片
		try {
			loadimg=Image.createImage("/load.hfl");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//开启线程
		new Thread(this).start();
	}
	
	void loadres(){
		t1=null;
		t2=null;
		t3=null;
		mapimg=null;
		roleimg=null;
		try {			
			roleimg=Image.createImage("/role.hfl");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		role=new Role(roleimg,16,32);
		role.setFrame(index);
			try {
				mapimg=Image.createImage("/cheng.hfl");				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}					
		t1=new TiledLayer(m1[0].length, m1.length, mapimg, 16, 16);
		t2=new TiledLayer(m2[0].length, m2.length, mapimg, 16, 16);
		t3=new TiledLayer(m3[0].length, m3.length, mapimg, 16, 16);
		for (int i = 0; i < m1.length; i++) {
			for (int j = 0; j < m1[0].length; j++) {
				t1.setCell(j, i, m1[i][j]);
			}
		}
		role.setPosition(rx,ry);
		for (int i = 0; i < m2.length; i++) {
			for (int j = 0; j < m2[0].length; j++) {
				t2.setCell(j, i, m2[i][j]);
			}
		}
		
		for (int i = 0; i < m3.length; i++) {
			for (int j = 0; j < m3[0].length; j++) {
				t3.setCell(j, i, m3[i][j]);
			}
		}		
		t1.setPosition(mx,my);
		t2.setPosition(mx,my);
		t3.setPosition(mx,my);
	}
	protected void paint(Graphics g) {
		//清屏
		g.setColor(0xffffff);
		g.setClip(0, 0, Tools.ScreenWidth, Tools.ScreenHeight);
		g.fillRect(0, 0, Tools.ScreenWidth, Tools.ScreenHeight);
		switch (games) {
		case Tools.GAME_LOGO:
			g.drawImage(logoimg,0,0,0);
			if(con>20)
			{
				games=Tools.GAME_MENU;
			}
			break;
		case Tools.GAME_MENU:
			menu.paint(g);
			break;
		case Tools.GAME_LOAD:
			g.setColor(0x000000);			
			g.fillRect(0, 0, Tools.ScreenWidth, Tools.ScreenHeight);
			g.drawImage(loadimg,0,0,0);
			g.setColor(0xffff00);
			g.drawRect(50,150,76,10);
			g.setColor(0xff0000);
			g.fillRect(51,151,loadw,9);
			break;
		case Tools.GAME_RUN:
			t1.paint(g);
			t2.paint(g);
			role.paint(g);
			t3.paint(g);
			break;
		case Tools.GAME_GY:
			break;
		case Tools.GAME_EXIT:
			break;
		}
	}

	protected void keyPressed(int key) {
		switch (games) {
		case Tools.GAME_LOGO:
			break;
		case Tools.GAME_MENU:
			menu.keypr(key);
			break;
		case Tools.GAME_LOAD:
			break;
		case Tools.GAME_RUN:
			role.keypr(key);
			break;
		case Tools.GAME_GY:
			break;
		case Tools.GAME_EXIT:
			break;
		}
	}

	protected void keyReleased(int key) {
		switch (games) {
		case Tools.GAME_LOGO:
			break;
		case Tools.GAME_MENU:
			break;
		case Tools.GAME_LOAD:
			break;
		case Tools.GAME_RUN:
			role.keyre(key);
			break;
		case Tools.GAME_GY:
			break;
		case Tools.GAME_EXIT:
			break;
		}
	}

	public void run() {
		while (true) {
			psound.setv(100);
			psound.pstsrt();
			switch (games) {
			case Tools.GAME_LOGO:
				break;
			case Tools.GAME_MENU:
				break;
			case Tools.GAME_LOAD:
				loadw+=5;
				if(loadw>35){
					this.loadres();
				}
				if(loadw>=75){					
					games=Tools.GAME_RUN;
					loadw=0;
					psound.InitSound(soundid);
				}
				break;
			case Tools.GAME_RUN:
				role.run(this);
				break;
			case Tools.GAME_GY:
				break;
			case Tools.GAME_EXIT:
				mm.exit();
				break;
			}
			//设置时间片
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			con++;
			if(con>9999)
			{
				con=0;
			}
			//重绘
			repaint();
		}
	}
}

⌨️ 快捷键说明

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