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

📄 main.c

📁 这是我买的:白领就业j2me:的代码
💻 C
📖 第 1 页 / 共 2 页
字号:
		drawrect(ball[b*9+2],ball[b*9+3],ball[b*9+2]+32,ball[b*9+3]+32,blank,1);  //setcolor=12,setactivecolor=15						if(ball[a*9+4]==1)		drawrect(ball[a*9+2],ball[a*9+3],ball[a*9+2]+16,ball[a*9+3]+16,224,1);  //setcolor=12,setactivecolor=15						if(ball[a*9+4]==2)		drawrect(ball[a*9+2],ball[a*9+3],ball[a*9+2]+32,ball[a*9+3]+16,224,1);  //setcolor=12,setactivecolor=15						if(ball[a*9+4]==3)		drawrect(ball[a*9+2],ball[a*9+3],ball[a*9+2]+16,ball[a*9+3]+32,224,1);  //setcolor=12,setactivecolor=15						if(ball[a*9+4]==4)		drawrect(ball[a*9+2],ball[a*9+3],ball[a*9+2]+32,ball[a*9+3]+32,224,1);  //setcolor=12,setactivecolor=15		/*调试输出色普的代码。	int i=160;	while(i<=240)	{	  drawrect(90,i-80-80,100,i-80-80+1,i,1); 	  i++;	}*/		vFlipScreen(1); }// **************************************************// 判断所有精灵的可移动方向.//		获得可以移动的两个单元的ID和方向.// **************************************************void direct(void){	int i=0,j=0,k=0;	for(i=0;i<6;i++)	{		activeNum[i*3]=100;		activeNum[i*3+1]=0;		activeNum[i*3+2]=0;	}		i=0;	while(i<10)	{		if(ball[i*9+5]+ball[i*9+6]+ball[i*9+7]+ball[i*9+8]!=0)		{			activeNum[k*3]=i;			j=5;			while(j<9)			{				if(ball[i*9+j]==1)				{					if(activeNum[k*3+1]==0)						activeNum[k*3+1]=j-4;					else						activeNum[k*3+2]=j-4;				}				j++;			}			k++;					}		i++;	}	k=0;	while(k<6)	{		if(activeNum[k*3]==id)		{			id1=activeNum[k*3+1];			id2=activeNum[k*3+2];		}		k++;	}}// *************************************************************// 移动后重新调整所有精灵的坐标.// **************************************************************void change(void){	int i=0,up,right,down,left;	while(i<10)	{		up=100;right=100;down=100;left=100;		if(ball[i*9+3]/16-1>=0)			up=(ball[i*9+3]/16-1)*4+ball[i*9+2]/16;		if(ball[i*9+2]/16+1<=3)			right=(ball[i*9+3]/16)*4+ball[i*9+2]/16+1;		if(ball[i*9+3]/16+1<=4)			down=(ball[i*9+3]/16+1)*4+ball[i*9+2]/16;		if(ball[i*9+2]/16-1>=0)			left=(ball[i*9+3]/16)*4+ball[i*9+2]/16-1;		if(ball[i*9+4]==1)		{			if(up!=100 && map[up]==0)				ball[i*9+5]=1;			else				ball[i*9+5]=0;			if(right!=100 && map[right]==0)				ball[i*9+6]=1;			else				ball[i*9+6]=0;			if(down!=100 && map[down]==0)				ball[i*9+7]=1;			else				ball[i*9+7]=0;			if(left!=100 && map[left]==0)				ball[i*9+8]=1;			else				ball[i*9+8]=0;		}		if(ball[i*9+4]==2)		{			if(up!=100 && map[up]==0 && map[up+1]==0)				ball[i*9+5]=1;			else				ball[i*9+5]=0;			if(right!=100 && map[right+1]==0 && (right%4+1)<4)				ball[i*9+6]=1;			else				ball[i*9+6]=0;			if(down!=100 && map[down]==0 && map[down+1]==0)				ball[i*9+7]=1;			else				ball[i*9+7]=0;			if(left!=100 && map[left]==0 )				ball[i*9+8]=1;			else				ball[i*9+8]=0;		}		if(ball[i*9+4]==3)		{			if(up!=100 && map[up]==0)				ball[i*9+5]=1;			else				ball[i*9+5]=0;			if(right!=100 && map[right]==0 && map[right+4]==0)				ball[i*9+6]=1;			else				ball[i*9+6]=0;			if(down!=100 && map[down+4]==0 && down+4<20)				ball[i*9+7]=1;			else				ball[i*9+7]=0;			if(left!=100 && map[left]==0 && map[left+4]==0)				ball[i*9+8]=1;			else				ball[i*9+8]=0;		}		if(ball[i*9+4]==4)		{			if(up!=100 && map[up]==0 && map[up+1]==0)				ball[i*9+5]=1;			else				ball[i*9+5]=0;			if(right!=100 && map[right+1]==0 && map[right+1+4]==0 && right%4+1<4)				ball[i*9+6]=1;			else				ball[i*9+6]=0;			if(down!=100 && map[down+4]==0 && map[down+4+1]==0 && down+4<20)				ball[i*9+7]=1;			else				ball[i*9+7]=0;			if(left!=100 && map[left]==0 && map[left+4]==0)				ball[i*9+8]=1;			else				ball[i*9+8]=0;		}		i++;	}	}// *************************************************************// 移动精灵.//		direct			:移动的方向.//		index			:精灵编号.// *************************************************************void moveball(int direct,int index){	int i=0;/*	LoadRes(BALL1,BALL1_SIZE,&Ball[0]);   // Load the ball sprite	LoadRes(BALL2,BALL2_SIZE,&Ball[1]);   // Load the ball sprite	LoadRes(BALL3,BALL3_SIZE,&Ball[2]);   // Load the ball sprite	LoadRes(BALL4,BALL4_SIZE,&Ball[3]);   // Load the ball sprite	LoadRes(BALL5,BALL5_SIZE,&Ball[4]);   // Load the ball sprite	LoadRes(BALL6,BALL6_SIZE,&Ball[5]);   // Load the ball sprite	LoadRes(BALL7,BALL7_SIZE,&Ball[6]);   // Load the ball sprite	LoadRes(BALL8,BALL8_SIZE,&Ball[7]);   // Load the ball sprite	LoadRes(BALL9,BALL9_SIZE,&Ball[8]);   // Load the ball sprite	LoadRes(BALL10,BALL10_SIZE,&Ball[9]);   // Load the ball sprite*/	vSetTransferMode(MODE_TRANS);               // set transfermode to transperent		if(ball[index*9+4]==1)		vFillRect(ball[index*9+2],ball[index*9+3],ball[index*9+2]+16,ball[index*9+3]+16);	if(ball[index*9+4]==2)		vFillRect(ball[index*9+2],ball[index*9+3],ball[index*9+2]+32,ball[index*9+3]+16);	if(ball[index*9+4]==3)		vFillRect(ball[index*9+2],ball[index*9+3],ball[index*9+2]+16,ball[index*9+3]+32);	if(ball[index*9+4]==4)		vFillRect(ball[index*9+2],ball[index*9+3],ball[index*9+2]+32,ball[index*9+3]+32);		if(direct==1)		DrawObject(ball[index*9+2],ball[index*9+3]-16,index);	if(direct==2)		DrawObject(ball[index*9+2]+16,ball[index*9+3],index);	if(direct==3)		DrawObject(ball[index*9+2],ball[index*9+3]+16,index);	if(direct==4)		DrawObject(ball[index*9+2]-16,ball[index*9+3],index);		vFlipScreen(1);	/*while(i<10)	{		vDisposePtr("BALL"+i); 		i++;	}*/	//vDisposePtr(Ball[index]); }// **************************************************// 延时函数,//   nTime		:延时的时间,单位为微秒.// **************************************************void sleep(int nTime){	int Time;	Time	= vGetTickCount() + nTime ;		while(vGetTickCount() < Time);}// *******************************************//  主函数.// *******************************************int main(void) {	uint32_t  key;	//fontInit();	//menu();	vClearScreen(vRGB(0,0,0));   // Clear the "backbuffer" with black	vSetClipWindow(0,0,100,80);	initDrawSprites();	/*if(menu())	{		newgame();			}	else		vTerminateVMGP();                           // Terminate vmgp		*/	while(1)	{		key = vGetButtonData();		if(key==KEY_ENTER)		{			if(down==1)				down=0;			else				down=1;			sleep(ticktime);		}		if(key == KEY_LEFT)		{				engine(key);			sleep(ticktime);		}					if(key == KEY_RIGHT)		{				engine(key);			sleep(ticktime);		}					if(key==KEY_UP)			{				engine(key);			sleep(ticktime);		}		if(key==KEY_DOWN)		{			engine(key);			sleep(ticktime);		}		/*if(success())		{			if(menu())			{				newgame();				continue;			}					else				break;		}*/		if(success())	break;	}		vTerminateVMGP();                           // Terminate vmgp	return 1;}// **************************************************// 新游戏模块.// **************************************************/*void newgame(void){	down=0;id=8;id1=0;id2=0;//id是被激活的单元索引值.	a=0;a1=0;a2=0;b=0;b1=0;b2=0;//a,b:是可以移动的两个单员的ID,a1,a2,b1,b2是可以移动的方向.	//id,存在,x,y,类型,C上,c右,c下,c左。	ball[]=		{1, 1, 0, 0,3,0,0,0,0,				2, 1,16, 0,4,0,0,0,0,				3, 1,48, 0,3,0,0,0,0,				4, 1, 0,32,1,0,0,0,0,				5, 1,16,32,2,0,0,0,0,				6, 1,48,32,1,0,0,0,0,				7, 1, 0,48,3,0,0,0,0,				8, 1,16,48,1,0,0,1,0,				9, 1,32,48,1,0,0,1,0,				10,1,48,48,3,0,0,0,0,				11,0,16,64,1,0,0,0,0,				12,0,32,64,1,0,0,0,0};//12个单元每个有9个属性	map[]	={1,1,1,1,			  1,1,1,1,			  1,1,1,1,			  1,1,1,1,			  1,0,0,1};	}*/// *******************************************/*void textout(int x,int y,char *s){//???????????????}*/// **************************************************//  界面菜单模块// **************************************************/*int menu(void){	uint32_t  button;	int selectmenu=0;//0:New game,1:Quit.	vClearScreen(vRGB(0,0,0));   // Clear the "backbuffer" with black	vSetClipWindow(0,0,100,80);	textout(20,20,"Game Name");	textout(30,60,"New Game");	textout(30,70,"Quit");	drawrect(30,60,40,70,12,2);	while(1)	{		button = vGetButtonData();		if(KEY_ENTER == button)			break;		if(button == KEY_UP || button == KEY_DOWN)		{			if(selectmenu==0)			{				selectmenu=1;				drawrect(30,70,40,80,12,2);//active menu button.				drawrect(30,60,40,70,0,2);//unactive menu button.			}			else			{				selectmenu=0;				drawrect(30,60,40,70,12,2);//active menu button.				drawrect(30,70,40,80,0,2);//unactive menu button.			}			sleep(ticktime);		}			}		selectmenu=1;	if(selectmenu==0)	{		return 0;	}	else	{		return 1;	}		}*/// **************************************************// 判断时候通过,成功.// **************************************************int success(void){		if(ball[1*9+2]==16 && ball[1*9+3]==48)	{		//调入success图片.或者输出文字。?????????		while(KEY_ENTER & vGetButtonData());		//输出gif图片.??????????????		while(KEY_ENTER & vGetButtonData());				return 1;	}	else		return 0;} 

⌨️ 快捷键说明

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