//package kwyxiyou;
import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import com.nokia.mid.ui.*;
import javax.microedition.media.*;
public class GameCanvas extends FullCanvas implements Runnable{
GameMIDlet game;
Player backgroundMusicPlayer;
Random rnd=new Random();
private boolean quitGame = false;//退出标志
private int game_state; //游戏状态
//游戏状态常量 (变量game_state的取值)
private final int GAME_LOAD = 0;//游戏最先进入的状态
private final int GAME_INIT = 1;//初始化的状态
private final int GAME_MENU = 2;//游戏菜单
private final int GAME_STORY = 3;//片头故事说明
private final int GAME_START = 4;//游戏开始每关的信息
private final int GAME_RUN = 5;//游戏运行状态
private final int GAME_OVER = 6;//游戏失败
private final int GAME_WIN = 7;//游戏胜利
private final int GAME_PAUSE = 8;//游戏暂停
private final int GAME_BOSSAPPEAR =9;//大招动画
private final int GAME_ATTACK2 =10;//大招动画
private int menu_state; //菜单状态
//菜单常量(变量menu_state的取值)
private final int MAIN_MENU = 0;//主菜单界面
private final int OPTION_MENU = 5;//设置菜单
private final int HELP_MENU = 10;//帮助菜单
private final int ABOUT_MENU = 15;//关于菜单
private int button_state;//按钮状态
//按钮常量(变量button_state的取值)
private final int NEW_GAME_BUTTON = 0;//新游戏
private final int OPTION_BUTTON = 1;//设置声音
private final int HELP_BUTTON = 2;//帮助
private final int ABOUT_BUTTON= 3;//关于
private final int EXIT_BUTTON = 4;//退出
//按键键值
private final int KEY_UP_ARROW = -1;
private final int KEY_DOWN_ARROW = -2;
private final int KEY_LEFT_ARROW = -3;
private final int KEY_RIGHT_ARROW = -4;
private final int KEY_SOFTKEY1 = -6;
private final int KEY_SOFTKEY2 = -7;
private final int KEY_NUM0 = 48;
private final int KEY_NUM1 = 49;
private final int KEY_NUM2 = 50;
private final int KEY_NUM3 = 51;
private final int KEY_NUM4 = 52;
private final int KEY_NUM5 = 53;
private final int KEY_NUM6 = 54;
private final int KEY_NUM7 = 55;
private final int KEY_NUM8 = 56;
private final int KEY_NUM9 = 57;
private int Mission = 0; //关数
private Thread gameThread;//线程
private DirectGraphics dg = null;//用于图片翻转用
private boolean playState=true;//是否有声音标志
private boolean keyrepeat;//是否有键被按下
private int Key;//按下的键值
private final int TIME_FRAME = 150;
private final int WIDTH = 176;
private final int HEIGHT = 208;
int logo_c = 0; //动画控制计数
//数组
//----------------------------------------------------------------------logo图片
Image image_logo;
Image image_logo_word;
Image image_logo1;
Image image_menu;
//----------------------------------------------------------------------地图
Image map=null;
Image sky=null;
Image jiantou=null;
Image dialog=null;
Image over=null;
Image win=null;
int mapW=30;
int mapX=0;
int map_c=0;
int start_c=0;
int jiantouX=150;
int jiantouY=100;
//----------------------------------------------------------------------主角数据
Image head=null;
int headClipX=30;
int headClipY=35;
int manheadX=14;
int manheadY=7;
int npcheadX=132;
int npcheadY=7;
Image man=null;
int manIndex=0;
int manX=20;
int manY=100;
int ClipgroundX=60;
int ClipgroundY=45;
boolean up=false;
boolean down=false;
boolean left=false;
boolean right=false;
boolean fire=false;
boolean juqi=false;
boolean Hfire=false;
boolean Hjuqi=false;//--
boolean HHfire=false;//--
int manDir=0;
int manblood=50;
int manjuqi=0;
int manDie_c=0;
//-----------------------
Image tubiao=null;//--
int tubiaoClipX=16;//--
int tubiaoClipY=16;//--
int manHjuqi=0;//--
int HHfire_c=0;
Image daoguang=null;
int daoguangX=0;
int daoguangY=220;
//----------------------------------------------------------------------小兵
Image solider=null;
int solider1X=(manX-30);
int solider1Y=(manY-10);
int solider2X=(manX-30);
int solider2Y=(manY+10);
int solider1Index=0;
int solider2Index=0;
int solider1Dir=0;
int solider2Dir=0;
int soliderClipX=30;
int soliderClipY=30;
int solider_c=0;
//----------------------------------------------------------------------敌人
Image enemy=null;
int enemyX=180;
int enemyY=100;
int enemyDir=0;
int enemyIndex=0;
int enemyblood=50;
int enemyDie_c=0;
//---------------
int enemyState=0;
int enemyAttack_c=0;
//---------------
//----------------------------------------------------------------------Esolider
Image Esolider=null;
int Esolider1X=(enemyX+60);
int Esolider1Y=(enemyY-10);
int Esolider2X=(enemyX+60);
int Esolider2Y=(enemyY+10);
int Esolider3X=(enemyX+60);
int Esolider3Y=enemyY;
int Esolider1Index=0;
int Esolider2Index=0;
int Esolider3Index=0;
int Esolider1Dir=0;
int Esolider2Dir=0;
int Esolider3Dir=0;
int EsoliderClipX=30;
int EsoliderClipY=30;
int Esolider_c=0;
//----------------------------------------------------------------------BOSS
Image boss=null;
int bossAppear_c=0;
int bossDir=0;
int bossIndex=0;
int bossX=200;
int bossY=100;
int bossblood=50*(Mission+1);
int bossDie_c=0;
//---------------
int bossState=0;
int bossAttack_c=0;
//----------------------------------------------------------------------
//----------------------------------------------------------------------
public GameCanvas(GameMIDlet game ){
this.game = game;
button_state = NEW_GAME_BUTTON;
}
public final void gameStart(){
gameThread = new Thread(this);
gameThread.start();
}
public final void gameStop(){
gameThread =null;
}
protected final void paint(Graphics g){
dg = DirectUtils.getDirectGraphics(g);
switch (game_state) {
case GAME_LOAD:
if(logo_c==0){
g.setColor(0xffffff);
g.fillRect(0, 0, WIDTH, HEIGHT);
image_logo= createImage("/monternet.png");
image_logo_word= createImage("/slogan.png");
}
if(logo_c==4){
g.setColor(0xffffff);
g.fillRect(0, 0, WIDTH, HEIGHT);
image_logo1= createImage("/logo1.png");
image_logo=createImage("/splogo.png");
}
else if(logo_c >= 8){
game_state = GAME_INIT;
image_logo1 = null;
image_logo=null;
logo_c = 0;
}
else if(logo_c >= 5){
g.drawImage(image_logo1, 0,0, 20);
g.drawImage(image_logo, 0,60, 20);
}
else if(logo_c >= 4){
image_logo = null;
image_logo_word = null;
}
else if(logo_c >= 1){
g.drawImage(image_logo, 28, 50, 20);
g.drawImage(image_logo_word, 28, 120, 20);
}
logo_c++;
break;
case GAME_INIT:
if(logo_c == 3){
g.setColor(0x000000);
g.fillRect(0, 0, WIDTH, HEIGHT);
image_logo = createImage("/mylogo.png");//mylogo.png为我方标志
g.drawImage(image_logo, 33, 46, 20);
image_logo = null;
}
logo_c++;
break;
case GAME_MENU:
switch(menu_state) {
case MAIN_MENU:
g.setClip(0, 0, WIDTH, HEIGHT);
g.setColor(0xffffff);
g.fillRect(0, 0, WIDTH, HEIGHT);
没有合适的资源?快使用搜索试试~ 我知道了~
zhaoyun.rar_ZhaoYun.jar_横版_过关
共64个文件
png:32个
ini:8个
class:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 201 浏览量
2022-09-21
03:55:49
上传
评论
收藏 677KB RAR 举报
温馨提示
横版过关,滚动地图,随机敌人,两个特殊技能,有背景音乐
资源推荐
资源详情
资源评论
收起资源包目录
zhaoyun.rar (64个子文件)
www.pudn.com.txt 218B
zhaoyun
bin
_desktop.ini 9B
tmp40754.jar 122KB
MANIFEST.MF 175B
tmp40758.jar 122KB
zhaoyun.jar 214KB
zhaoyun.jad 227B
_desktop.ini 9B
res
boss2.png 7KB
solider.png 1KB
daoguang.png 796B
over.png 2KB
_desktop.ini 9B
map3.png 1KB
boss1.png 7KB
tubiao.png 664B
logo1.png 847B
monternet.png 1KB
map1.png 976B
sky1.png 2KB
sky4.png 2KB
head.png 4KB
boss4.png 7KB
slogan.png 719B
boss0.png 7KB
mylogo.png 886B
map4.png 1KB
splogo.png 2KB
sky0.png 1KB
man.png 7KB
Esolider.png 1KB
jiantou.png 218B
yinyue.mid 15KB
map0.png 1024B
menu.png 8KB
enemy.png 6KB
sky3.png 1KB
boss3.png 7KB
win.png 1KB
dialog.png 694B
map2.png 1KB
sky2.png 971B
tmplib
_desktop.ini 9B
tmpclasses
_desktop.ini 9B
GameCanvas.class 30KB
GameMIDlet.class 768B
src
GameCanvas.java~559~ 80KB
GameCanvas.java~555~ 78KB
_desktop.ini 9B
GameCanvas.java~551~ 78KB
GameCanvas.java~552~ 78KB
GameCanvas.java~556~ 79KB
GameCanvas.java~553~ 78KB
GameCanvas.java~557~ 80KB
GameCanvas.java~560~ 83KB
GameCanvas.java 84KB
GameMIDlet.java 799B
GameCanvas.java~554~ 78KB
GameCanvas.java~558~ 80KB
classes
_desktop.ini 9B
GameCanvas.class 34KB
GameMIDlet.class 768B
lib
_desktop.ini 9B
project.properties 119B
共 64 条
- 1
资源评论
小波思基
- 粉丝: 73
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功