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

📄 game_4.java

📁 j2me写的虽然只写了一关但是个方面只是很健全.最好的就是子弹方向的处理.不愧是我们老师的作品
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import java.io.InputStream;
import java.lang.Runnable;
import java.util.Vector;
import java.util.Random;
public class Game_4 extends MIDlet
{
	protected void startApp()
	{
		Canva can = new Canva(this);
		Display.getDisplay(this).setCurrent(can);
	}
	protected void pauseApp()
	{
		
	}
	protected void destroyApp(boolean arg0)
	{
		
	}
}
final class Canva extends GameCanvas implements Runnable
{
	final byte KEY_UP = -1;
	final byte KEY_DOWN = -2;
	final byte KEY_LEFT = -3;
	final byte KEY_RIGHT = -4;
	final byte KEY_OK = -5;
	final byte KEY_0 = 48;
	final byte KEY_1 = 49;
	final byte KEY_2 = 50;
	final byte KEY_3 = 51;
	final byte KEY_4 = 52;
	final byte KEY_5 = 53;
	final byte KEY_6 = 54;
	final byte KEY_7 = 55;
	final byte KEY_8 = 56;
	final byte KEY_9 = 57;
	final byte KEY_42 = 42;
	final byte KEY_35 = 35;
	final byte KEY_L = -6;
	final byte KEY_R = -7;
	final byte KEY_10 = -10;
	final byte KEY_CLEAR = -8;
	final byte G_TL = 20;		//左上
	final byte G_TR = 24;		//右上
	final byte G_HV = 3;		//上下左右的中心
	final byte G_TH = 17;		//左右的中心,下
	byte ss_pp = 0;
	final byte LOGO = 1;	
	final byte TITLE = 2;
	final byte HELP = 3;
	final byte APROPOS = 4;
	final byte GAME = 5;
	final byte START = 6;
	final byte STOP = 7;
	final byte OVER = 8;
	int i_quanju = 0;
	int i_sleep = 0;
	boolean is_run = true;
	boolean is_midi = true;
	boolean is_start = false;
	int i_title = 0;
	int i_game = 0;
	int i_guan = 0;
	int i_map = 0;
	Game_4 Game = null;
	Player player = null;
	girl girl = null;
	bomb bomb = null;
	girl_zidan girl_zidan = null;
	plane plane = null;
	zidan zidan = null;
	p_b pb = null;
	boss boss = null;
	Random random = new Random();
	Vector v_girl_zidan = new Vector();
	Vector v_bomb = new Vector();
	Vector v_plane = new Vector();
	Vector v_zidan = new Vector();
	Vector v_pb = new Vector();
	Image logo, title_a, title_b, title_c, game_0, game_1, game_2, game_3, game_4, map_0, map_1, map_2, map_3, girl_png, girl_baozha,
	girl_zidan_png_0, girl_zidan_png_1, girl_zidan_png_2, girl_zidan_png_3, girl_zidan_png_4, bomb_0, bomb_1, bomb_2, bomb_3, girl_girl_png, 
	girl_bomb_png, plane_0, plane_1, plane_2, plane_3, plane_4, plane_5, plane_6, plane_7, plane_8, plane_baozha, plane_zidan_0, plane_zidan_1, 
	plane_zidan_2, p_png, b_png, boss_0, boss_1;
	public Canva(Game_4 game)
	{
		super(false);
		this.setFullScreenMode(true);
		Game = game;
		i_sleep = 100;
		ss_pp = LOGO;
		init_img(LOGO);
		init_img(TITLE);
		init_midi();
		new Thread(this).start();
	}
	public void paint(Graphics g)
	{
		switch(ss_pp)
		{
			case LOGO:
				logo_png(g);
				break;
			case TITLE:
				title_png(g);
				g.setClip(0, 0, 240, 310);
				g.setColor(255, 255, 255);
				g.fillRect(176, 0, 240, 310);
				g.fillRect(0, 208, 240, 310);
				break;
			case HELP:
				help_png(g);
				break;
			case APROPOS:
				apropos_png(g);
				break;
			case GAME:
				game_png(g);
				break;
			case START:
				map_png(g);
				plane_png(g);
				if(boss != null)
					boss_png(g);
				girl_zidan_png(g);
				bomb_png(g);
				zidan_png(g);
				pb_png(g);
				girl_png(g);
				g.setClip(0, 0, 240, 310);
				g.setColor(255, 255, 255);
				g.fillRect(176, 0, 240, 310);
				g.fillRect(0, 208, 240, 310);
				break;
			case STOP:
				stop_png(g);
				g.setClip(0, 0, 240, 310);
				g.setColor(255, 255, 255);
				g.fillRect(176, 0, 240, 310);
				g.fillRect(0, 208, 240, 310);
				break;
			case OVER:
				break;
		}
	}
	protected void keyPressed(int key)//按下
	{
		switch(ss_pp)
		{
			case START:
				if(key == KEY_UP || key == KEY_2)
				{
					girl.is_up = true;
				}
				if(key == KEY_DOWN || key == KEY_8)
				{
					girl.is_down = true;
				}
				if(key == KEY_LEFT || key == KEY_4)
				{
					girl.is_left = true;
				}
				if(key == KEY_RIGHT || key == KEY_6)
				{
					girl.is_right = true;
				}
				if(key == KEY_OK || key == KEY_5)
				{
					girl.is_ok = true;
				}
				if(key == KEY_R)
				{
					ss_pp = STOP;
				}
				if(key == KEY_0)
				{
					if(girl.is_move && girl.is_over == false && girl.bomb > 0)
					{
						girl.bomb--;
						girl.is_bomb = true;
					}
				}
				break;
			case STOP:
				switch(key)
				{
					case KEY_L:
						ss_pp = TITLE;
						shifang(START);
						init_img(TITLE);
						i_title = 6;
						break;
					case KEY_R:
						ss_pp = START;
						break;
				}
				break;
		}
	}
	protected void keyReleased(int key)//抬起
	{
		switch(ss_pp)
		{
			case LOGO:
				break;
			case TITLE:
				switch(key)
				{
					case KEY_LEFT:case KEY_4:
						--i_title;
						if(is_midi && i_title == 3)
						{
							i_title = 2;
						}
						if(is_midi == false && i_title == 4)
						{
							i_title = 3;
						}
						else if(i_title < 0)
						{
							if(is_start == false)
								i_title = 5;
							else if(is_start)
								i_title = 6;
						}
						break;
					case KEY_RIGHT:case KEY_6:
						++i_title;
						if(is_midi && i_title == 3)
						{
							i_title = 4;
						}
						else if(is_midi == false && i_title == 4)
						{
							i_title = 5;
						}
						else if((is_start == false && i_title > 5) || (is_start && i_title > 6))
						{
							i_title = 0;
						}
						break;
					case KEY_OK:case KEY_5:
						switch(i_title)
						{
							case 0:
								if(i_quanju > 20)
								{
									ss_pp = GAME;
									i_guan = 0;
									i_game = 0;
									shifang(TITLE);
									init_img(GAME);
								}
								break;
							case 1:
								ss_pp = HELP;
								break;
							case 2:
								ss_pp = APROPOS;
								break;
							case 3:
								try 
								{
									player.start();
								} catch (Exception e) {}
								is_midi = true;
								i_title = 4;
								break;
							case 4:
								try 
								{
									player.stop();
								} catch (Exception e) {}
								is_midi = false;
								i_title = 3;
								break;
							case 5:
								is_run = false;
								Game.notifyDestroyed();
								break;
							case 6:
								ss_pp = START;
								shifang(TITLE);
								init_img(START);
								break;
						}
						break;
				}
				break;
			case HELP:
				switch(key)
				{
					case KEY_R:
						ss_pp = TITLE;
						break;
				}
				break;
			case APROPOS:
				switch(key)
				{
					case KEY_R:
						ss_pp = TITLE;
						break;
				}
				break;
			case GAME:
				switch(key)
				{
					case KEY_L:
						girl_zidan = null;
						plane = null;
						zidan = null;
						pb = null;
						boss = null;
						v_girl_zidan.removeAllElements();
						v_bomb.removeAllElements();
						v_plane.removeAllElements();
						v_zidan.removeAllElements();
						v_pb.removeAllElements();
						ss_pp = START;
						if(is_start)
						{
							girl.init_girl();
							girl.start_time = 0;
						}
						else if(is_start == false)
						{
							girl = null;
							girl = new girl();
							girl.init_girl();
						}
						
						shifang(GAME);
						init_img(START);
						is_start = true;
						break;
					case KEY_R:
						ss_pp = TITLE;
						shifang(GAME);
						init_img(TITLE);
						if(is_start)
						{
							i_title = 6;
						}
						break;
				}
				break;
			case START:
				if(key == KEY_UP || key == KEY_2)
				{
					girl.is_up = false;
				}
				if(key == KEY_DOWN || key == KEY_8)
				{
					girl.is_down = false;
				}
				if(key == KEY_LEFT || key == KEY_4)
				{
					girl.is_left = false;
				}
				if(key == KEY_RIGHT || key == KEY_6)
				{
					girl.is_right = false;
				}
				if(key == KEY_OK || key == KEY_5)
				{
					girl.is_ok = false;
				}
				break;
			case STOP:
				break;
			case OVER:
				break;
		}
	}
	public void run() 
	{
		while(is_run)
		{
			switch(ss_pp)
			{
				case LOGO:
					if(i_quanju >= 15)
					{
						ss_pp = TITLE;
						shifang(LOGO);
						try
						{
							player.start();
						} catch (Exception e) {}
					}
					break;
				case TITLE:
					break;
				case HELP:
					break;
				case APROPOS:
					break;
				case GAME:
					break;
				case START:
					if(boss != null && boss.hp > 0)
					{
						boss_move();
						boss_zidan_new();
						girl_boss();
						girl_zidan_boss();
					}

					
					girl_pb();

					girl_zidan_plane();

					
					if(girl.is_over == false && girl.time > 20)
					{
						girl_plane();
						zidan_girl();
					}

					
					if(girl.is_over == false && girl.time <= 4)
					{
						if(girl.time < 4)
							girl.y -= girl.y_sudu * 2;
						else
							girl.is_move = true;	
					}

					if(girl.is_move && girl.is_over == false)
					{
						girl_move();
						girl_zidan_new();
					}

					girl_zidan_move();
					

					bomb_new();
					bomb_move();
					

					plane_new();
					plane_move();

					
					pb_move();

					plane_zidan_new();
					zidan_move();

					
					
					++girl.start_time;
					if(girl.start_time > 10000000)
						girl.start_time = 9999;
					if(girl.time < 50)
						++girl.time;
					break;
				case STOP:
					break;
				case OVER:
					break;
			}
			++i_quanju;
			if(i_quanju > 1000000)
				i_quanju = 100;
			repaint();
			try 
			{
				Thread.sleep(i_sleep);
			} 
			catch (Exception e) {}
		}
	}
	private void girl_boss()
	{
		switch(boss.zhonglei)
		{
			case 0:
				if(boss.y + 68 > girl.y + 6 && boss.y < girl.y + 18 && boss.x + boss.width - 12 > girl.x + 6 && boss.x + 12 < girl.x + 12)
				{
					girl.is_over = true;
				}
				break;
			case 1:
				if(boss.y + 85 > girl.y + 6 && boss.y < girl.y + 18 && boss.x + boss.width - 20 > girl.x + 6 && boss.x + 20 < girl.x + 12)
				{
					girl.is_over = true;
				}
				break;
		}
	}
	private void girl_plane()
	{
		C:for(int i = 0; i < v_plane.size(); ++i)
		{
			plane = (plane)v_plane.elementAt(i);
			if(plane.hp > 0)

⌨️ 快捷键说明

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