📄 game_4.java
字号:
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 + -