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

📄 mycanvas.java

📁 用ELCPISE编写的一个未成形的游戏源码
💻 JAVA
字号:
import java.io.IOException;
import java.util.Random;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


public class MyCanvas extends Canvas implements Runnable{
	Image logo_firm;
	Image logo_maker;
	Image bg_caidan;
	Font font;
	String[] str={"初入江湖",
			"回忆前尘",
			"关于制作",
			"退出游戏"};
	Random r=new Random();
	public MyCanvas() {
		logo_firm=creatImage("logo_cn.png");
		logo_maker=creatImage("game_logo.png");		
		bg_caidan=creatImage("beijing.png");
		font=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_LARGE);
		
		new Thread(this).start();
	}
	public static int gameStatus=0;
	public static final int LOGO_FIRM=0;
	public static final int LOGO_MAKER=1;
	public static final int START_NEWGAME=2;
	public static final int SCREEN_W=240;
	public static final int SCREEN_H=320;
	public static int gameCount=0;
	public static int index=0;
	protected void paint(Graphics g) {
		switch(gameStatus){			
			case LOGO_FIRM:
				g.setColor(-1);
				g.fillRect(0, 0, SCREEN_W, SCREEN_H);
				g.drawImage(logo_firm,
							SCREEN_W>>1,
							SCREEN_H>>1,
							Graphics.HCENTER|Graphics.VCENTER);
				System.out.println("123464");
				if(gameCount==20){
					gameStatus=LOGO_MAKER;
					gameCount=0;
					logo_firm=null;
				}
				if(logo_maker==null){
					logo_maker=creatImage("beijing.png");
				}
			break;
			case LOGO_MAKER:
				System.out.println("12ffdf4");
				g.setColor(-1);
				g.fillRect(0, 0, SCREEN_W, SCREEN_H);
				g.drawImage(logo_maker,
						SCREEN_W>>1,
						SCREEN_H>>1,
						Graphics.HCENTER|Graphics.VCENTER);
				if(gameCount==30){
					gameStatus=START_NEWGAME;
					gameCount=0;
					
				}
				if(bg_caidan==null){
					bg_caidan=creatImage("game_logo.png");
				}
				
			break;		
			case START_NEWGAME:
				g.setColor(-1);
				g.fillRect(0, 0, SCREEN_W, SCREEN_H);
				g.drawImage(bg_caidan,0,0,0);
				g.drawImage(logo_maker, 70, 20, 0);
				g.setFont(font);
				for(int i=0;i<str.length;i++){
					g.drawString(str[i], 50,80+20*i,0);
				}
				g.setColor(r.nextInt(0X1000000));
				g.fillArc(40,85+index*20,10,10,0,360);
				g.fillArc(109,85+index*20,10,10,0,360);
				g.drawRect(49,82+index*20,60,15);
			break;
			
		}		
		gameCount++;
		if(hasPressed(MC_UP)){
			
		}
	}
	
	public static Image creatImage(String img_name){
		try {
			return Image.createImage("/"+img_name);
		} catch (IOException e) {
			System.out.println("载入图片"+img_name+"出现异常");
			e.printStackTrace();
			return null;
		}
	}

	public static final int MAX_FPS=15;
	public void run() {
		long start=0;
		
		while(true){
			start=System.currentTimeMillis();
			repaint();
			long time=System.currentTimeMillis()-start;
			try {
				Thread.sleep(1000/MAX_FPS);
			} catch (InterruptedException e) {			
				e.printStackTrace();
			}
		}
	}
//**************************************************
	public static final int MC_UP=1;
	public static final int MC_DOWN=1<<1;
	public static final int MC_LEFT=1<<2;
	public static final int MC_RIGHT=1<<3;
	static int key=0;
	static int getKey(int keyCode){
		switch(keyCode){
		case KEY_NUM2:
		case -1:
			return MC_UP;
		case KEY_NUM8:
		case -2:
			return MC_DOWN;
		case KEY_NUM4:
		case -3:
			return MC_LEFT;
		case KEY_NUM6:
		case -4:
			return MC_RIGHT;
		}
		return keyCode;
			
	}
	public boolean hasPressed(int keyCode){
		return (key&keyCode)!=0;
	}
	public void keyPressed(int keyCode){
		key|=getKey(keyCode);
		if(keyCode==-1){
			index=(index-1+4)%4;
		}else if(keyCode==-2){
			index=(index+1)%4;
		}
	}
	public void keyRelease(int keyCode){
		key&=~getKey(keyCode);
	}
	

}

⌨️ 快捷键说明

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