/*
* GameCanvas.java
*
* Created on 2006年2月20日, 下午10:07
*/
package GamePP;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
*
* @author Sirius
* @version
*/
public class GameCanvas extends Canvas implements Runnable {
public int HSPEED; //纵向速度
public int WSPEED; //横向速度
private int FSPEED=10; //重力加速度
private int index ; //游戏开始状态的选择编号
private int style[];
private int LMBrick_Top_x ,LMBrick_Top_y ; //移动方块坐标
private int RMBrick_Top_x ,RMBrick_Top_y ;
private int PBrick_Top_x[] ,PBrick_Top_y[] ;
private GamePP LMove_Brick;
private GamePP RMove_Brick;
private GamePP MainBoard ;
private GamePP Push_Brick ;
private GamePP Girl ;
private GamePP Boy ;
private GamePP WinnerFrame;
private GamePP heart;
private GamePP WFrame ;
private Image copy;//缓冲区对象
private int MLBrick_Hflag ; //垂直移动方向
private int MLBrick_Wflag ; //水平移动方向
private int MRBrick_Hflag ;
private int MRBrick_Wflag ;
private int FallFlag ; // 下落标志 ,下落则屏蔽碰撞
private int Push_Flag[] ; //推动砖块标志,0:未推动,-1向左,1向右
private int LIsPressed ;
private int RIsPressed ;
private int UP_MAX =0 ;
private int DOWN_MAX=66 ;
private int LEFT_MAX =0 ;
private int RIGHT_MAX=98 ;
private int LM_MAXRIGHT[] ; //左边方块向右移动的最大距离
private int RM_MAXLEFT[] ; //右边方块向左移动的最大距离
private int PBrick_Place_Top_x[];//凹槽坐标
private int PBrick_Place_Top_y[];
private int PBrick_Place_Bottom_x=74;
private int Boy_Push ; //男孩第几个方块被推动了
private int Girl_Push; //女孩第几个方块被推动
private int girl_x ;
private int girl_y ;
private int boy_x ;
private int boy_y ;
private int now_winner ; //此局胜者
private int boy_win_num ;
private int girl_win_num;
private int total_winner ;
private int boy_heart_x[] ;
private int boy_heart_y[] ;
private int girl_heart_x[];
private int girl_heart_y[];
private int start ; //游戏的一次性开始画面
private boolean pause;//是否暂停游戏
public GameCanvas() {
super();
copy= Image.createImage(this.getWidth(),this.getHeight());
LMove_Brick=new GamePP("/MBrick1.png");
RMove_Brick=new GamePP("/MBrick2.png");
MainBoard =new GamePP("/mainFrame.png");
Girl= new GamePP("/girl.png") ;
Boy = new GamePP("/boy.png") ;
Push_Brick =new GamePP("/Push_Brickl.png") ;
WinnerFrame = new GamePP("/angle.png");
heart= new GamePP("/heart.png") ;
WFrame=new GamePP("/2191.png") ;
style=new int[3] ;
Push_Flag =new int[3] ;
PBrick_Top_x=new int[3] ;
PBrick_Top_y=new int[3] ;
LM_MAXRIGHT=new int[3] ;
RM_MAXLEFT=new int[3] ;
PBrick_Place_Top_x = new int[3];
PBrick_Place_Top_y = new int[3];
boy_heart_x = new int[2] ;
boy_heart_y = new int[2] ;
girl_heart_x=new int[2] ;
girl_heart_y=new int[2] ;
PBrick_Place_Top_x[0]=50 ;
PBrick_Place_Top_y[0]=9 ;
PBrick_Place_Top_x[1]=50 ;
PBrick_Place_Top_y[1]=28 ;
PBrick_Place_Top_x[2]=50 ;
PBrick_Place_Top_y[2]=47 ;
//奖励心的位置
boy_heart_x[0]=51;
boy_heart_x[1]=51;
boy_heart_y[0]=68;
boy_heart_y[1]=80;
girl_heart_x[0]=62;
girl_heart_x[1]=62;
girl_heart_y[0]=68;
girl_heart_y[1]=80;
girl_x =76 ;
girl_y =68 ;
boy_x =33 ;
boy_y =66 ;
start=0 ;
index=1 ;
T_iniGame() ;
}
//单局初始化游戏变量参数
protected void S_iniGame(){
// WSPEED=4 ; //2,4,8
// HSPEED=4 ; //1 ,3 ,6
Boy_Push=8 ; //初始时没有被推动的方块定位8
Girl_Push=8;
MLBrick_Hflag=0 ; //垂直运动方向 ,0向右,1向左
MLBrick_Wflag=0 ; //水平运动方向 ,0无 ,1向右 ,-1向左
MRBrick_Hflag=0 ;
MRBrick_Wflag=0 ;
FallFlag= 0 ; //初始时置0
for(int i=0 ;i<3;i++){
Push_Flag[i]=0 ;
style[i]=0 ;
}
LMBrick_Top_x =0 ;
LMBrick_Top_y =0 ;
RMBrick_Top_x =98;
RMBrick_Top_y =0 ;
now_winner=0 ;//0为新的一局,1为boy胜,8为girl胜
total_winner=0 ;
for(int i=0 ;i<3; i++){
PBrick_Top_x[i]=PBrick_Place_Top_x[i] ;
PBrick_Top_y[i]=PBrick_Place_Top_y[i] ;
}
LIsPressed =0 ;
RIsPressed =0 ;
for(int i=0 ;i<3 ;i++){
LM_MAXRIGHT[i]=PBrick_Place_Top_x[i]-26; //26为活动方块长度
RM_MAXLEFT[i]=PBrick_Place_Bottom_x;
}
pause = false;
}
//游戏重载
protected void T_iniGame(){
S_iniGame();
boy_win_num=0 ;
girl_win_num=0;
}
protected void paint(Graphics g) {
Graphics offscreen = copy.getGraphics();// 获得一个新的Graphics对象
//清屏
offscreen.setColor(255,255,255);
offscreen.fillRect(0,0,this.getWidth(),this.getHeight());
if((start==1)&&(index==1)){
//游戏画面
if((total_winner==0)&&(now_winner==0)){
MainBoard.OffdrawPic( 0,0,offscreen) ;
LMove_Brick.OffdrawPic( LMBrick_Top_x,LMBrick_Top_y,offscreen) ;
RMove_Brick.OffdrawPic( RMBrick_Top_x,RMBrick_Top_y,offscreen) ;
for(int i=0;i<3;i++){
Push_Brick.OffdrawPic(PBrick_Top_x[i],PBrick_Top_y[i],offscreen );
}
Girl.OffdrawPic(girl_x,girl_y,offscreen);
Boy.OffdrawPic( boy_x,boy_y,offscreen);
for(int i=0;(i<boy_win_num)&&(boy_win_num<3);i++){
heart.OffdrawPic( boy_heart_x[i],boy_heart_y[i],offscreen) ;
}
for(int i=0;(i<girl_win_num)&&(girl_win_num<3);i++){
heart.OffdrawPic( girl_heart_x[i],girl_heart_y[i],offscreen);
}
g.drawImage( copy,0,0,Graphics.LEFT |Graphics.TOP );
}
//单局胜利画面
else if((total_winner==0)&&(now_winner!=0)){
String ss1 ;
String ss2 ;
String ss4 ;
//男孩单局胜利画面
if(now_winner==1){
WFrame.OffdrawPic(0,0,offscreen);
if(boy_win_num==1){
ss1="男孩胜利!" ;
ss2="厉害!!!!" ;
}
else{
ss1="男孩再次胜利!" ;
if(girl_win_num==2){
ss2="战成平手!!" ;
}
else{
ss2="女孩要加油了!!";
}
}
ss4="按5进行下一局" ;
g.setColor(0x00ffeedd);
g.drawImage(copy,0,0,Graphics.LEFT |Graphics.TOP );
g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_LARGE));
g.drawString(ss1,1,3,Graphics.TOP |Graphics.LEFT );
g.drawString(ss2,5,40,Graphics.TOP |Graphics.LEFT );
g.setColor(0x00fffe57) ;
g.drawString(ss4,0,70,Graphics.TOP |Graphics.LEFT);
}
//女孩单局胜利画面
else {
WFrame.OffdrawPic(0,0,offscreen);
if(girl_win_num==1){
ss1="女孩胜利!" ;
ss2="厉害!!!!" ;
}
else{
ss1="女孩又胜利了!" ;
if(boy_win_num==2){
ss2="追成平手!!" ;
}
else{
ss2="男孩别丢人哦!!";
}
}
ss4="按5进行下一局" ;
g.setColor(0x00ffffff);
g.drawImage(copy,0,0,Graphics.LEFT |Graphics.TOP );
g.setFont(Font.getFont(Font.FACE_SYSTEM ,Font.STYLE_BOLD,Font.SIZE_LARGE));
g.drawString(ss1,1,3,Graphics.TOP |Graphics.LEFT );
g.drawString(ss2,5,40
没有合适的资源?快使用搜索试试~ 我知道了~
经典游戏下载:疯狂对对碰J2ME源码版

共68个文件
png:30个
class:12个
java:12个

需积分: 10 32 浏览量
2011-11-09
18:30:53
上传
评论
收藏 301KB RAR 举报
温馨提示
一款比较经典的手机小游戏,疯狂对对碰,很多人喜欢玩,这是用J2ME实现的,还附有开发源代码,欢迎一起研究,共同进步。
资源推荐
资源详情
资源评论













收起资源包目录























































































共 68 条
- 1
资源评论


勾月禅心
- 粉丝: 675
- 资源: 6482
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
